feat(library): curated "See also" + "Surprise me" #86
No reviewers
Labels
No labels
area: arcade
area: art-studio
area: calendar
area: chapel
area: content
area: design
area: field-guide
area: infra
area: library
area: os
area: portal
area: sync
area: typing
blocked
breaking
bug
content: approved
content: changes-requested
content: drafting
content: needs-doctrinal-review
content: needs-review
dependencies
documentation
duplicate
enhancement
epic
github_actions
good first issue
help wanted
invalid
javascript
needs-triage
priority: high
priority: low
priority: medium
question
type: enhancement
type: feature
type: fix
type: perf
type: security
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Bosco/bosco!86
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/library-cross-links"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The first half of the Library's connective tissue (v0.3.0 PR2). Extends the tiered-content spine from #85.
What ships
related: [category/slug]frontmatter field.validateCrossLinks()(pure, in the content plugin'scollect()) fails the build on a dangling, gated-out, self-, or duplicate link — and because it runs over the already-gated set, in production it enforces approved → approved, so a "See also" link can never dangle or surface unreviewed content. A host-agnosticSeeAlso.svelterenders the resolved topics asTopicCardlinks at heading level + 1 (h1→h2 standalone, h2→h3 in-window), so it routes in-window and standalone alike.<a>. The href is seeded deterministically (the first topic) so prerender and hydration agree — noMath.random()baked at build — then re-rolled on the client onfocus/pointerdown, both of which fire before the click reads the href. So it reuses the existing delegated in-window intercept with zero host branching; base-aware href; renders nothing on an empty catalogue.Deliberately deferred → PR2b (#35)
Inline prose cross-links and the glossary — the remark-plugin half that rewrites body text — were split out by a 4-lens design review. That half concentrated the risk: a gate value the mdsvex preprocessor can't read, raw-HTML→Svelte brace-escaping, HMR cache invalidation, a
{base}assertion, and — most importantly — a doctrine gate for glossary definitions of faith terms plus a toggletip a11y pattern. It gets its own focused review. This turns the 5-PR Library plan into 6.Also fixed
A latent hover bug:
color-mix()was fed the--surface-titlebargradient (an<image>, not a<color>), which blanks the fill to transparent on hover. Fixed in the new Surprise pill and the pre-existing.lib-backbutton by mixing against a solid token. Verified in-browser: the corrected mix computes to an opaque colour; the old form torgba(0,0,0,0).Design + review trail
relatedvalidation).Verification
pnpm buildgreen (all routes prerender, gated); guard:external / content / colour / offline all green — the offline smoke now also pins the prerendered Surprise seed and asserts the "See also" section + its resolved target render in static HTML.svelte-check0/0; prettier + eslint clean.relatedfails the build with a clear message).Closes the See-also + Surprise-me scope of the v0.3.0 Library milestone.