familyfedie-website/README.md
Loyyd d74495ddef
Some checks are pending
/ deploy (push) Waiting to run
new source of truth
2026-06-11 10:01:45 +02:00

122 lines
3.7 KiB
Markdown

# familyfedie-website
Local static website files built with Astro.
`content/` is the future source of truth for editable blog and speech content.
`archive-source/` keeps the legacy exported HTML used by the current static
archive routes while the migration continues.
## Project Structure
- `content/` - future source of truth for editable speeches and blog posts
- `archive-source/` - legacy exported HTML pages and archive pages
- `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
- `archive-source/index.html`, `archive-source/about.html`, `archive-source/contact.html` - original exported source for migrated public pages
- `archive-source/blog/YYYY/MM/DD/` - legacy dated blog post pages
- `archive-source/blog/categories/` - legacy blog category archive pages
- `archive-source/blog/tags/` - legacy blog tag archive pages
- `archive-source/speeches/` - legacy speech archive indexes and speech category pages
- `archive-source/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 legacy 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 legacy
exported HTML in `archive-source/` 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.