[PR #1547] [MERGED] chore(website): simplify maintenance and detect documentation drift #2963

Closed
opened 2026-10-17 21:12:18 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/1547
Author: @N0zoM1z0
Created: 10/10/2026
Status: ✅ Merged
Merged: 10/10/2026
Merged by: @N0zoM1z0

Base: main ← Head: chore/website-maintenance


📝 Commits (2)

  • d9566dc chore(website): simplify maintenance and detect documentation drift
  • bf2d916 fix(website): preserve template-owned HTML formatting

📊 Changes

32 files changed (+1501 additions, -575 deletions)

View changed files

📝 .github/workflows/website-check.yml (+2 -6)
📝 .github/workflows/website-pages.yml (+2 -4)
➕ scripts/audit-website-links.py (+135 -0)
📝 scripts/prepare-website.py (+4 -33)
📝 scripts/test-website.py (+116 -0)
📝 scripts/verify-website.py (+103 -18)
➕ scripts/website.py (+246 -0)
📝 website/AGENTS.md (+13 -3)
📝 website/README.md (+86 -16)
📝 website/public/blog/index.html (+33 -28)
📝 website/public/blog/touhou-reconstruction/index.html (+38 -39)
📝 website/public/examples/dino-lab/index.html (+38 -32)
📝 website/public/faq/index.html (+36 -31)
📝 website/public/first-investigation/index.html (+38 -32)
📝 website/public/get-started/index.html (+70 -33)
📝 website/public/guides/browser/index.html (+33 -21)
📝 website/public/guides/index.html (+33 -21)
📝 website/public/guides/javascript/index.html (+35 -29)
📝 website/public/guides/native/index.html (+33 -21)
📝 website/public/index.html (+36 -31)

...and 12 more files

📄 Description

The website repeated its header, navigation, footer and sharing fields across 17 pages. Changing them required editing each copy, while the link verifier skipped absolute site URLs and URLs inside prompts. Contributors can now maintain those regions in small HTML templates and use one Python command to check the site. The checked-in pages remain standalone static HTML; existing page bodies and CSS are preserved, apart from correcting the Ghidra setup instructions.

  • Add website.py sync, check, serve, new-page and an optional external-link audit. New reading pages start as visible noindex drafts. Canonicals, sharing fields and sitemap routes derive from the authored page title, description and file path.
  • Reject shared-region drift without silently rewriting pages in CI. Verify absolute rea.tools routes/fragments, obsolete project-site URLs in prompts, copy-button targets, website Markdown links and current-repository source links.
  • Use the same offline check in PRs, Wrangler previews and the manual publisher. Both production hosts still receive one verified artifact. External uptime checks stay opt-in and distinguish missing targets from blocked or unverified probes.
  • Update contributor instructions and correct Ghidra's Linux arm64 and experimental read-only Windows support against the installation/provider guides and the published 6.3.0 documentation.

Validation:

  • python3 scripts/website.py check: 19 HTML pages, 419 local references, 17 indexable routes, sharing metadata/PNG, SVGs, Notes ZIP and seven regression tests.
  • Browser checks: all 17 reading pages at 375px and 1440px on root and /rea/ previews (68 page/layout checks), real clipboard/download actions and no-JavaScript reading.
  • npm run check:fast: typecheck and lint passed with Node 24.18.0.
  • npm run format:check: passed; an Oxfmt round trip preserves all rendered page bytes and still passes sync --check. Generated regions carry HTML formatter-ignore comments and are verified against .html.tmpl sources.
  • Optional external audit: 94 confirmed targets, zero confirmed missing, six requiring manual verification. External fragment IDs are outside this audit's coverage.

No new real Hopper/Ghidra/IDA execution verification was performed; this changes website authoring and checks. Please preserve commit history with a rebase merge. Publication remains a separate manual target=both workflow after CI and review.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/morluto/rea/pull/1547 **Author:** [@N0zoM1z0](https://github.com/N0zoM1z0) **Created:** 10/10/2026 **Status:** ✅ Merged **Merged:** 10/10/2026 **Merged by:** [@N0zoM1z0](https://github.com/N0zoM1z0) **Base:** `main` ← **Head:** `chore/website-maintenance` --- ### 📝 Commits (2) - [`d9566dc`](https://github.com/morluto/rea/commit/d9566dcb5a72dc769f03ba0212a4f8910f89b6f9) chore(website): simplify maintenance and detect documentation drift - [`bf2d916`](https://github.com/morluto/rea/commit/bf2d91677311df1bdedd5e26b6312c3ba8977ca7) fix(website): preserve template-owned HTML formatting ### 📊 Changes **32 files changed** (+1501 additions, -575 deletions) <details> <summary>View changed files</summary> 📝 `.github/workflows/website-check.yml` (+2 -6) 📝 `.github/workflows/website-pages.yml` (+2 -4) ➕ `scripts/audit-website-links.py` (+135 -0) 📝 `scripts/prepare-website.py` (+4 -33) 📝 `scripts/test-website.py` (+116 -0) 📝 `scripts/verify-website.py` (+103 -18) ➕ `scripts/website.py` (+246 -0) 📝 `website/AGENTS.md` (+13 -3) 📝 `website/README.md` (+86 -16) 📝 `website/public/blog/index.html` (+33 -28) 📝 `website/public/blog/touhou-reconstruction/index.html` (+38 -39) 📝 `website/public/examples/dino-lab/index.html` (+38 -32) 📝 `website/public/faq/index.html` (+36 -31) 📝 `website/public/first-investigation/index.html` (+38 -32) 📝 `website/public/get-started/index.html` (+70 -33) 📝 `website/public/guides/browser/index.html` (+33 -21) 📝 `website/public/guides/index.html` (+33 -21) 📝 `website/public/guides/javascript/index.html` (+35 -29) 📝 `website/public/guides/native/index.html` (+33 -21) 📝 `website/public/index.html` (+36 -31) _...and 12 more files_ </details> ### 📄 Description The website repeated its header, navigation, footer and sharing fields across 17 pages. Changing them required editing each copy, while the link verifier skipped absolute site URLs and URLs inside prompts. Contributors can now maintain those regions in small HTML templates and use one Python command to check the site. The checked-in pages remain standalone static HTML; existing page bodies and CSS are preserved, apart from correcting the Ghidra setup instructions. - Add `website.py sync`, `check`, `serve`, `new-page` and an optional external-link audit. New reading pages start as visible noindex drafts. Canonicals, sharing fields and sitemap routes derive from the authored page title, description and file path. - Reject shared-region drift without silently rewriting pages in CI. Verify absolute rea.tools routes/fragments, obsolete project-site URLs in prompts, copy-button targets, website Markdown links and current-repository source links. - Use the same offline check in PRs, Wrangler previews and the manual publisher. Both production hosts still receive one verified artifact. External uptime checks stay opt-in and distinguish missing targets from blocked or unverified probes. - Update contributor instructions and correct Ghidra's Linux arm64 and experimental read-only Windows support against the installation/provider guides and the published 6.3.0 documentation. Validation: - `python3 scripts/website.py check`: 19 HTML pages, 419 local references, 17 indexable routes, sharing metadata/PNG, SVGs, Notes ZIP and seven regression tests. - Browser checks: all 17 reading pages at 375px and 1440px on root and `/rea/` previews (68 page/layout checks), real clipboard/download actions and no-JavaScript reading. - `npm run check:fast`: typecheck and lint passed with Node 24.18.0. - `npm run format:check`: passed; an Oxfmt round trip preserves all rendered page bytes and still passes `sync --check`. Generated regions carry HTML formatter-ignore comments and are verified against `.html.tmpl` sources. - Optional external audit: 94 confirmed targets, zero confirmed missing, six requiring manual verification. External fragment IDs are outside this audit's coverage. No new real Hopper/Ghidra/IDA execution verification was performed; this changes website authoring and checks. Please preserve commit history with a rebase merge. Publication remains a separate manual `target=both` workflow after CI and review. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-17 21:12:18 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#2963
No description provided.