Static replica of the familyfed.ie website, served at familyfed.bcgen.ie
Find a file
Loyyd b24199c2ce
All checks were successful
/ deploy (push) Successful in 48s
Deploy current commit through Nomad builder
2026-07-12 17:45:56 +02:00
.forgejo/workflows Deploy current commit through Nomad builder 2026-07-12 17:45:56 +02:00
archive-source new links 2026-07-08 11:13:30 +02:00
assets Restore optimized homepage carousel 2026-07-10 13:53:23 +02:00
content new links 2026-07-08 11:13:30 +02:00
css Refresh admin dashboard theme 2026-07-12 17:27:09 +02:00
docs Connect admin dashboard to Cloudflare analytics 2026-07-10 12:18:29 +02:00
js Keep carousel outside PageSpeed capture window 2026-07-10 13:58:42 +02:00
outputs/familyfed-link-audit-20260707 new links 2026-07-08 11:13:30 +02:00
scripts no bcgen domain 2026-07-08 11:16:55 +02:00
src Version admin theme stylesheet 2026-07-12 17:30:07 +02:00
.env.example Connect admin dashboard to Cloudflare analytics 2026-07-10 12:18:29 +02:00
.gitignore using astro 2026-06-11 08:29:29 +02:00
AGENTS.md new source of truth 2026-06-11 10:01:45 +02:00
astro.config.mjs new IP 2026-06-11 17:44:58 +02:00
package-lock.json using astro 2026-06-11 08:29:29 +02:00
package.json checks 2026-06-11 09:54:39 +02:00
README.md new source of truth 2026-06-11 10:01:45 +02:00

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:

npm run dev

Check that the generated site builds successfully:

npm run check

Run the static link and media audit against the generated dist/ output:

npm run audit:links

Regenerate Markdown content from the legacy exported post HTML:

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:

npm run render:layout

Local Preview

Run Astro locally while editing:

npm run dev

Then open Astro's local URL, usually:

http://localhost:4321/

For a production-style Astro preview, build the static output first:

npm run build

Then serve dist/ with Astro preview:

npm run preview

Then open:

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:

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.