init Vorlage

This commit is contained in:
2026-03-11 08:07:31 +01:00
commit f9ab6a795d
18 changed files with 1213 additions and 0 deletions

43
acro.typ Normal file
View File

@@ -0,0 +1,43 @@
#let acronyms = (
XML: "Extensible Markup Language",
)
#let acro(name) = context {
// Prüfen, ob das Akronym vorher schon verwendet wurde
let previous = query(selector(<acro>).before(here()))
.filter(it => it.value == name)
// Marker setzen für diese Verwendung
[#metadata(name)<acro>]
// Beim ersten Mal: volle Form mit Abkürzung, danach: nur Kurzform
if previous.len() == 0 {
link(label("acro-" + name))[
#acronyms.at(name) (#name)
]
} else {
link(label("acro-" + name))[#name]
}
}
#let acro-list() = context {
// Alle verwendeten Akronyme sammeln
let used = query(selector(<acro>))
.map(it => it.value)
.dedup()
// Nur verwendete Akronyme filtern und sortieren
let entries = acronyms.pairs()
.filter(pair => used.contains(pair.at(0)))
.sorted(key: pair => pair.at(0))
table(
columns: (auto, 1fr),
stroke: none,
column-gutter: 1em,
..entries.map(pair => (
[#strong(pair.at(0)) #label("acro-" + pair.at(0))],
[#pair.at(1)]
)).flatten()
)
}