diff options
Diffstat (limited to 'book/book.typ')
-rw-r--r-- | book/book.typ | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/book/book.typ b/book/book.typ deleted file mode 100644 index 6ceca284..00000000 --- a/book/book.typ +++ /dev/null @@ -1,81 +0,0 @@ -#let lang = sys.inputs.at("lang", default: "en") -#set par(justify: true) -#set page("a4") -#set text(lang: lang.split("_").at(0), size: 15pt, font: "FreeSans") -#show list: set text(font: "Gluten", fill: rgb(46, 73, 0), size: 20pt) -#show heading.where(level: 2): set text(font: "Great Vibes", size: 40pt) - -#let document_flags = ("image_attribution",) - -#let load_locale(name) = { - read("locale/" + name + ".ini") - .split("\n") - .filter(l => l != "[hurrycurry]") - .filter(l => l != "") - .map(l => l.split("=")) - .map(((x, y)) => (x.trim(), y.trim().replace("%n", "\n"))) -} -#let translations = { - let d = (a: 1) - for (k, v) in load_locale("en") { - d.insert(k, v) - } - for (k, v) in load_locale(lang) { - d.insert(k, v) - } - d -} -#let tr(s) = translations.at(s, default: text(fill: red)[TRANSLATION: #s]) - -#let msgstr(o) = if "translation" in o { tr(o.translation.id) } else { o.text } - -#let element(elem) = if elem.t == "document" [ - #for e in elem.es [ - #element(e) - ] -] else if elem.t == "page" [ - #page(background: if "background" in elem { - image( - "assets/" + elem.background + ".jpeg", - fit: "cover", - height: 100%, - width: 100%, - ) - } else { none }, [ - #for e in elem.es [ - #element(e) - ] - ]) -] else if elem.t == "text" [ - #text( - font: elem.font, - size: elem.size * 1pt, - fill: rgb(elem.color), - weight: if "bold" in elem { "bold" } else { "regular" }, - msgstr(elem.s), - ) -] else if elem.t == "list" [ - #list(..elem.es.map(element)) -] else if elem.t == "par" [ - #par[#for x in elem.es.map(element) [#x]] -] else if elem.t == "table" [ - #table(columns: elem.es.at(0).len(), ..elem.es.flatten().map(element)) -] else if elem.t == "conditional" [ - #if (elem.cond in document_flags) == elem.value [ - #element(elem.e) - ] -] else if elem.t == "ref" [ - #link(label(elem.id), element(elem.e)) -] else if elem.t == "label" [ - #element(elem.e) #label(elem.id) -] else if elem.t == "align" [ - #h(1fr) #align(if elem.dir == "flow_end" { right } else { bottom }, element(elem.e)) -] else if elem.t == "container" [ - #for e in elem.es [ - #element(e) - ] -] else [ - #elem -] - -#element(json("book.json")) |