Static site built with Astro and Tailwind CSS v4 (via @tailwindcss/vite). It describes the Seneca II fgpanel project, @openattitude/* npm instruments, and FlightGear integration.
Long-form pages live in src/content/docs/*.md as an Astro content collection (src/content.config.ts). Each file has frontmatter:
title— page headingdescription— meta / card textorder— sort order on/docs
Add a new .md file and run npm run build; routes are generated at /docs/<filename-without-extension>/.
npm install
npm run dev # http://localhost:4321
npm run build # output: dist/
npm run preview # serve dist/ locally- Astro 6
- Tailwind CSS 4 +
@tailwindcss/typography(prose for Markdown body) - TypeScript (strict)
dist/ is static HTML—usable on any host (GitHub Pages, nginx, Netlify, etc.).
Production URL: https://www.openattitude.org — configured via site in astro.config.mjs and public/CNAME.
This folder is the git repository root. The workflow .github/workflows/deploy-github-pages.yml runs on push to main / master (and workflow_dispatch): npm ci, npm run build, then publishes dist/ with upload-pages-artifact + deploy-pages.
- Settings → Pages → Source: GitHub Actions
- Settings → Pages → Custom domain:
www.openattitude.org - DNS: CNAME
www→<org>.github.io(use the value GitHub shows for your org or user) - First run: approve github-pages under Settings → Environments if required
- Enforce HTTPS after the certificate is ready
If you use a project Pages URL (https://<org>.github.io/<repo>/) instead, set Astro’s base in astro.config.mjs to /<repository-name>/ (see Astro site and base).