feat: add site-wide glossary with hover tooltips
CI / TypeScript — type-check (push) Successful in 8s
CI / Publish — build & push image (push) Successful in 8s
CI / Deploy — pull & restart on host (push) Successful in 2s

Every abbreviation and technical term used in the site's copy (RBAC,
NAPALM, config drift, ...) now links to a new /glossary page and shows
a short definition on hover, wherever it appears in body text. Product
and vendor brand names are deliberately excluded — the glossary stays
a dictionary of vocabulary, not a company directory.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Christian Manivong
2026-07-02 18:37:35 +02:00
co-authored by Claude Sonnet 5
parent 2a8a87bdd1
commit 38c7fb1db9
14 changed files with 758 additions and 31 deletions
+12
View File
@@ -12,6 +12,7 @@ const en = {
gettingStarted: 'Getting Started',
architecture: 'Architecture',
nis2: 'NIS2 Compliance',
glossary: 'Glossary',
},
},
footer: {
@@ -24,6 +25,7 @@ const en = {
changelog: 'Changelog',
nis2: 'NIS2',
roadmap: 'Roadmap',
glossary: 'Glossary',
mit: 'MIT License',
privacy: 'Privacy (none collected)',
},
@@ -295,6 +297,10 @@ const en = {
button: 'Get started →',
},
},
glossary: {
heading: 'Glossary',
sub: 'Every abbreviation and technical term used on this site, in one place. Hover any underlined term anywhere on the site for a quick definition.',
},
}
type Translations = typeof en
@@ -311,6 +317,7 @@ const de: Translations = {
gettingStarted: 'Erste Schritte',
architecture: 'Architektur',
nis2: 'NIS2-Compliance',
glossary: 'Glossar',
},
},
footer: {
@@ -323,6 +330,7 @@ const de: Translations = {
changelog: 'Changelog',
nis2: 'NIS2',
roadmap: 'Roadmap',
glossary: 'Glossar',
mit: 'MIT-Lizenz',
privacy: 'Datenschutz (keine Daten erhoben)',
},
@@ -594,6 +602,10 @@ const de: Translations = {
button: 'Loslegen →',
},
},
glossary: {
heading: 'Glossar',
sub: 'Alle Abkürzungen und Fachbegriffe dieser Website an einem Ort. Beim Hovern über einen unterstrichenen Begriff wird überall auf der Seite eine Kurzdefinition angezeigt.',
},
}
export const translations: Record<Lang, Translations> = { en, de }