Skip to content

feat(structures): add testimonials icon and video media-id members#336

Merged
markdumay merged 1 commit into
mainfrom
feat/type-gaps
Jul 13, 2026
Merged

feat(structures): add testimonials icon and video media-id members#336
markdumay merged 1 commit into
mainfrom
feat/type-gaps

Conversation

@markdumay

Copy link
Copy Markdown
Collaborator

Summary

Two additive members reported by the mod-blocks mod-utils v6 adoption (hinode
wave3-blocks-report.md, structure-gap section) as missing from the shared
types in data/structures/_types.yml:

  • testimonials[].icon — mod-blocks assets/testimonial-carousel.html reads
    $item.icon for every testimonial and forwards it to
    assets/testimonial.html, but the shared testimonials type only declared
    logo/content/client/link, so Bookshop-validated testimonials content
    using icon triggered unsupported attribute 'icon' warnings. The global
    icon argument already exists in _arguments.yml.
  • video.media-id — hinode's assets/video.html resolves the clip ID via
    $args.mediaId, falling back to $args.id only when media-id is absent,
    and mod-blocks video-message.hugo.html builds its video dict from
    media_id / "media-id". The shared video type only declared id. id
    is kept (additive change only, no removal) since assets/video.html still
    falls back to it. The global media-id argument already exists in
    _arguments.yml.

The exampleSite/data/structures/_types.yml shadow copy is updated identically
above its test-only marker, per the file's own sync obligation.

Test plan

  • Verified both members against the consuming partials in the hinode and
    mod-blocks clones (assets/testimonial-carousel.html,
    assets/video.html, video-message.hugo.html)
  • Confirmed icon and media-id already have global argument definitions
    in data/structures/_arguments.yml (no new global argument needed)
  • pnpm test — golden check passed (13 groups), zero drift; no existing
    test fixture exercises the testimonials or video shared types

🤖 Generated with Claude Code

Adds two additive members to the shared types in data/structures/_types.yml
(and its exampleSite shadow copy), reported by the mod-blocks mod-utils v6
adoption (hinode wave3-blocks-report.md, structure-gap section):

* testimonials[].icon: mod-blocks assets/testimonial-carousel.html reads
  $item.icon for every testimonial and forwards it to assets/testimonial.html,
  but the shared testimonials type only declared logo/content/client/link,
  triggering "unsupported attribute 'icon'" warnings on Bookshop-validated
  testimonials content. The global icon argument already exists in
  _arguments.yml (string | uint64, optional).
* video.media-id: hinode's assets/video.html resolves the clip ID via
  $args.mediaId, falling back to $args.id only when media-id is absent, and
  mod-blocks video-message.hugo.html builds its video dict from media_id /
  "media-id". The shared video type only declared id, so any content using
  media-id validated clean at the shortcode layer but failed the shared-type
  check. id is kept (no removal) since assets/video.html still falls back to
  it. The global media-id argument already exists in _arguments.yml (string,
  optional).

pnpm test: golden check passed (13 groups), zero drift. No existing test
fixture (data/tests/*.yml, data/structures/test-*.yml) exercises the
testimonials or video shared types, so the two additive members do not
surface in any generated golden file.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@markdumay markdumay merged commit 90d8e1b into main Jul 13, 2026
11 checks passed
@markdumay

Copy link
Copy Markdown
Collaborator Author

🎉 This PR is included in version 6.1.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant