如果你正在維護 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 資訊會異常。