Skip to content

Presto 术语表

本术语表按主题分组,组内按拼音首字母排序。每个条目包含一句话定义、具体示例和交叉引用。


核心概念

二进制模板 (Binary Template)

以编译后的可执行文件形式分发的模板,而非源代码文件。Presto 的模板不是"把文件复制到你的项目里",而是一个独立的小程序——你把内容喂给它,它把排版好的文档吐出来。

示例: 一个用 Go 编写的简历模板,编译后是一个 6MB 的二进制文件 resume-template,用户无需安装 Go 环境即可使用。

另见: 模板、模板协议、manifest.json


Frontmatter

写在文档最顶部、用 --- 包裹的元数据区域。它告诉模板"这篇文档的标题是什么、作者是谁、用什么布局"等信息,就像信封上的收件人地址。

示例:

yaml
---
title: 我的简历
author: 张三
layout: modern
---
正文内容从这里开始...

模板的 manifest.json 中通过 frontmatterSchema 字段定义了哪些 frontmatter 字段是必填的、类型是什么。

另见: manifest.json、Typst


manifest.json

模板的"身份证",一个 JSON 格式的配置文件,声明模板的名称、版本、作者、依赖字体等关键信息。注册中心和 Presto 主程序都通过读取它来了解模板的能力。

示例:

json
{
  "name": "resume-zh",
  "displayName": "中文简历模板",
  "version": "1.0.0",
  "author": "Presto-io",
  "minPrestoVersion": "0.2.0",
  "requiredFonts": [{ "family": "Noto Sans SC" }],
  "frontmatterSchema": {
    "title": { "type": "string", "required": true }
  }
}

在 Go 模板中,这个文件通过 //go:embed manifest.json 嵌入到二进制文件里。

另见: 二进制模板、模板协议、frontmatter


模板 (Template)

Presto 生态中可复用的文档排版程序。它接收用户的 Markdown/Typst 内容,输出格式化的文档(通常是 PDF)。每个模板是一个独立的二进制可执行文件,自带 manifest 描述信息。

示例: presto-resume 是一个简历模板,用户写好简历内容后,模板负责把它排版成专业的 PDF。

另见: 二进制模板、manifest.json、注册中心


Presto

一个基于 Wails 构建的桌面应用,帮助用户通过模板快速生成高质量排版文档。Go 做后端逻辑,Svelte 5 做前端界面,Typst 做排版引擎,三者协作完成从编辑到输出的全流程。

示例: 用户在 Presto 中选择简历模板,填写个人信息,实时预览排版效果,一键导出 PDF。

另见: Wails、Typst、模板


Typst

一种现代排版语言和引擎,可以理解为"更简单的 LaTeX"。Presto 用它作为底层排版引擎,把用户内容渲染成精美的 PDF。语法比 LaTeX 简洁很多,编译速度也快得多。

示例: 在 Typst 中设置标题样式只需 #set heading(numbering: "1.1"),而 LaTeX 需要引入宏包再写一堆配置。

另见: Presto、模板


模板生态

模板协议 (Template Protocol)

Presto 与模板二进制之间的通信规则。定义了 4 种调用方式,超时上限 30 秒,运行在最小环境(PATH=/usr/local/bin:/usr/bin:/bin)下。

调用方式触发方式作用
Convert内容通过 stdin 传入,结果从 stdout 输出执行排版转换
GetManifest--manifest 参数获取模板身份信息
GetExample--example 参数获取示例文档
GetVersion--version 参数获取模板版本号

示例: Presto 调用模板时,实际执行的是 echo "内容" | ./resume-template,模板程序从 stdin 读取内容,处理后将 PDF 字节流写入 stdout。

另见: 二进制模板、stdin/stdout


Starter 仓库 (Starter Repository)

官方提供的模板开发脚手架,帮你快速搭建一个新模板项目。里面已经配好了 manifest.json、示例文件、构建脚本等,你只需要专注写排版逻辑。

示例: starter-go 仓库包含一个完整的 Go 模板骨架,内置 //go:embed manifest.json//go:embed example.md,clone 下来改改就能开发自己的模板。

另见: 二进制模板、manifest.json


信任等级 (Trust Level)

注册中心对模板来源可信度的分级标记,帮助用户判断模板是否安全可靠。共 4 个等级:

等级含义
official由 Presto-io 官方维护
verified经 CI 从源码编译,通过 PR 审批
community已收录到注册中心,但未经验证
unrecorded不在注册中心,用户手动安装

示例: 你在注册中心看到一个模板标着 verified,说明它的二进制是从公开源码自动编译的,不是作者自己上传的神秘文件。

另见: 注册中心


注册中心 (Registry)

