Skip to content

Add Comics, Songs, Show episodes and basedOn/originalAuthor properties#40

Open
tzengyuxio wants to merge 3 commits intokepano:mainfrom
tzengyuxio:feat/add-comics-songs-show-episodes
Open

Add Comics, Songs, Show episodes and basedOn/originalAuthor properties#40
tzengyuxio wants to merge 3 commits intokepano:mainfrom
tzengyuxio:feat/add-comics-songs-show-episodes

Conversation

@tzengyuxio
Copy link
Copy Markdown

@tzengyuxio tzengyuxio commented Apr 9, 2026

Summary

  • Add three new content type triplets (Category + Template + Base):
    • Comics — modeled after Books, with Author/Genre/Top rated views
    • Songs — modeled after Albums, with Artist/Album/Genre views
    • Show episodes — Category and Base for the already existing Show Episode Template
  • Add based-on and original-author properties to Book, Movie, Show, Video Game, and Comic templates to track adaptations and source material
  • Register based-on (multitext) and original-author (multitext) in types.json

Details

New categories

The vault already has Albums but not Songs, Shows but not Show episodes, and Books but not Comics. These are natural extensions of the existing content types:

  • Songs complement Albums the same way Podcast episodes complement Podcasts
  • Show episodes already had a Template (Show Episode Template.md) but was missing its Category and Base
  • Comics follow the same pattern as Books (author, genre, year, rating, topics)

based-on / original-author

Many books, movies, shows, and games are adaptations. These two properties allow tracking the source material and its original author, e.g.:

based-on:
  - "[[Dune (novel)]]"
original-author:
  - "[[Frank Herbert]]"

Naming follows the kebab-case convention established by monthly-uses in types.json. (Note: imdbId uses camelCase, but that appears to be specific to proper noun abbreviations rather than general multi-word properties.)

Notes

While working on this I noticed two minor inconsistencies in the existing vault (not changed in this PR):

  1. Filter syntax varies across Bases: Books.base uses categories.contains(link("Books")) while most others use note.categories.contains(...). Both work, but the convention is inconsistent.
  2. types.json is missing definitions for several properties already used in templates: show, episode, cast, artist, album, cover, via, among others.

Test plan

  • Open the vault in Obsidian and verify the three new Category pages render their embedded Bases
  • Create a test note using each new template (Comic, Song) and confirm it appears in the corresponding Base views
  • Verify Show Episode Template notes appear in the new Show episodes Base
  • Confirm based-on and original-author fields appear when using Book/Movie/Show/Video Game/Comic templates

…lAuthor properties

Add three new content type triplets (Category + Template + Base):
- Comics: modeled after Books, with author/genre/year/rating views
- Songs: modeled after Albums, with artist/album/genre views
- Show episodes: Category and Base for the existing Show Episode Template

Add basedOn and originalAuthor properties to Book, Movie, Show, and
Video Game templates to track adaptations and source material.

Update types.json with basedOn (multitext) and originalAuthor (multitext).
…ies to Comics.base

- Comic Template: add basedOn and originalAuthor to match other media templates
- Comics.base: declare rating, topics, last in properties section (used in views)
Rename to based-on and original-author to follow the kebab-case
convention used by monthly-uses in types.json.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant