Skip to content

[Content Primitives] Integrate theme primitives into the regression site #2

Description

@Vonng

Goal

Use the OINK site as the bilingual documentation, integration, and regression surface for the theme's everyday content primitives.

Theme roadmap: pgsty/oink#3

This issue deliberately tracks the consumer-site layer. Theme implementation remains in pgsty/oink, and local rendering, theme release, module pinning, and hosted deployment are separate completion gates.

Theme dependencies

A component can land here incrementally after its theme issue is ready; this issue does not require one monolithic site PR.

Scope

Documentation and examples

  • Extend the existing content/docs/content/components.md page; do not create a parallel component catalog.
  • Submit the matching Simplified Chinese page at content/docs/content/components.zh.md in the same change.
  • Document stable syntax, defaults, invalid-input behavior, output fallbacks, configuration, and non-goals.
  • Add representative examples covering light/dark themes, desktop/mobile layouts, long values and filenames, and nested content.
  • Clearly distinguish opt-in interactive features from zero-JavaScript primitives.

Markdown, print, RSS, and no-JS coverage

  • Add the new examples to the generated Markdown fixture/golden surface.
  • Verify that the documented plain-text notation matches the theme contract.
  • Add focused build assertions for print and RSS where a golden alone is insufficient.
  • Verify that unrelated pages do not load the image runtime and that all content remains readable without JavaScript.

Browser and accessibility regression coverage

Extend the existing browser suites, especially:

  • tests/browser/content-components.spec.mjs
  • tests/browser/accessibility.spec.mjs
  • responsive coverage where needed

Cover:

  • responsive layout and overflow behavior;
  • keyboard operation and focus restoration for the zoom dialog;
  • Escape, explicit close, and backdrop close;
  • no nested interactive controls;
  • axe checks in representative light/dark and desktop/mobile states;
  • long text, deep FileTree nesting, and missing/invalid parameter build failures.

Theme checkout and release verification

  • During development, use the sibling theme checkout through the ignored Hugo workspace mechanism (go.work / HUGO_MODULE_WORKSPACE).
  • Record the exact theme revision used for local verification.
  • After the theme release exists, update the site's Hugo module pin in a separate, reviewable change.
  • Run the relevant focused tests first, then the full site suite.
  • Treat hosted verification as a later, explicit gate after the site change is deployed.

Suggested implementation slices

  • Contract documentation and test helpers.
  • Badge/Kbd examples and regressions.
  • Fields examples and regressions.
  • FileTree examples and regressions.
  • Shared image fixture and imgproc compatibility cases.
  • Image Zoom examples, configuration, and interaction tests.
  • Gallery examples and shared-runtime tests.
  • Pin the released theme version and verify the hosted pages.

Acceptance criteria

  • English and .zh.md documentation ship together for every exposed component.
  • Examples render correctly in light/dark and desktop/mobile modes.
  • Markdown goldens have intentional, reviewed changes.
  • Print/RSS/no-JS representations are stable and readable.
  • Interactive behavior passes keyboard, focus, and axe checks.
  • Unrelated pages do not receive the media runtime.
  • The exact local theme revision and the later released module version are recorded separately.
  • Local regression success is not described as a theme release or hosted deployment.

Non-goals

  • Implementing theme shortcodes, SCSS, or JavaScript in this repository.
  • Duplicating the component catalog under a new information architecture.
  • Blocking early documentation slices on Gallery.
  • Treating a local Hugo build as release or production evidence.

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationenhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions