# familyfedie-website Local static website files built with Astro. ## Project Structure - `website/` - exported HTML source pages and archive pages - `content/` - extracted Markdown content archive for speeches and blog posts - `src/content/pages/` - preserved HTML body fragments for migrated public pages - `src/pages/` - Astro routes for migrated public pages plus the static archive catch-all - `src/components/` - Astro components for shared page layout - `dist/` - generated static output from `npm run build` - `src/pages/index.astro` - homepage route generated from migrated content - `src/pages/about.astro` - about page route generated from migrated content - `src/pages/contact.astro` - contact page route generated from migrated content - `website/index.html`, `website/about.html`, `website/contact.html` - original exported source for migrated public pages - `website/blog/YYYY/MM/DD/` - dated blog post pages - `website/blog/categories/` - blog category archive pages - `website/blog/tags/` - blog tag archive pages - `website/speeches/` - speech archive indexes and speech category pages - `website/PAGES.md` - map from the old folder URLs to the current HTML paths - `css/` - site-level stylesheets - `css/theme.css` - extracted Parabola inline theme settings - `css/site.css` - extracted site fixes and homepage/frontpage rules - `js/` - site-level scripts - `assets/` - images, PDFs, fonts, theme files, uploads, and vendor files - `docs/` - maintainer notes - `scripts/components.mjs` - shared nav/sidebar/footer components - `scripts/render-shared-layout.mjs` - updates repeated layout across HTML files - `scripts/organize-content.mjs` - organizes exported blog and speech pages - `scripts/extract-content.mjs` - extracts posts into `content/` - `scripts/extract-theme-css.mjs` - extracts repeated inline theme CSS into files ## Maintenance Run Astro locally while editing: ```bash npm run dev ``` Check that the generated site builds successfully: ```bash npm run check ``` Run the static link and media audit against the generated `dist/` output: ```bash npm run audit:links ``` Regenerate Markdown content from the exported post HTML: ```bash npm run extract:content ``` The important public pages are now Astro routes that reuse shared layout components. The large blog and speech archive is still served from the exported HTML through `src/pages/[...route].ts`. The repeated exported inline styles have been moved into `css/theme.css` and `css/site.css`. Tiny one-page WordPress block-support styles may still remain inline when they only apply to a single page. After changing shared navigation, sidebar, or footer markup in `scripts/components.mjs`, run: ```bash npm run render:layout ``` ## Local Preview Run Astro locally while editing: ```bash npm run dev ``` Then open Astro's local URL, usually: ```text http://localhost:4321/ ``` For a production-style Astro preview, build the static output first: ```bash npm run build ``` Then serve `dist/` with Astro preview: ```bash npm run preview ``` Then open: ```text http://localhost:4321/ ``` ## Deployment This project deploys as a static Astro build. A deployment job should install dependencies, run the build, and publish the generated `dist/` directory: ```bash npm ci npm run build ``` Use `npm run start` only when you intentionally want Astro to serve the built output in an environment such as a local or Nomad preview job.