Skip to content

feat(site): generate widget pages and the sitemap from the registry - #60

Merged
jiunbae merged 3 commits into
mainfrom
feat/site-widget-pages
Sep 25, 2026
Merged

jiunbae merged 3 commits into
mainfrom
feat/site-widget-pages

Conversation

@jiunbae

@jiunbae jiunbae commented Sep 25, 2026

Copy link
Copy Markdown
Member

Summary

  • scripts/build-widget-pages.py (stdlib only) writes /widgets/ (all 26 registry entries, grouped by category) and /widgets/<slug>/ for widgets that have a preview render and a README (≥80 words) or a description (≥30 words): 12 today.
  • Each page: search-facing <title>, meta description, canonical, OG/Twitter image (the widget preview), BreadcrumbList JSON-LD, manifest facts (type, requires, permissions, menu bar, refresh, source), README body, install steps (Gallery for bundled widgets, barshelf://install deep link + barshelf install for external ones).
  • Widgets below the bar stay on the index under an anchor instead of becoming thin pages; they get a page automatically once they have a preview and a README.
  • External widgets (aas Usage, OTP Codes, muxa Watch) have no README here, so they get a short intro written from their own repos' READMEs.
  • sitemap.xml is now generated (14 URLs); the static file is removed.
  • pages.yml runs the generator and also triggers on registry/, widgets/, assets/widget-previews/; ci.yml builds the pages.
  • Home links to /widgets/ from the nav, the widget gallery, and the footer.

Test plan

  • Generated HTML parses; 12 pages + index + sitemap (14 URLs)
  • Rendered locally in Safari at 1300px and 400px: no horizontal overflow; Sensors README tables render
  • Deep link on the aas page is barshelf://install?url=<encoded /tree/ URL>, a form WidgetInstallSource accepts
  • After deploy: pages served, sitemap resubmitted, representative pages requested for indexing

🤖 Generated with Claude Code

jiunbae and others added 3 commits September 25, 2026 20:54
The landing site had one indexable page. scripts/build-widget-pages.py now
writes /widgets/ with every registry entry and a page per widget that has a
real preview render plus a README or a substantial description (12 today),
each with its own title, description, OG image, facts from the manifest, and
install steps. Widgets below that bar stay on the index under an anchor
rather than as thin pages, and gain a page as soon as they get a preview and
a README.

The Pages workflow runs the generator after staging site/, and it now also
writes sitemap.xml, so the static one is gone. CI builds the pages to catch
a registry change that breaks them. The home page links to /widgets/ from
the nav, the widget gallery, and the footer.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ir intro

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@jiunbae
jiunbae merged commit 1a5443d into main Sep 25, 2026
1 check passed
@jiunbae
jiunbae deleted the feat/site-widget-pages branch September 25, 2026 12:32
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.

1 participant