Skip to content

feat: add Release section with HTML iframe + markdown support#32

Merged
Kybxd merged 27 commits into
masterfrom
feat/release-section
Jun 11, 2026
Merged

feat: add Release section with HTML iframe + markdown support#32
Kybxd merged 27 commits into
masterfrom
feat/release-section

Conversation

@wenchy

@wenchy wenchy commented Jun 11, 2026

Copy link
Copy Markdown
Member

Summary

Adds a new top-level Release section parallel to Docs and Blog. Each release is a single Hugo page authored as .md. Two kinds, distinguished by front-matter:

  • Markdown release — standard Hugo page, blog-style card on the list, blog-style centered article on the detail page.
  • HTML releaseiframe: \"/release/<file>.html\" in front-matter embeds a standalone HTML artifact from static/release/ inside a full-width frame with a breadcrumb + open-in-tab + fullscreen-toggle action bar. Reading time is computed by reading the linked artifact.

Per-language under content/en/release/ and content/zh/release/. "Release" / "发布" added as the last main top-nav item in both menus.

Includes two sample releases (v0.15.0 markdown + v0.16.0 HTML report) so reviewers can see both shapes in action, plus dev-server + lint cleanups encountered along the way.

Highlights

  • Section spec and 11-task plan: docs/superpowers/specs/2026-06-11-release-section-design.md, docs/superpowers/plans/2026-06-11-release-section.md.
  • New templates: layouts/release/{list,single}.html, partial layouts/partials/main/release-meta.html, SCSS assets/scss/components/_release.scss.
  • Reuses blog card styling (same .card-list shape, hover, padding) extended via assets/scss/layouts/_posts.scss selector list.
  • Reading time for HTML stubs computed at build time via readFile + plainify + word count / 213 wpm.
  • Iframe page: full Fullscreen API toggle (standard :fullscreen CSS, no vendor prefix), "open in new tab" link, sandbox="allow-scripts allow-same-origin allow-popups allow-forms".
  • Dev-server fix: npm run start now uses --poll 700ms --forceSyncStatic --navigateToChanged so newly-added files in static/release/ and content/.../release/ live-reload on Windows without restart.
  • .gitattributes pins LF line endings repo-wide.
  • README rewritten to be concise; CLAUDE.md added as project documentation.

Test plan

  • npm run lint passes (scripts + styles + markdown).
  • npm run build succeeds; public/release/v0-15-0/index.html, public/release/v0-16-0/index.html, public/release/v0-16-0.html, and zh equivalents all generated; v0-16-0.html (artifact) and v0-16-0/ (page directory) coexist as siblings.
  • Top menu shows "Release" / "发布" as the last main item in both languages.
  • /release/ lists v0.16.0 (HTML badge) and v0.15.0 in card form, sorted newest-first.
  • /release/v0-15-0/ renders the markdown release in blog-style centered article layout with right-side TOC.
  • /release/v0-16-0/ renders the iframe page with breadcrumb + ↗ + ⤢ on a single row, full-width iframe, no left sidebar, no lead text.
  • Fullscreen toggle on /release/v0-16-0/ works (Fullscreen API).
  • Tableau logo+text in static/release/v0-16-0.html links to / and breaks out of iframe via target=\"_top\".
  • /release/index.xml (RSS) is generated.

🤖 Generated with Claude Code

wenchy and others added 27 commits June 11, 2026 14:25
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@wenchy wenchy force-pushed the feat/release-section branch from 60f7e53 to a273a47 Compare June 11, 2026 12:24
@Kybxd Kybxd merged commit 1601714 into master Jun 11, 2026
1 check 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