[PR #1296] [MERGED] feat(website): add search metadata and automatic sitemap #2776

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

📋 Pull Request Information

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

Base: main ← Head: feat/website-seo-metadata


📝 Commits (4)

  • b8851cb feat(website): add search metadata and automatic sitemap
  • bb8ff2c docs(website): explain SEO maintenance and indexing follow-up
  • 8c9c555 Merge remote-tracking branch 'origin/main' into feat/website-seo-metadata
  • 43405f9 Merge remote-tracking branch 'origin/main' into feat/website-seo-metadata

📊 Changes

32 files changed (+1230 additions, -46 deletions)

View changed files

📝 .github/workflows/website-check.yml (+17 -5)
📝 .github/workflows/website-pages.yml (+14 -3)
📝 .gitignore (+3 -0)
📝 scripts/prepare-website.py (+75 -2)
➕ scripts/test-website.py (+130 -0)
📝 scripts/verify-website.py (+219 -10)
📝 website/AGENTS.md (+7 -1)
📝 website/README.md (+84 -7)
📝 website/evidence/guide-examples.md (+19 -2)
📝 website/figures.md (+9 -0)
➕ website/public/assets/social-card.svg (+27 -0)
📝 website/public/examples/dino-lab/index.html (+41 -1)
📝 website/public/examples/notes-electron/index.html (+5 -0)
📝 website/public/examples/notes-web/index.html (+5 -0)
📝 website/public/faq/index.html (+41 -1)
📝 website/public/first-investigation/index.html (+41 -1)
📝 website/public/get-started/index.html (+41 -1)
📝 website/public/guides/browser/index.html (+35 -1)
📝 website/public/guides/index.html (+35 -1)
📝 website/public/guides/javascript/index.html (+41 -1)

...and 12 more files

📄 Description

Both website copies currently omit canonical URLs, and the site has no sitemap or link-preview metadata. This change gives each content page its own https://rea.tools/ canonical, descriptive search title and sharing card while preserving the visible page content and layout.

The preparation script generates the sitemap automatically from current HTML routes and head indexing directives. Adding, moving or removing a page needs no separate URL list. The two Notes exercise apps remain usable and crawlable with noindex; guides and the dinosaur lab remain indexable. A maintained SVG produces a 1200 × 630 PNG preview before verification and publication.

Website checks now validate canonical routes, sharing fields, the generated sitemap and preview asset. CI installs the rendering prerequisites. Production Wrangler consumes the verified shared artifact without repeating its preview build; publication remains manual and synchronized across Cloudflare and GitHub Pages. Maintainer instructions cover automatic sitemap updates and post-publication Search Console checks.

Validation:

  • Asset preparation and website verification: 17 HTML pages, 343 local references, 15 indexable URLs.
  • Focused Python regressions for route changes, indexing directives, incorrect canonicals, stale sitemap entries and sharing assets; Ruff checks passed.
  • Browser checks: 68 page/viewport combinations at root and /rea/, plus narrow homepage widths, clipboard copying, expanded FAQ and Notes CSV downloads.
  • Actionlint passed for both changed workflows; Wrangler 4.149.0 production dry-run passed.
  • Current-head CI completed successfully, including all test shards, website checks and the macOS E2E/package lanes. An additional local process-contract recheck timed out at 60 seconds; the corresponding test passed in current-head CI in 23.9 seconds.
  • Notes Electron fixture reanalyzed with REA 4.1.0 after its HTML metadata change; updated identity recorded in the evidence document. Native Hopper/Ghidra verification was not run for this website change.

Refs #1283. Published to both hosts through synchronized deployment 37946410283, with the checkpoint history preserved. Live checks passed for 34 HTML responses, 15 sitemap routes per host, authored robots and identical sharing/download assets. Search Console submission and indexing inspection remain the domain owner’s follow-up.


🔄 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/1296 **Author:** [@N0zoM1z0](https://github.com/N0zoM1z0) **Created:** 10/9/2026 **Status:** ✅ Merged **Merged:** 10/9/2026 **Merged by:** [@N0zoM1z0](https://github.com/N0zoM1z0) **Base:** `main` ← **Head:** `feat/website-seo-metadata` --- ### 📝 Commits (4) - [`b8851cb`](https://github.com/morluto/rea/commit/b8851cb977cfdd608798d32bf5877f645b960831) feat(website): add search metadata and automatic sitemap - [`bb8ff2c`](https://github.com/morluto/rea/commit/bb8ff2cfba638ee3a77f951c01e98340c757f525) docs(website): explain SEO maintenance and indexing follow-up - [`8c9c555`](https://github.com/morluto/rea/commit/8c9c5550d00825b2017c82164115fe584e9bdf88) Merge remote-tracking branch 'origin/main' into feat/website-seo-metadata - [`43405f9`](https://github.com/morluto/rea/commit/43405f9ffe7eb72a08c20a930ad3bf6bfea934a9) Merge remote-tracking branch 'origin/main' into feat/website-seo-metadata ### 📊 Changes **32 files changed** (+1230 additions, -46 deletions) <details> <summary>View changed files</summary> 📝 `.github/workflows/website-check.yml` (+17 -5) 📝 `.github/workflows/website-pages.yml` (+14 -3) 📝 `.gitignore` (+3 -0) 📝 `scripts/prepare-website.py` (+75 -2) ➕ `scripts/test-website.py` (+130 -0) 📝 `scripts/verify-website.py` (+219 -10) 📝 `website/AGENTS.md` (+7 -1) 📝 `website/README.md` (+84 -7) 📝 `website/evidence/guide-examples.md` (+19 -2) 📝 `website/figures.md` (+9 -0) ➕ `website/public/assets/social-card.svg` (+27 -0) 📝 `website/public/examples/dino-lab/index.html` (+41 -1) 📝 `website/public/examples/notes-electron/index.html` (+5 -0) 📝 `website/public/examples/notes-web/index.html` (+5 -0) 📝 `website/public/faq/index.html` (+41 -1) 📝 `website/public/first-investigation/index.html` (+41 -1) 📝 `website/public/get-started/index.html` (+41 -1) 📝 `website/public/guides/browser/index.html` (+35 -1) 📝 `website/public/guides/index.html` (+35 -1) 📝 `website/public/guides/javascript/index.html` (+41 -1) _...and 12 more files_ </details> ### 📄 Description Both website copies currently omit canonical URLs, and the site has no sitemap or link-preview metadata. This change gives each content page its own `https://rea.tools/` canonical, descriptive search title and sharing card while preserving the visible page content and layout. The preparation script generates the sitemap automatically from current HTML routes and head indexing directives. Adding, moving or removing a page needs no separate URL list. The two Notes exercise apps remain usable and crawlable with `noindex`; guides and the dinosaur lab remain indexable. A maintained SVG produces a 1200 × 630 PNG preview before verification and publication. Website checks now validate canonical routes, sharing fields, the generated sitemap and preview asset. CI installs the rendering prerequisites. Production Wrangler consumes the verified shared artifact without repeating its preview build; publication remains manual and synchronized across Cloudflare and GitHub Pages. Maintainer instructions cover automatic sitemap updates and post-publication Search Console checks. Validation: - Asset preparation and website verification: 17 HTML pages, 343 local references, 15 indexable URLs. - Focused Python regressions for route changes, indexing directives, incorrect canonicals, stale sitemap entries and sharing assets; Ruff checks passed. - Browser checks: 68 page/viewport combinations at root and `/rea/`, plus narrow homepage widths, clipboard copying, expanded FAQ and Notes CSV downloads. - Actionlint passed for both changed workflows; Wrangler 4.149.0 production dry-run passed. - Current-head CI completed successfully, including all test shards, website checks and the macOS E2E/package lanes. An additional local process-contract recheck timed out at 60 seconds; the corresponding test passed in current-head CI in 23.9 seconds. - Notes Electron fixture reanalyzed with REA 4.1.0 after its HTML metadata change; updated identity recorded in the evidence document. Native Hopper/Ghidra verification was not run for this website change. Refs #1283. Published to both hosts through [synchronized deployment 37946410283](https://github.com/morluto/rea/actions/runs/37946410283), with the checkpoint history preserved. Live checks passed for 34 HTML responses, 15 sitemap routes per host, authored robots and identical sharing/download assets. Search Console submission and indexing inspection remain the domain owner’s follow-up. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-17 21:10:07 +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#2776
No description provided.