#let css-list = state("css-list", ()) /// Add string `css` to `css-list` if not already present #let add-css(css) = context { css-list.update(x => if css in x { x } else { x + (css,) }) } /// Concatenate all css found in css-list at the end of the document #let get-css() = context { css-list.final().join("\n\n") } #let html_show(body) = { show raw.where(lang: "raw-css"): it => add-css(it.text) body }