Welcome to Vanilla Breeze
This bell pulls live notifications from /go/notify/messages — the same contract documented at /docs/concepts/service-contracts/. Static articles like this one are the no-JS / no-backend fallback.
This bell pulls live notifications from /go/notify/messages — the same contract documented at /docs/concepts/service-contracts/. Static articles like this one are the no-JS / no-backend fallback.
SKOS-aware hierarchical view of site concepts. Joins vocabulary.json with pages.json to render a nested details tree rooted at top concepts.
Joins two data sources to draw a concept tree. vocabulary.json supplies the SKOS graph (skos:broader, skos:narrower, skos:hasTopConcept) and the display labels. pages.json supplies each page's concepts: [] array, harvested by the build from repeated <meta name="concept"> tags (per meta-tag contract v1.1). Each node shows the concept's skos:prefLabel, a count of pages tagged with that concept or any descendant, and links to /topics/{id}/. The native <details> tree expands and collapses without JavaScript.
<topic-map data-lens-src="/pages.json"></topic-map>
Each content page declares the concepts it covers in frontmatter:
concepts: - data-provenance - page-info - meta-tag-contract
The build emits one <meta name="concept"> per id, and generate-pages-json.js harvests them into the page's concepts: [] array. The ids must resolve against vocabulary.json — concepts not in the vocabulary land under Uncategorized. Hierarchy comes from skos:broader / skos:narrower in the vocabulary, not from path strings.
| Attribute | Type | Default | Description |
|---|---|---|---|
data-lens-src | string | — | URL to pages.json. Each record must expose a concepts: [] array. |
src | string | — | Alias for data-lens-src. |
data-vocabulary-src | string | /vocabulary.json | URL to the SKOS vocabulary file used to resolve labels and hierarchy. |
expand-all | boolean | false | Render with every level expanded. |