familyfedie-website/docs/SITE-STRUCTURE.md
Loyyd d3746d8117
Some checks are pending
/ deploy (push) Waiting to run
new css
2026-06-11 08:39:19 +02:00

3.7 KiB

Site Structure

This is a local static site built with Astro. The current exported HTML source is kept in website/, while Astro emits the served site into dist/.

Root

  • website/index.html - home page
  • website/about.html - about page
  • website/contact.html - contact page
  • website/*.html - other top-level pages
  • website/blog/YYYY/MM/DD/*.html - dated blog posts
  • website/blog/categories/*.html - blog category archive pages
  • website/blog/tags/*.html - blog tag archive pages
  • website/speeches/index.html - main speeches archive
  • website/speeches/rev-dr-sun-myung-moon/*.html - yearly speech archive pages
  • website/speeches/categories/*.html - speech category archive pages
  • website/PAGES.md - map of old folder paths to current HTML paths
  • content/speeches/<year>/*.md - extracted speech content by speech year
  • content/speeches/mrs-hak-ja-han-moon/*.md - extracted Mrs. Hak Ja Han Moon speeches
  • content/blog/<year>/*.md - extracted non-speech blog content by publish year
  • content/README.md - content archive notes
  • src/pages/index.html.ts - Astro endpoint for the home page
  • src/pages/[...route].ts - Astro endpoint for all other existing HTML pages
  • src/lib/static-pages.ts - maps website/ files to Astro static routes
  • src/components/ - Astro shared layout components for ongoing migration
  • dist/ - generated site output, ignored by git
  • css/ - site-level stylesheets
  • css/theme.css - extracted Parabola inline theme settings
  • css/site.css - extracted shared site fixes and homepage/frontpage rules
  • js/ - site-level scripts
  • assets/ - images, PDFs, fonts, theme files, uploads, and vendor files
  • docs/ - maintainer documentation
  • scripts/components.mjs - shared nav/sidebar/footer components
  • scripts/render-shared-layout.mjs - renders shared layout components into pages
  • scripts/organize-content.mjs - organizes exported blog and speech pages
  • scripts/copy-static-assets.mjs - copies assets/, css/, and js/ into dist/
  • scripts/extract-content.mjs - extracts dated post pages into content/
  • scripts/extract-theme-css.mjs - extracts repeated inline CSS into css/theme.css and css/site.css
  • docker/ and compose.yaml - local static server preview
  • .forgejo/ - deployment automation

Shared Layout

The current source pages remain static HTML, but common navigation, sidebar, and footer markup is generated from scripts/components.mjs. Run npm run render:layout after editing those components.

Astro components in src/components/ are available for the next migration step: converting individual pages from exported HTML into .astro or Markdown content while reusing the same layout structure.

Content Archive

Run npm run extract:content to regenerate the Markdown content archive from website/blog/. The generated Markdown keeps the original post body HTML inside the file so formatting is preserved while metadata becomes frontmatter.

Asset Layout

  • css/block-library.css - WordPress block styles used by the pages
  • css/theme.css - CSS extracted from the repeated Parabola inline export
  • css/site.css - shared site fixes, shortcode rule, and homepage slider/frontpage CSS
  • js/jquery.min.js - shared jQuery dependency used by the pages
  • assets/theme/ - exported theme styles, scripts, fonts, and images
  • assets/vendor/ - exported third-party plugin/vendor assets
  • assets/uploads/ - uploaded images and PDFs used by content pages

Local Preview

Run:

npm run dev

Then open Astro's local URL, usually:

http://localhost:4321

For the Nginx preview, build first:

npm run build
docker compose up

Then open:

http://localhost:8080