thesis/slides/figures.typ
Jean-Marie Mineau 1f5f70779b
All checks were successful
/ test_checkout (push) Successful in 1m47s
template
2025-10-13 18:55:27 +02:00

30 lines
741 B
Typst

#let get_figures(body) = {
if type(body) == array {
body.map(get_figures).flatten()
} else if type(body) == dictionary {
body.values().map(get_figures).flatten()
} else if type(body) != content {
()
}else if body.func() == figure {
(body,)
} else {
body.fields().values().map(get_figures).flatten()
}
}
#let main = include("../main.typ")
#let figures = {
let figures = (:)
for fig in get_figures(main) {
let fields = fig.fields()
assert("label" in fields, message: "no 'label' in " + repr(fields))
let lab = fields.remove("label")
let body = fields.remove("body")
figures.insert(str(lab), figure(..fields, body))
}
figures
}
#let get_figure(label) = {
figures.at(str(label))
}