feat: implement podcast:image tag for Phase 8#4
Draft
nathangathright wants to merge 2 commits intomainfrom
Draft
feat: implement podcast:image tag for Phase 8#4nathangathright wants to merge 2 commits intomainfrom
nathangathright wants to merge 2 commits intomainfrom
Conversation
- Create phase-8.ts module with placeholder structure - Add Phase 8 section to phase index with placeholder comment - Prepare infrastructure for future Phase 8 tag implementations - No specific tags implemented yet - ready for development
- Add Phase8PodcastImage type with all required attributes: - href (required): Image URL - alt (recommended): Accessibility text - aspect-ratio (recommended): CSS aspect ratio syntax - width (recommended): Width in pixels - height (optional): Height in pixels - type (optional): MIME type (supports video/mp4, image/jpeg, etc.) - purpose (optional): Space-separated tokens for use cases - Implement podcast:image parser in phase-8.ts with proper validation - Add podcastImage field to FeedObject and Episode interfaces - Register tag in phase system for both feed and item processing - Add comprehensive test coverage (10 test cases) - Create example fixture demonstrating real-world usage - Support multiple images per channel/item as per spec - Support purpose tokens for indicating intended use cases - Support video content via type attribute - Support accessibility via alt attribute Closes: Phase 8 podcast:image implementation
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.
Overview
This PR implements the new
podcast:imagetag as part of Phase 8 of the podcast namespace specification. This tag allows for delivering images of various sizes and use cases, expanding beyond the traditional square channel or episode art.Changes Made
🏗️ Core Implementation
Phase8PodcastImage type with all required attributes:
href(required): Image URLalt(recommended): Accessibility textaspect-ratio(recommended): CSS aspect ratio syntax (e.g., "1/1", "16/9", "4/1")width(recommended): Width in pixelsheight(optional): Height in pixelstype(optional): MIME type (supports video/mp4, image/jpeg, etc.)purpose(optional): Space-separated tokens for use casesParser implementation in
phase-8.tswith proper validationType definitions updated in
types.tsfor both FeedObject and Episode interfacesPhase registration for both feed and item processing
🧪 Testing
hrefalt,aspect-ratio,purpose)type="video/mp4"📋 Specification Compliance
typeattributealtattributeUsage Examples
Basic square artwork:
Social media optimized:
Video content:
Testing
All tests pass including the new Phase 8 tests:
podcast:imageRelated
podcast:imagetagpodcast:imagestag functionalityitunes:imagetagsChecklist