feat: #3621520 Add the podcast episode content type and its Canvas templates

Implements #3621520.

What changed

A complete podcast bundle, following varbase_blog_base as the reference for what "complete" means:

  • the node type, four new field storages (field_audio, field_audio_url, field_duration, field_episode_number), eight field instances, and a grouped edit form;
  • card view displays and Canvas content templates for full, card and text_card_medium;
  • a path pattern at /podcast/[title], editorial workflow membership, and permissions for six roles;
  • five Canvas component configs the theme provides but the recipe did not yet declare.

The description, body, featured image, tags and SEO fields reuse existing shared storages, so the bundle adds no duplicate storage. Only the two card view modes the design uses are shipped rather than cloning all nineteen blog ones.

The dependency worth reviewing

The three content templates declare node.type.podcast as a config dependency by hand. Canvas does not trace it, and without it the recipe tries to create a template before the bundle exists:

Missing bundle entity, entity type node_type, entity id podcast.

A config round trip cannot catch this - the exported config matched active config exactly both before and after the fix. Only a clean apply on a fresh site does.

Verification and provenance

Verified on a Varbase 11 install of this recipe on a local site whose vartheme_bs5_rightup is a working-copy checkout with uncommitted changes. That proves the configuration, not that the branch applies against the canonical theme, so it is stated rather than left for a reviewer to discover. Every component this branch references was checked to exist in canonical vartheme_bs5_rightup at 5dd414e.

No clean-apply regression run against a canonical theme yet, so that checkpoint is unticked.

Deliberately not included

Configuration for media-banner and section-dividers is held back. section-dividers does not exist in the canonical theme, so config for it cannot merge, and the 20-prop media-banner schema is uncommitted upstream, so a re-export pinned to it would be worse than the stale pin it replaces. The same applies to horizontal-text-icon-card.

Checkpoints

  • File an issue about this project
  • Addition/Change/Update/Fix to this project
  • Testing to ensure no regression
  • Automated unit/functional testing coverage
  • Developer Documentation support on feature change/addition
  • User Guide Documentation support on feature change/addition
  • UX/UI designer responsibilities
  • Accessibility and Readability
  • Reviewed by a human
  • Code review by maintainers
  • Full testing and approval
  • Credit contributors
  • Review with the product owner
  • Update Release Notes
  • Release

AI-Generated: Yes

Edited by Rajab Natshah

Merge request reports

Loading