75 lines
2.2 KiB
Markdown
75 lines
2.2 KiB
Markdown
# 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/
|
|
```
|