8.1 KiB
Gitea 邮件模板
为自托管 Gitea 提供精心设计、可直接部署的多风格邮件模板。
最新发布版:v28.0.0
设计理念
大多数自托管 Gitea 实例使用默认的纯文本邮件模板。本项目提供了开箱即用、视觉精美的替代方案——每种方案都针对特定社区或受众设计,您可以选择最适合您用户的风格。
main 分支使用锁定的官方输入及共享控件框架:Gitea 提供邮件值、通知逻辑与翻译,框架负责页头、按钮、备用链接和页脚,主题仅定义样式。官方文件在开发/CI 时下载,不在仓库中维护副本。该重构尚未发布,以 v28.0.0 为基线;源码克隆需先构建安装文件,发行包提供可直接复制的产物。使用已发布版本前,请查看兼容性说明。
风格画廊
下表展示仓库当前收录的主题;新增主题可作为独立目录放在 themes/ 下,不受现有数量限制。
画廊展示共享框架的当前源码构建,并非历史发行包。保留原主题的配色、字体、页头及按钮/备用链接控件。查看本地预览及截图说明。
本地预览画廊 — 先按下文生成预览数据,再在浏览器中打开。
安装
源码克隆需按仓库提交的 gitea.lock.json 先构建(Go 1.24+,缓存不存在时首次构建下载锁定输入)。锁文件缺失会报错,不会自动选择最新版 Gitea:
cd tools
go run . build all
cd ..
选择一种风格,将生成的 mail/ 目录复制到 Gitea 自定义模板路径。发行压缩包中的路径为 themes/<名称>/mail/,源码构建后的路径为 build/themes/<名称>/mail/:
mkdir -p /var/lib/gitea/custom/templates/mail
cp -r build/themes/horizon/mail/. /var/lib/gitea/custom/templates/mail/
systemctl restart gitea
切换前备份当前邮件覆盖文件,根据上一主题的 build.json 移除其安装文件,再复制新主题完整输出;保留其他自定义模板。从 framed 切换到 shared 时,遗留的正文覆盖文件仍会使用旧布局,因此不能仅覆盖两个共享片段。
请确认实例实际配置的自定义目录再安装;常见部署示例为 Linux 二进制部署的 /var/lib/gitea/custom、Docker 的 /data/gitea,以及 Windows 的 C:\gitea\custom,这些并非所有实例的统一默认路径。
确认生效
管理后台的测试邮件不会使用自定义模板。要验证模板是否生效,请触发一次真实的 邮件通知。最快的方式是密码重置:退出登录,点击登录页的**"忘记密码"**,查看 重置邮件即可——它将使用你的自定义样式渲染。
预览
源码克隆需先生成被忽略的 preview/rendered.js 清单及逐语言数据包。后续发行包会包含全部官方语言的预览,现有 v28.0.0 及更早压缩包保持原内容。
官方输入命令(upstream)
在 tools/ 执行:go run . upstream prepare 根据已有锁文件下载尚不存在的缓存;go run . upstream verify 离线校验已有缓存;go run . upstream sync --tag vX.Y.Z 显式替换版本并生成锁文件。均支持子命令后的 --root <仓库根目录>,默认 ..。
缺少根锁文件时,准备、校验、构建与预览都会失败。普通克隆应恢复受版本控制的锁文件;有意初始化可运行 go run . upstream sync --tag v28.0.0。同步须联网,仅接受稳定 Gitea 28+ 标签,不更新文档或发布版本。损坏/版本不匹配的缓存需要检查后恢复,而非自动修复,详见完整命令与恢复指南。
静态模式:
cd tools
go run . preview all
cd ..
然后在浏览器中打开 preview/index.html,无需启动服务器。
开发服务器(实时重载):
cd tools
go run . dev
# 在浏览器中打开 http://127.0.0.1:3456
| 功能 | 静态 | Dev |
|---|---|---|
| Go 模板渲染 | [YES] | [YES] |
| 主题/模板/语言切换 | [YES] | [YES] |
| 实时重载 | [NO] | [YES] |
预览支持主题、邮件类型及全部官方语言切换(v28.0.0 快照含 28 种语言),以及 Modern/Source 视图、桌面/移动端尺寸和参数面板。语言数据按需加载,支持直接打开本地文件。←→ 可切换选择框,↑↓ 可切换选项,d/m 可切换视口。
兼容性
- Gitea 28.0.0 — 使用模板发布版 v28.0.0;旧版 Gitea 请选用对应的旧版模板
- 最新测试: Gitea 28.0.0
- 最新发布版: v28.0.0
- 其它 Gitea 版本请先查看逐版本兼容矩阵再选择模板压缩包;标记为 [PENDING] 的版本尚无已验证的推荐包。版本号相符的 v1.27.2 存在已知的推送通知问题。
- 上游 Gitea 28.1.0: [PENDING]
- 新源码架构支持 Gitea 28+,离线校验官方快照;源码状态及历史发行版限制详见兼容性说明。
模板类型
邮件类型由官方输入发现,当前为 11 种:账户激活、邮箱验证、注册通知、密码重置、团队邀请、仓库协作者、仓库转移、新版发布、Actions 工作流、议题/合并请求指派及议题/合并请求更新。具体路径参见英文 README。framed 主题使用同一对齐层与共享控件生成安装文件;可选的 shared 模式仅覆盖两个基础片段,不添加框架控件。
设计与翻译
主题仅维护 CSS 与元数据;共享框架使用官方邮件值及翻译组织可复用控件,保留通知条件、主题行和功能链接目标。官方模板及语言文件下载到忽略的 build/upstream/,仅提交工具生成的 gitea.lock.json。语言缺键按 Gitea 规则回退英文。v28.0.0 波兰语邀请文案存在官方占位符缺陷,预览报告 [UPSTREAM-WARN] 并保留官方行为,详见贡献指南。









