21 lines
672 B
Typst
21 lines
672 B
Typst
#let todo-list = state("todo-list",())
|
|
#let show-todos = state("show-todos", true)
|
|
|
|
#let todo(done: false, content) = context {
|
|
if (not done) and (show-todos.get()) {
|
|
let todonum = todo-list.get().len() + 1
|
|
text(weight: "bold", fill: red, [TODO n°#todonum #label("todo-"+str(todonum)): #content])
|
|
todo-list.update(x => x + (("todo-"+str(x.len()+1),x.len()+1, content),))
|
|
}
|
|
}
|
|
|
|
#let todos() = context {
|
|
if (todo-list.final().len() != 0) and (show-todos.get()) {
|
|
pagebreak(weak: true)
|
|
[= TO-DOs]
|
|
for t in todo-list.final() {
|
|
let l = label(t.first())
|
|
list.item(link(l)[TODO n°#t.at(1) p.#locate(l).page() : #t.last()])
|
|
}
|
|
}
|
|
}
|