创建内容

自己的模板需要有一个 github 仓库,在工程目录下,需要有一个 typst.toml,其内容为:

[package]
name = "example"
version = "0.1.0"
entrypoint = "lib.typ"
authors = ["The Typst Project Developers"]
license = "MIT"
description = "An example package."

其中,name 项需要和仓库名称、typst 的包的名称相同。

如果是一个模板,还需要包括:

[template]
path = "template"
entrypoint = "main.typ"
thumbnail = "thumbnail.png"

并在工程目录下创建 template 文件夹,里面的 main.typ 为入口程序。工程目录下的 thumbnail.png 为模板封面图片,需要高清图片,尽量是模板PDF直接转化出来的图片。

Fork 官方仓库

打开 官方 packages 仓库

点击 Fork,一切选项保持默认。

在初始化 git 目录之前,最好设置默认 branchmain

git config --global init.defaultBranch main

在本地新建一个目录,如 upload,在此目录下,执行:

git init

再执行:

git remote add origin https://github.com/[username]/packages.git

其中,[username] 需要改成自己的 github 用户名。

执行以下命令启用稀疏检测出:

git config core.sparseCheckout true

执行以下命令将指定目录添加到检出目录:

echo "packages/preview/[package-name]/*" >> .git/info/sparse-checkout

其中,[package-name] 需要和 typst 的包名相同。

执行以下命令进行拉取:

git pull origin main --depth=1

在当前目录下,创建目录:packages/preview/[package-name]/0.1.0/

将包的所有内容复制到 0.1.0 目录下,不要包含 .git 目录和生成的 PDF 文件。只包含源代码。

新建 commit,commit的内容应该为:[package-name]:0.1.0

执行 git push 到自己的仓库中。

在网页上打开仓库,点击 Contribute Open pull request,认真阅读并填写模板,提交,等待通过即可。新发布的包可能需要几天的时间才会通过。