如果你在维护 Hugo 多语言博客,经常会遇到一个高频痛点:
- 中文写完后,需要同步生成英文和繁体版本
- 三个语言文件要保持结构一致
- front matter 既要翻译又要遵守 Hugo 格式
sync-post-translations 就是为这个场景设计的 Agent Skill。
这个技能解决什么问题
sync-post-translations 的定位很清晰:
- 以
index.zh-cn.md 为源文件
- 在同目录生成或更新
index.en.md、index.zh-tw.md
- 保持 Markdown 结构一致
- 对 front matter 执行明确规则(尤其是
date、slug)
适用触发词示例:
- “同步翻译英文繁体”
- “把这篇文章同步成英文和繁体”
技能目录结构
1
2
3
4
|
.\sync-post-translations\
├─ SKILL.md
└─ agents\
└─ openai.yaml
|
核心代码一:SKILL.md
下面是该技能的核心规则文件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
---
name: sync-post-translations
description: 将 Hugo 文章从简体中文源文件(`index.zh-cn.md`)同步翻译为英文(`index.en.md`)和繁体中文(`index.zh-tw.md`)。当用户提出“en 繁体”“同步翻译英文繁体”或要求同时生成/更新两种语言版本且需保持 front matter 与 Markdown 结构一致时使用。
---
# 同步文章翻译
使用此技能为同一篇文章生成或更新多语言版本。
## 工作流程
1. 在目标文章目录中定位源文件 `index.zh-cn.md`。
2. 读取完整 front matter 与正文内容。
3. 在同目录创建或更新 `index.en.md` 与 `index.zh-tw.md`。
4. 确保三语结构对齐后执行 Hugo 构建检查。
## 翻译规则
1. 严格保留 `slug` 原值。
2. `date` 统一规范为 Hugo 常用带时间格式(RFC3339),示例:`2026-04-05T10:00:00+08:00`。
3. 自然翻译以下 front matter 字段:`title`、`description`、`tags`、`categories`。
4. 保持 Markdown 结构不变:标题层级、列表形态、代码块、链接与命令行示例。
5. 技术标识符保持原样:文件名、CLI 参数、模型名、设备名、URL、包名等。
6. 若 YAML 的 `title` 含有 `:`,必须加引号,避免解析报错。
7. 在不改变语义前提下,使用目标语言自然标点与表达习惯(`en`、`zh-tw`)。
## 输出约定
1. 仅在源文章同目录写入目标文件。
2. 汇报变更的文件路径。
3. 条件允许时执行 `hugo --source . --destination public`,并反馈通过/失败;失败时给出关键报错行。
## 质量标准
1. 全文术语前后一致。
2. 避免机器直译感,优先可发布文风。
3. 章节内容完整,不省略示例、注意点与总结。
|
核心代码二:agents/openai.yaml
这个文件定义了技能在 Agent 侧的展示和默认提示词:
1
2
3
4
|
interface:
display_name: "同步文章翻译"
short_description: "生成或更新 EN + ZH-TW 翻译稿"
default_prompt: "使用该技能在同一 Hugo 文章目录中,从 `index.zh-cn.md` 生成或同步 `index.en.md` 与 `index.zh-tw.md`,保留 `date` 与 `slug`,保持 Markdown 结构一致,并执行 Hugo 构建校验。"
|
实战调用示例
1) 面向人的自然语言触发
1
2
|
请把 content/post/2026/04/06/index.zh-cn.md 同步翻译成英文和繁体,
要求 date 用 RFC3339,slug 不变,最后跑 hugo 校验。
|
2) 你应当期待的输出结果
1
2
3
4
5
6
7
|
已更新:
- content/post/2026/04/06/index.en.md
- content/post/2026/04/06/index.zh-tw.md
构建校验:
- hugo --source . --destination public
- 结果:PASS
|
为什么这些规则很关键
slug 保持不变,能稳定 URL 与历史外链。
date 统一 RFC3339(带时区)可避免 Hugo/主题在时间解析上的歧义。
- Markdown 结构不变,能避免翻译后目录、代码块、短代码渲染错位。
- 技术标识符不翻译,可显著降低“命令不可用/文件名不匹配”问题。
常见坑位与规避
title 里有 : 却没加引号,YAML 会解析失败。
- 把
--flag、URL、包名翻译了,示例命令会直接失效。
- 三语标题层级不一致(如中文
## 变成英文 ###),目录锚点会错位。
- 只翻译正文不处理 front matter,页面列表与 SEO 信息会异常。