Static replica of the familyfed.ie website, served at familyfed.bcgen.ie
Find a file
Samuel McCann 32b99354fa speeches: replace suspended unification.net drop-cap images with plain capitals
The illuminated initial-capital GIFs were hotlinked from www.unification.net,
which is now a suspended domain, so they rendered as broken images at the start
of paragraphs across 11 archived speeches. Each <img> carried the correct letter
in its alt attribute (and was the first letter of the word), so replacing the
tag with that letter restores the text with no broken image.

83 tags across 11 files; no remaining references to unification.net/images.
2026-07-02 15:58:54 +01:00
.forgejo/workflows Add admin dashboard and Pocket ID auth notes 2026-06-13 09:34:28 +02:00
archive-source Update contact email address 2026-06-11 12:54:44 +00:00
assets logo changed 2026-06-11 16:16:37 +02:00
content speeches: replace suspended unification.net drop-cap images with plain capitals 2026-07-02 15:58:54 +01:00
css Merge remote-tracking branch 'origin/main' into codex/clean-calendar-ui 2026-06-11 17:58:47 +00:00
docs remove tiny 2026-06-20 20:21:12 +02:00
js changes 2026-06-10 21:23:01 +02:00
scripts Add admin dashboard and Pocket ID auth notes 2026-06-13 09:34:28 +02:00
src Refine admin speech management 2026-06-16 16:24:53 +02:00
.env.example Add admin dashboard and Pocket ID auth notes 2026-06-13 09:34:28 +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.