Presto 术语表
本术语表按主题分组,组内按拼音首字母排序。每个条目包含一句话定义、具体示例和交叉引用。
核心概念
二进制模板 (Binary Template)
以编译后的可执行文件形式分发的模板,而非源代码文件。Presto 的模板不是"把文件复制到你的项目里",而是一个独立的小程序——你把内容喂给它,它把排版好的文档吐出来。
示例: 一个用 Go 编写的简历模板,编译后是一个 6MB 的二进制文件 resume-template,用户无需安装 Go 环境即可使用。
另见: 模板、模板协议、manifest.json
Frontmatter
写在文档最顶部、用 --- 包裹的元数据区域。它告诉模板"这篇文档的标题是什么、作者是谁、用什么布局"等信息,就像信封上的收件人地址。
示例:
---
title: 我的简历
author: 张三
layout: modern
---
正文内容从这里开始...模板的 manifest.json 中通过 frontmatterSchema 字段定义了哪些 frontmatter 字段是必填的、类型是什么。
另见: manifest.json、Typst
manifest.json
模板的"身份证",一个 JSON 格式的配置文件,声明模板的名称、版本、作者、依赖字体等关键信息。注册中心和 Presto 主程序都通过读取它来了解模板的能力。
示例:
{
"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 的有 pip 和 uv。Presto 的注册中心本质上也是模板的"包管理器"。
另见: 注册中心
环境变量 (Environment Variable)
操作系统层面的全局配置项,程序运行时可以读取。相当于贴在冰箱上的便签条——所有家庭成员(程序)都能看到。
示例: 模板协议规定模板运行在最小环境下,只有 PATH=/usr/local/bin:/usr/bin:/bin 这一个环境变量,确保模板不会依赖用户机器上的特殊配置。
另见: 模板协议
别名索引
以下是常见的别名或易混淆写法,指向对应的主条目:
- 模版 → 见 模板 (Template)("版"是常见错别字,正确写法是"板")
- registry → 见 注册中心 (Registry)
- manifest → 见 manifest.json
- protocol → 见 模板协议 (Template Protocol)
- trust level → 见 信任等级 (Trust Level)
- starter → 见 Starter 仓库 (Starter Repository)
- 标准输入/标准输出 → 见 stdin/stdout
- 命令行 → 见 CLI
- 上下文管理 → 见 上下文工程 (Context Engineering)