模板的集中发布和发现平台,类似手机上的"应用商店"。开发者把模板发布到这里,用户从这里搜索、安装模板。每个模板都有信任等级标记。

示例: 运行 presto install resume-zh 时,Presto 会从注册中心查找名为 resume-zh 的模板,下载对应平台的二进制文件。

另见: 信任等级、模板


开发工具

Claude Code

Anthropic 推出的 AI 编程助手命令行工具,能直接读写本地文件、执行命令。Presto 项目用它辅助开发,通过 CLAUDE.md 文件给它提供项目上下文。

示例: 在终端输入 claude 启动对话,它能帮你写代码、调试、生成测试,还能根据 CLAUDE.md 中的规则自动遵守项目规范。

另见: CLAUDE.md、上下文工程


CLAUDE.md

放在项目根目录的指令文件,告诉 Claude Code 这个项目的规则、架构和注意事项。相当于给 AI 助手写的"新人入职手册"。

示例: Presto-io 工作区的 CLAUDE.md 指定了"commit 消息用中文""Python 用 uv 不用 pip""本地是 arm64 架构"等规则,Claude Code 每次启动都会读取并遵守。

另见: Claude Code、上下文工程


上下文工程 (Context Engineering)

精心组织和管理提供给 AI 的背景信息,让 AI 更准确地理解项目并产出高质量结果的实践方法。核心思想是"给对的信息,在对的时候"。

示例: 把架构文档、编码规范、术语表(就是你正在读的这个文件)整理好放在固定位置,AI 工具就能自动加载这些上下文,避免每次对话都要重复解释项目背景。

另见: CLAUDE.md、Claude Code


Wails

一个用 Go 构建桌面应用的框架,类似 Electron 但更轻量——用系统自带的 WebView 而不是打包一整个 Chrome 浏览器。Go 写后端逻辑,前端用任意 Web 框架(Presto 选了 Svelte 5)。

示例: Presto 的前端代码编译后通过 //go:embed all:build 嵌入到 Go 二进制中,最终用户拿到的是一个单文件应用,不需要安装 Node.js。

另见: Presto


通用附录(零基础读者)

这些是软件开发中的通用概念,不是 Presto 特有的,但理解它们有助于读懂上面的术语。

API (Application Programming Interface)

程序之间互相对话的"接口规范"。就像餐厅的菜单——你不需要知道厨房怎么做菜,只需要看菜单点菜,厨房按菜单出餐。

示例: Presto 通过模板协议(一种 API)与模板通信:传入内容,传出 PDF,双方约定好数据格式就行。

另见: 模板协议


CLI (Command Line Interface)

命令行界面,通过在终端输入文字命令来操作程序,而不是点击图形按钮。

示例: presto install resume-zh 就是一条 CLI 命令,意思是"安装名为 resume-zh 的模板"。

另见: stdin/stdout


JSON (JavaScript Object Notation)

一种轻量级的数据格式,用花括号和键值对来组织信息,人和机器都能轻松读懂。

示例: manifest.json 就是一个 JSON 文件:{"name": "resume-zh", "version": "1.0.0"}

另见: manifest.json


stdin/stdout (Standard Input/Output)

程序的"标准输入"和"标准输出",是程序接收和发送数据的默认通道。可以想象成程序的"耳朵"(stdin,听你说什么)和"嘴巴"(stdout,把结果说出来)。

示例: 模板协议的 Convert 调用中,用户内容通过 stdin 传给模板程序,模板把生成的 Typst 代码通过 stdout 传回。 在终端中用管道符 | 连接:echo "内容" | ./template

另见: 模板协议、CLI


Token

在不同场景下含义不同,但核心都是"一小段有特定用途的字符串"。在认证场景中是"通行证",在 AI 场景中是"文本的最小处理单元"。

示例: 发布模板到注册中心时需要提供 API Token(一串类似 ghp_xxxx 的字符串)来证明你的身份,就像进小区要刷门禁卡。

另见: API、注册中心


包管理器 (Package Manager)

自动帮你下载、安装、更新软件依赖的工具,免去手动找文件、配路径的麻烦。

示例: Go 的包管理器是 go mod,Node.js 的是 npm,Python 的有 pipuv。Presto 的注册中心本质上也是模板的"包管理器"。

另见: 注册中心


环境变量 (Environment Variable)

操作系统层面的全局配置项,程序运行时可以读取。相当于贴在冰箱上的便签条——所有家庭成员(程序)都能看到。

示例: 模板协议规定模板运行在最小环境下,只有 PATH=/usr/local/bin:/usr/bin:/bin 这一个环境变量,确保模板不会依赖用户机器上的特殊配置。

另见: 模板协议


别名索引

以下是常见的别名或易混淆写法,指向对应的主条目:

Presto — Markdown to PDF