4.4 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 pagewebsite/about.html- about pagewebsite/contact.html- contact pagewebsite/*.html- other top-level pageswebsite/blog/YYYY/MM/DD/*.html- dated blog postswebsite/blog/categories/*.html- blog category archive pageswebsite/blog/tags/*.html- blog tag archive pageswebsite/speeches/index.html- main speeches archivewebsite/speeches/rev-dr-sun-myung-moon/*.html- yearly speech archive pageswebsite/speeches/categories/*.html- speech category archive pageswebsite/PAGES.md- map of old folder paths to current HTML pathscontent/speeches/<year>/*.md- extracted speech content by speech yearcontent/speeches/mrs-hak-ja-han-moon/*.md- extracted Mrs. Hak Ja Han Moon speechescontent/blog/<year>/*.md- extracted non-speech blog content by publish yearcontent/README.md- content archive notessrc/content/pages/*.html- preserved body fragments for migrated public pagessrc/pages/index.astro- Astro home page routesrc/pages/about.astro,src/pages/contact.astro,src/pages/events.astro,src/pages/services.astro,src/pages/videos.astro,src/pages/the-founders.astro- migrated public page routessrc/pages/[...route].ts- Astro endpoint for the remaining exported HTML archive pagessrc/lib/static-pages.ts- mapswebsite/files to Astro static routes and excludes migrated pages from the catch-allsrc/components/- Astro shared layout componentsdist/- generated site output, ignored by gitcss/- site-level stylesheetscss/theme.css- extracted Parabola inline theme settingscss/site.css- extracted shared site fixes and homepage/frontpage rulesjs/- site-level scriptsassets/- images, PDFs, fonts, theme files, uploads, and vendor filesdocs/- maintainer documentationscripts/components.mjs- shared nav/sidebar/footer componentsscripts/render-shared-layout.mjs- renders shared layout components into pagesscripts/organize-content.mjs- organizes exported blog and speech pagesscripts/copy-static-assets.mjs- copiesassets/,css/, andjs/intodist/scripts/extract-content.mjs- extracts dated post pages intocontent/scripts/extract-theme-css.mjs- extracts repeated inline CSS intocss/theme.cssandcss/site.css.forgejo/- deployment automation
Shared Layout
The important public pages now render through Astro components:
src/components/SiteLayout.astro owns the document shell, header, navigation,
and footer, while src/components/TwoColumnPage.astro wraps standard
content/sidebar pages. Their preserved page bodies live in
src/content/pages/.
The large blog and speech archive remains static exported HTML served through
src/pages/[...route].ts. Common navigation, sidebar, and footer markup for
those exported files is still generated from scripts/components.mjs; run
npm run render:layout after editing those legacy components.
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 pagescss/theme.css- CSS extracted from the repeated Parabola inline exportcss/site.css- shared site fixes, shortcode rule, and homepage slider/frontpage CSSjs/jquery.min.js- shared jQuery dependency used by the pagesassets/theme/- exported theme styles, scripts, fonts, and imagesassets/vendor/- exported third-party plugin/vendor assetsassets/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
Run the build health check:
npm run check
For a production-style Astro preview, build first:
npm run build
npm run preview
Then open:
http://localhost:4321
Deployment
Astro emits a static site into dist/. Deployment should run npm ci and
npm run build, then publish or serve the generated dist/ directory. Use
npm run start only for Astro-based preview jobs that need to serve the built
output directly.