This commit is contained in:
parent
033656e159
commit
1f5f70779b
11 changed files with 801 additions and 21 deletions
30
slides/figures.typ
Normal file
30
slides/figures.typ
Normal file
|
@ -0,0 +1,30 @@
|
|||
#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))
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue