Skip to content

Re-platform site to Astro 7 + Vite 8 + Tailwind 4 + Vue islands - #80

Merged
ronaldtse merged 1 commit into
mainfrom
astro-replatform
Jul 18, 2026
Merged

ronaldtse merged 1 commit into
mainfrom
astro-replatform

Conversation

@ronaldtse

Copy link
Copy Markdown
Contributor

Summary

Full re-implementation of rnpgp.org: Jekyll → Astro 7.1 (Vite 8/Rolldown) + Tailwind CSS 4 (Vite plugin) + Vue 3 islands, deployed via GitHub Pages.

Design

  • IBM Plex typography (Plex Sans/Mono, self-hosted), pastel palette, original blue→teal brand gradient hero (dark-mode aurora variant), overlay header, graph-paper motifs
  • Full light/dark theming: OS-follow + toggle + ?theme= override, no FOUC, cross-tab sync via storage events
  • Interactive Vue islands: Cmd+K Pagefind search, SHA-256 fingerprint playground (WebCrypto), install terminal tabs, blog browser with filters, decrypt-scramble hero, scroll reveals, scroll-aware header

Content (all preserved)

  • 19 blog posts + advisories kept verbatim as AsciiDoc, rendered by a custom Asciidoctor.js content loader — zero conversion risk
  • Identical URLs, including the 5 legacy /blog/DD-MM-YYYY/ redirect pages
  • Embedded software docs re-implemented: scripts/fetch-sources.mjs sparse-clones repos into vendor/; man pages rendered from rnpgp/rnp v0.18.1
  • New advisory RA-2025-11-20 (CVE-2025-13470) ported from open.ribose.com
  • About page rebuilt: Why RNP exists first, brand identity last
  • Thunderbird + partner/supporter links throughout; dead links pointed at archive.org snapshots

CI / quality gates

  • build_deploy.yml: Node 22 → npm ci → build → Pages deploy
  • links.yml: lychee pre-deploy check (lychee.toml) — 2,710 links, 0 errors
  • links_live.yml (new): post-deploy lychee crawl of the live site (verifies absolute canonical/OG URLs in production)
  • scripts/check-links.mjs internal structural check, scripts/e2e-cdp.mjs interactive Chrome DevTools suite (21 checks: hero, fingerprint SHA-256 vectors, theme toggle, install tabs, search, filters, zero console errors)

Notes

  • Ruby/Jekyll tooling removed (Gemfile, Rakefile, _config.yml, collections); git tracks content moves as renames
  • parent-hub/ untouched
  • After merge: confirm GitHub Pages source is set to GitHub Actions

Replace the Jekyll site with a modern Astro 7 (Vite 8/Rolldown) build:

- Design: IBM Plex typography, pastel palette, original blue/teal brand
  gradient hero (dark-mode aurora variant), overlay header, graph-paper
  motifs; full light/dark theming with cross-tab sync.
- Content preserved verbatim: 19 blog posts + advisories kept as AsciiDoc
  (rendered via custom Asciidoctor.js content loader), identical URLs incl.
  legacy /blog/DD-MM-YYYY/ redirects, embedded software docs re-implemented
  via sparse-clone pipeline (scripts/fetch-sources.mjs), man pages from
  rnpgp/rnp v0.18.1.
- New: RA-2025-11-20 advisory (CVE-2025-13470) ported from open.ribose.com.
- Interactive Vue islands: Cmd+K Pagefind search, SHA-256 fingerprint
  playground, install tabs, blog browser, theme toggle, scroll reveals.
- About page rebuilt: Why RNP exists first, brand identity last.
- SEO: sitemap, RSS, robots, JSON-LD, OG image; Thunderbird and
  partner/supporter links throughout; dead links pointed at archive.org.
- CI: GitHub Pages deploy via Node 22; lychee pre-deploy (lychee.toml) and
  post-deploy live crawl (lychee-live.toml); internal link checker and
  CDP-based e2e suite (21 checks) in scripts/.
Comment on lines +18 to +28
if: ${{ github.event_name != 'workflow_run' || github.event.workflow_run.conclusion == 'success' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Link Checker (live site)
id: lychee
uses: lycheeverse/lychee-action@v2
with:
args: --config lychee-live.toml --no-progress 'https://www.rnpgp.org'
fail: true
@ronaldtse
ronaldtse merged commit 7197c7a into main Jul 18, 2026
5 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants