パッケージ公開したい(tyler

$ tyler check
$ tyler build

tylerはTypstを公開する手順を(途中まで)自動化してくれるパッケージです。 tyler.tomlで設定を変更できます。

インストールしたい(@mkpoli/tyler

$ npm install -g @mkpoli/tyler

tylerはJavaScript/TypeScriptで作成されたCLIツールです。 npmを使ってシステムにインストールできます。

設定したい(tyler.toml

 1[tool.tyler]
 2srcdir = "src"
 3outdir = "dist"
 4ignore = [
 5    "tests/",
 6    "examples/",
 7    "*.tmp",
 8    ".DS_Store",
 9]
10
11[tool.tyler.validation]
12check_manifest = true
13check_structure = true
14check_entrypoint = true
15
16[tool.tyler.publish]
17create_tags = true
18run_tests = false
19generate_docs = false

tyler.toml[tool.tyler]セクションで設定します。 srcdiroutdirignoreはビルド環境に応じで設定してください。

ビルド前の確認したい(tyler check

$ tyler check --srcdir src
[Tyler] Checking package in /PATH/TO/PACKAGE...
[Tyler] Loaded typst.toml for package PACKAGE:0.2.0
[Tyler] Package name is valid: PACKAGE
[Tyler] Found 2492 packages in the Typst preview package index
[Tyler] The version of the package PACKAGE:0.2.0 is not published on the index, but it is not 0.1.0
[Tyler] Source directory found in /PATH/TO/PACKAGE/src
[Tyler] typst.toml is missing required package.entrypoint

tyler checkコマンドでビルド設定をチェックできます。 設定が不足している場合は赤字で表示されます。 上記サンプルではtypst.tomlpackage.entrypointが設定されていないことを教えてくれました。

[Tyler] Source directory found in /PATH/TO/PACKAGE/src
[Tyler] Entrypoint src/ENTRYPOINT.typ found in /PATH/TO/PACKAGE/src/ENTRYPOINT.typ
[Tyler] Package authors are valid: AUTHOR
[Tyler] Package license is valid: MIT
[Tyler] License file found in /PATH/TO/PACKAGE/LICENSE

修正して再度tyler checkした結果です。 Entrypointが確認でき、その後のチェックも進めることができました。

ビルドしたい(tyler build

$ tyler build --srcdir src --install
[Tyler] Checking package in /PATH/TO/PACKAGE...
[Tyler] Loaded typst.toml for package PACKAGE:0.2.0
[Tyler] Package name is valid: PACKAGE
[Tyler] Source directory found in /PATH/TO/PACKAGE/src
[Tyler] Building package in /PATH/TO/PACKAGE...
[Tyler] Loaded typst.toml for package PACKAGE:0.2.0
[Tyler] Building for a unpublished package PACKAGE...
✔ current version: 0.2.0        ->            as-is 0.2.0    // バージョン選択
[Tyler] Bumping version by skip to 0.2.0...
[Tyler] The version of the package is not changed: 0.2.0
[Tyler] Bumped version in typst.toml to typst.toml
[Tyler] Source directory found in /PATH/TO/PACKAGE/src
[Tyler] Output directory will be  /PATH/TO/PACKAGE/dist
[Tyler] Copied typst.toml to dist/typst.toml
[Tyler] Copied README.md to dist/README.md
[Tyler] LICENSE is required but not found in /PATH/TO/PACKAGE
[Tyler] Copied src/COMPONENT1.typ to dist/COMPONENT1.typ
[Tyler] Copied src/COMPONENT2.typ to dist/COMPONENT2.typ
[Tyler] Copied src/COMPONENT3.typ to dist/COMPONENT3.typ
[Tyler] Copied src/COMPONENT4.typ to dist/COMPONENT4.typ
[Tyler] Installed to ~/Library/Application Support/typst/packages/local/PACKAGE/0.2.0

tyler buildでローカルビルドできます。 ビルド結果は設定ファイル(tyler.toml)のoutdirで設定したパスに生成されます。 この実行サンプルではdist/に生成されています。

注釈

typst.toml[packages.entrypoint]は、 dist/内の構造に合わせたパスに設定する必要があります。

ローカルインストールしたい(tyler build --install

$ tyler build --install
...
[Tyler] Installed to ~/Library/Application Support/typst/packages/local/PACKAGE/VERSION/

tyler build --installでローカルにインストールできます。 ビルドされたパッケージは(macOSの場合) ~/Library/Application Support/typst/packages/local/にインストールされます。

このパスにあるパッケージは、 @local/PACKAGE:VERSION でインポートできるようになります。 公開前の自作パッケージを、他のパッケージからも使いたい場合に活用できます。

パッケージを公開したい(tyler build --install --publish

$ tyler build --srcdir src --install --publish
[Tyler] Checking package in /PATH/TO/PACKAGE...
...(--install と同じなので省略)...
[Tyler] Installed to ~/Library/Application Support/typst/packages/local/PACKAGE/0.2.0
...(ここからが --publish 開始)...
[Tyler] Made a temporary directory in /var/folders/tv/9pv2t92113g5hw2kp4g351_00000gn/T/tyler-publish
...(typst/packages をクローン)...
[Tyler] Cloned https://github.com/typst/packages.git into /var/folders/tv/9pv2t92113g5hw2kp4g351_00000gn/T/tyler-publish/packages
[Tyler] Copied files from /PATH/TO/PACKAGE/dist to /var/folders/tv/9pv2t92113g5hw2kp4g351_00000gn/T/tyler-publish/packages/packages/preview/PACKAGE/0.2.0
[Tyler] Tree of the copied files:
...(コピーしたファイルの一覧)...
[Tyler] Ran git -C /var/folders/tv/9pv2t92113g5hw2kp4g351_00000gn/T/tyler-publish/packages add packages/preview/PACKAGE/0.2.0
[main 266e3088] PACKAGE@0.2.0
...(クローンしたリポジトリにパッケージを追加)...
[Tyler] Ran git -C /var/folders/tv/9pv2t92113g5hw2kp4g351_00000gn/T/tyler-publish/packages commit -m PACKAGE@0.2.0
gh version 2.79.0 (2025-09-08)
https://github.com/cli/cli/releases/tag/v2.79.0
[Tyler] To publish the package, run the following commands:
...(パッケージ公開のPRするコマンドのテンプレート)...
  $ cd /var/folders/tv/9pv2t92113g5hw2kp4g351_00000gn/T/tyler-publish/packages
  $ gh repo set-default https://github.com/typst/packages.git
  $ gh pr create --title "PACKAGE:0.2.0" --body-file ".github/pull_request_template.md" --draft
  $ cd -
Then go to your draft pull request on GitHub (following the link similar to https://github.com/typst/packages/pull/<number> from the output of the command above) and fill in the details to wait for the package to be approved

--publishオプションで、Typst Universeに公開する(一歩手前)の作業を自動化できます。 tylerが表示するログを順番に確認すればわかるとおり、 /var/folders/に、typst/packagesの作業用Gitディレクトリを作成し、 PACKAGE/dist/に生成したビルド結果をコピーしてコミットしています。

実際にTypst Universeで公開するには、末尾にあるgh pr createを実施し、 GitHubにPR(Pull Request)のドラフトを作成し、 承認を得るために必要なパッケージ概要を補足する必要があります。

リファレンス