feat(music): schema.org MusicRecording/MusicAlbum structured data on audio posts (music federation Fase 1)
An audio post now emits standard schema.org MusicRecording (single track) or MusicAlbum
(album/playlist) JSON-LD alongside the existing Article data — a real web standard read by
search engines and generic JSON-LD consumers, NOT a Klonkt-invented field. The url points
to the gated player page, so the anti-steal posture is unchanged. The track-resolution helper
is the reusable base for the (future) Funkwhale Audio/Library federation (Fase 2).
- src/services/MusicMeta.js (new) — resolves a post's track/album/playlist
shortcodes to hosted tracks and builds a schema.org MusicRecording/MusicAlbum (name,
byArtist=MusicGroup, inAlbum, ISO-8601 duration, license, creditText, image, url)
- src/routes/posts.js — passes a
musicLd local on the post page
- src/views/shell.ejs — renders a second ld+json script for music posts (Article kept intact)
Co-Authored-By: Claude <noreply@…>