# familyfedie-website Local static website files built with Astro. ## Project Structure - `website/` - top-level static pages - `src/pages/` - Astro endpoints that generate static HTML from `website/` - `src/components/` - Astro components for the shared layout migration path - `dist/` - generated static output from `npm run build` - `website/index.html` - homepage - `website/about.html` - about page - `website/contact.html` - contact page with the form - `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 - `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 ## Maintenance Run Astro locally while editing: ```bash npm run dev ``` After changing shared navigation, sidebar, or footer markup in `scripts/components.mjs`, run: ```bash npm run render:layout ``` ## Local Preview Build the Astro output first: ```bash npm run build ``` Then serve `dist/` with Docker: ```bash docker compose up ``` Then open: ```text http://localhost:8080/ ```