Enter-tainer/typst-preview

Pass input arguments to typst world via CLI arguments

Myriad-Dreamin opened this issue · 2 comments

I think it is time to provide a better solution for #134. We can pass a JSON dictionary to typst template now. In most cases, users pass their owned input arguments. In additional, we can have a small set of smart inputs.

Smart input prefer-theme

As a first application, we can pass a smart prefer-theme to typst world.

typst-preview --input prefer-theme="dark"
typst-preview --input prefer-theme="light"
#let my-template(content) = {
  #set text(fill: white) if sys.args.at("prefer-theme") == "dark"
  content
}

Smart input typst-preview

Another candidate argument is a "typst-preview": object containing program information. Indicate whether it is opened form previewing.

E.g. #set text(size: 16pt) if sys.args.at("typst-preview").len() > 0

As the sys.inputs is added into typst now(at version 0.11.0), do you have any plan to support it?

it should be supported. but i'm working on important changes in typst/typst recently. so it wont be very fast. pr is also welcome