パッケージ公開したい(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]セクションで設定します。
srcdir、outdir、ignoreはビルド環境に応じで設定してください。
ビルド前の確認したい(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.tomlにpackage.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)のドラフトを作成し、
承認を得るために必要なパッケージ概要を補足する必要があります。