118 lines
3.4 KiB
Markdown
118 lines
3.4 KiB
Markdown
# 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.
|