feat(structures): add testimonials icon and video media-id members#336
Merged
Conversation
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>
Collaborator
Author
|
🎉 This PR is included in version 6.1.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
This was referenced Jul 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 sharedtypes in
data/structures/_types.yml:testimonials[].icon— mod-blocksassets/testimonial-carousel.htmlreads$item.iconfor every testimonial and forwards it toassets/testimonial.html, but the sharedtestimonialstype only declaredlogo/content/client/link, so Bookshop-validated testimonials contentusing
icontriggeredunsupported attribute 'icon'warnings. The globaliconargument already exists in_arguments.yml.video.media-id— hinode'sassets/video.htmlresolves the clip ID via$args.mediaId, falling back to$args.idonly whenmedia-idis absent,and mod-blocks
video-message.hugo.htmlbuilds its video dict frommedia_id/"media-id". The sharedvideotype only declaredid.idis kept (additive change only, no removal) since
assets/video.htmlstillfalls back to it. The global
media-idargument already exists in_arguments.yml.The
exampleSite/data/structures/_types.ymlshadow copy is updated identicallyabove its test-only marker, per the file's own sync obligation.
Test plan
mod-blocks clones (
assets/testimonial-carousel.html,assets/video.html,video-message.hugo.html)iconandmedia-idalready have global argument definitionsin
data/structures/_arguments.yml(no new global argument needed)pnpm test— golden check passed (13 groups), zero drift; no existingtest fixture exercises the
testimonialsorvideoshared types🤖 Generated with Claude Code