generated from templates/typst-grammar
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.4 KiB
59 lines
1.4 KiB
#let conf(
|
|
clong-title: "",
|
|
title: "",
|
|
author: "Annwan",
|
|
date: datetime.today().display(),
|
|
main-font: (font: "Andika", stylistic-set: 13),
|
|
clong-font: it => text(font: "Charis SIL", it),
|
|
doc
|
|
) = {
|
|
set text(..main-font)
|
|
set par(justify: true)
|
|
set heading(numbering: "I.1.1.1")
|
|
show heading.where(level: 1): it => {pagebreak(weak: true); align(center, it)}
|
|
align(horizon, {
|
|
align(center, text(18pt)[*#title*])
|
|
if clong-title != "" {
|
|
align(center, text(18pt,clong-font([*#clong-title*])))
|
|
}
|
|
align(center, author)
|
|
align(center, date)
|
|
})
|
|
|
|
pagebreak()
|
|
outline(
|
|
fill: repeat([#h(1em).])
|
|
)
|
|
pagebreak(weak: true)
|
|
set page(
|
|
footer: [
|
|
#h(1fr)
|
|
#context counter(page).get().at(0)
|
|
#h(1fr)
|
|
]
|
|
)
|
|
counter(page).update(1)
|
|
doc
|
|
}
|
|
#let dict(
|
|
data: (),
|
|
key: it => it.at("w"),
|
|
wformat: it => [*#it*],
|
|
debug: false
|
|
) = {
|
|
[= Dictionary]
|
|
if debug [#context data.len()] else {}
|
|
v(3em)
|
|
columns(2, {
|
|
let sorted_data = data.sorted(key: key)
|
|
for word in sorted_data {
|
|
if word.keys().any(it => it == "r") [
|
|
#wformat(word.at("w")) /#word.at("i")/ → #wformat(word.at("r")) \
|
|
]
|
|
else [
|
|
#wformat(word.at("w")) /#word.at("i")/ _#word.at("p")_ #eval(word.at("n"), mode: "markup") \
|
|
]
|
|
}
|
|
})
|
|
}
|
|
|