chore(web): post-#363 cleanup — DRY tripwires, drop unused description, singular playlist title

M2 — Add TODO(#375) tripwire comments where the dark/light theme-color
hex pair is duplicated outside tokens.json (vite.config.ts and
applyMetaThemeColor.svelte.ts). Refactoring is out of scope for #363;
the comments are stop signs for the next person who edits these.

M5 — The SPA never reads window.__MINSTREL__.description. The OG meta
description is server-rendered and complete on its own. Drop the dead
inline-script field and the corresponding helpers in branding.ts.
Server-side BrandingConfig.Description stays — it's still used for
<meta name="description"> and og:description.

Copy nit — Playlist detail page title becomes "Playlist · Foo"
matching the singular form already used by Artist · / Album ·.
This commit is contained in:
2026-05-03 19:04:59 -04:00
parent a8fd33d4ed
commit 180d85eec0
5 changed files with 14 additions and 28 deletions
+2 -1
View File
@@ -29,9 +29,10 @@ const injectGoTokensPlugin = {
<meta property="og:image" content="/brand/og-image.png">
<meta property="og:type" content="website">
<meta name="twitter:card" content="summary_large_image">
<!-- TODO(#375): keep theme-color hex in sync with tokens.json colors.dark.obsidian / colors.light.obsidian -->
<meta name="theme-color" media="(prefers-color-scheme: dark)" content="#14171A">
<meta name="theme-color" media="(prefers-color-scheme: light)" content="#F8F5EE">
<script>window.__MINSTREL__ = { appName: "{{ .AppName }}", description: "{{ .Description }}" };</script>`;
<script>window.__MINSTREL__ = { appName: "{{ .AppName }}" };</script>`;
// Fail loudly if either anchor drifts. A silent .replace() no-op
// would ship a build with un-substituted Go template tokens missing,