typst-web-template/lib/pyscript.typ
Jean-Marie 'Histausse' Mineau 7e8ee9d17e
add repl
2026-05-31 16:11:55 +02:00

27 lines
618 B
Typst

#let state-use-pyscript = state("state-use-pyscript", false)
#let state-pyscript-version = state("state-pyscript-version", none)
#let state-pyscript-headers = state("state-pyscript-headers", (:))
#let pyscript(
repl: false,
body
) = {
show raw.where(block: true, lang: "python"): it => {
state-use-pyscript.update(x => true)
it
let script = it.text;
if repl {
script = "import code\n" + script + "\ncode.interact(local=globals())"
}
html.elem(
"script",
attrs: (
type: "py",
terminal: "",
worker: "",
),
script
)
}
body
}