feature(library): Wiki-Links, Backlinks, Suche + A-Z-Index

single.html: [[Begriff]]-Auflösung zu internen Links (.wikilink),
fehlende Seiten als .wikilink-missing, „Siehe auch" (Gruppe+Tags)
und „Erwähnt in" (Backlinks), Eintrags-Fuss mit Gruppe + bearbeiten.

list.html: Suchfeld + A-Z-Index mit JS-Filter (Umlaute normalisiert),
data-title auf <li> für clientseitiges Filtern.

custom.css: .wikilink, .wikilink-missing, .entry-links, .entry-links-label,
.lib-filter, .lib-search, .lib-az — alle via --section-color (ichigo/rose).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-06 01:40:00 +02:00
parent 46ee91279e
commit 1709dc093c
3 changed files with 150 additions and 20 deletions
+27
View File
@@ -729,6 +729,33 @@ a.byline-author:hover, a.journal-author:hover { color: var(--accent); }
.entry-foot a { color: var(--color-text-muted); text-decoration: none; }
.entry-foot a:hover { color: var(--accent); }
/* Wiki-Links in Library-Einträgen */
.wikilink { color: var(--section-color, var(--accent)); text-decoration: underline; text-decoration-style: dotted; text-underline-offset: 0.2em; }
.wikilink:hover { text-decoration-style: solid; }
.wikilink-missing { color: var(--color-text-muted); border-bottom: 1px dashed currentColor; }
/* Querverweise: „Siehe auch" + „Erwähnt in" */
.entry-links { margin-top: var(--spacing-md); padding: 0.7em 1em;
background: color-mix(in oklab, var(--section-color, var(--accent)) 8%, transparent);
border-left: 3px solid var(--section-color, var(--accent)); border-radius: 0 8px 8px 0; }
.entry-links + .entry-links { margin-top: 0.5em; }
.entry-links ul { list-style: none; margin: 0.3em 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.25em 0.8em; }
.entry-links li { font-size: var(--font-size-small); }
.entry-links a { color: var(--section-color, var(--accent)); text-decoration: none; }
.entry-links a:hover { text-decoration: underline; text-underline-offset: 0.2em; }
.entry-links-label { font-size: var(--font-size-small); font-weight: 600; color: var(--color-text-muted); text-transform: uppercase; letter-spacing: 0.04em; }
/* Library-Übersicht: Suchfeld + A-Z-Index */
.lib-filter { margin-bottom: var(--spacing-md); display: flex; flex-direction: column; gap: 0.6em; }
.lib-search { width: 100%; padding: 0.45em 0.8em; border: 1px solid var(--color-border); border-radius: 6px;
background: var(--color-bg-secondary); color: var(--color-text-primary); font-size: var(--font-size-base); font-family: inherit; }
.lib-search:focus { outline: none; border-color: var(--section-color, var(--accent)); }
.lib-az { display: flex; flex-wrap: wrap; gap: 0.25em; }
.lib-az button { padding: 0.15em 0.45em; border: 1px solid var(--color-border); border-radius: 4px;
background: transparent; color: var(--color-text-muted); font-size: var(--font-size-small); cursor: pointer; font-family: inherit; line-height: 1.5; }
.lib-az button:hover { border-color: var(--section-color, var(--accent)); color: var(--color-text-primary); }
.lib-az button.active { background: var(--section-color, var(--accent)); border-color: var(--section-color, var(--accent)); color: white; }
/* ── Software-Landing: Werkzeuge getrennt von Texten ── */
.software-h { font-family: var(--font-family-serif); margin: var(--spacing-md) 0 var(--spacing-sm); }
.software-tools { margin-bottom: var(--spacing-lg); }