# familyfedie-website Local static website files built with Astro. ## Project Structure - `website/` - top-level static pages - `content/` - extracted Markdown content archive for speeches and blog posts - `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 - `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 ``` Regenerate Markdown content from the exported post HTML: ```bash npm run extract:content ``` 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 Build the Astro output first: ```bash npm run build ``` Then serve `dist/` with Docker: ```bash docker compose up ``` Then open: ```text http://localhost:8080/ ```