Plugin Type – Typst Documentation
typst.app
wasm
ファイルのことを指します。一方、パッケージはプラグインをロードする処理などが記述されたtyp
ファイルなどを含んだ一連のファイル群のことを指します。パッケージはwasm
ファイルを含んでいる必要はありません。Hello {name}
という文字列を出力するだけのプラグインを作ります。Cargo.toml
に以下を追記します。crate-type = ["cdylib"]
はwasmにビルドするのに必要です。また、wasm-minimal-protocol
クレートでは、関数を先述したプロトコルに合うように変換してくれるマクロを提供してくれています。.cargo/config.toml
ファイルを作成し、デフォルトでwasmがコンパイルされるようにしておきます。lib.rs
を以下のように書き換えます。initiate_protocol!()
を実行した後、wasm_func
アノテーションを関数に付与することでマクロがよしなに関数をTypst向けにエクスポートしてくれます。Result
typeを使うこともできます。詳しくはwasm-minimal-protocol
のサンプルを見ていただければわかると思います。target
ディレクトリ内にwasmが生成されたはずです。では実際にTypstで読み込んでみましょう。以下のようなTypstファイルを作成します。bytes()
で変換して渡し戻り値はstr()
関数で文字列に戻します。lib.rs
に書きます。.typ
ファイルのほうでxlsxファイルをバイト列として読み込みそれをプラグインに渡しています。Book1.xlsx
を作ってtypst compile
を実行してみましょう。worksheet_range
をworksheet_formula
に変えればよさそうです。typst/packages
リポジトリにPRを送ることで公式のプラグインリストに載り、import "@preview/..."
でインポートできるようになります。Typstの日本語Lipsumパッケージを作ってみた件
zenn.dev
playground/typst-plugin at main · nazo6/playground
github.com