mcpField
P
pangu

pangu

github.com/shihyuho文档处理2109 次安装1 周前更新
代码仓库

关于 pangu

pangu 是处理中日韩文字与 ASCII 混排间距的文本编辑技能。它按规则调整自然语言,同时保留代码、URL、路径、引文等字面内容。

主要功能

  1. 01中日韩文字与 ASCII 间距
  2. 02标点和运算符间距
  3. 03保留字面内容
  4. 04遵循 Markdown 编辑规则

适用场景

  1. 01整理中英文混排文字
  2. 02编辑 Markdown 且不改代码
  3. 03调整标题和链接标签
  4. 04编辑说明时保留日志

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/shihyuho/pangu.skill --skill pangu

安装后在 Claude Code 中输入/pangu确认已加载。

附带文件agents/openai.yaml

详细介绍

pangu

偏执式文本间距(盤古之白)

首先明确范围

  1. 遵循用户要求的格式和编辑范围。为任务中创建或修改的正文添加空格;仅当任务要求处理整篇文档时,才格式化整篇文档。其他无关文本保持原样。
  2. 逐字节保留字面内容:代码、行内代码、围栏或缩进代码块、精确引文、命令输出和日志,即使它们位于代码片段之外也一样。只有用户的任务明确要求时,才修改字面内容。
  3. 为自然语言文本添加空格,包括标题、链接标签和代码注释。保留 Markdown 标记、链接目标及其他结构语法,以及 URL、路径、电子邮件地址、版本号和复合标识符内部的内容。标记中的汉字仍属于该标记。
  4. 交付请求的内容时,确保已添加空格。

例如,为 Markdown 链接的可见标签添加空格,同时保持其 URL 完全不变。为便于搜索而引用日志时,保留日志原文,只为你自己的说明添加空格。这些边界优先于下文的文本规则。

文本规则

当中日韩字符与 ASCII 字母或数字,或下列扩展范围中的字符直接相邻时,插入一个半角空格。标点和运算符按下方的符号规则处理。中日韩字符包括汉字、日文假名和注音符号,也包括用于韩语的汉字。韩文不属于此定义:한국어test 保持不变。 全角标点(,。!?「」)周围无需添加空格。 对于空格处理,不含中日韩字符且空格已正确的文本保持不变。

當你凝視著bug,bug也凝視著你 → 當你凝視著 bug,bug 也凝視著你
與PM戰鬥的人 → 與 PM 戰鬥的人
這是2025年的事 → 這是 2025 年的事
扩展字符

对以下精确的 Unicode 码位范围应用中日韩边界空格规则,但下方列出的附加后缀除外:

  • NBSP 之后的 Latin-1 Supplement:U+00A1–U+00FF。
  • Greek and Coptic:U+0370–U+03FF。
  • Letterlike Symbols:U+2100–U+214F。
  • Number Forms:U+2150–U+218F。
  • Dingbats:U+2700–U+27BF。

仅在中日韩字符直接相邻时添加空格,保持相邻的非中日韩字符连在一起(例如 ±5)。后缀 ® ⁰ ¹ ² ³ ⁴ ⁵ ⁶ ⁷ ⁸ ⁹ ⁱ ⁿ ⁺ ⁻ ⁼ ⁾ ℠ ™ 保持与前面的文本相连;如果后面紧跟中日韩字符,则插入空格。上标左括号 ⁽ 不属于此集合。对包含中日韩字符的文本,还要在 © 与其后紧跟的数字之间插入空格。

其他非 ASCII 字符保持原有间距,除非适用其他文本规则:★ 不在这些范围内。·(U+00B7)属于 Latin-1 范围,但下方的间隔号规则会优先将单独且紧贴的 · 转换为 ・。保留组合标记和变体选择符的原样;若标记位于符合条件的字符与中日韩字符之间,则会中断这一直接边界。

狀態✓完成 → 狀態 ✓ 完成
版本β測試 → 版本 β 測試
溫度±5度 → 溫度 ±5 度
章節Ⅻ內容 → 章節 Ⅻ 內容
符號★測試 → 符號★測試
結果é完成 → 結果 é 完成
溫度℃變化 → 溫度 ℃ 變化
編號№123項 → 編號 №123 項
符號⅏測試 → 符號 ⅏ 測試
面積m²大小 → 面積 m² 大小
中文⁺註記 → 中文⁺ 註記
商標™產品 → 商標™ 產品
品牌®商品 → 品牌® 商品
©2026版權 → © 2026 版權
运算符和分隔符
  • - * = ^ < > \:在中文与半角字符之间加空格,半角词保持完整。 紧邻中文之前时,也在 - * = & 与前面的 ) ] } 之间加空格; 紧邻中文之后时,在它们与后面的 ( [ { 之间加空格;但 *[ 例外,它会打开 *[0-9].log 这样的 glob。在连字符紧邻中文的行中,位于 ) ] } 和 ( [ { 之间的连字符也作为分隔符。位于中文和数字之间的连字符作为分隔符;已经与负数间隔的 符号仍与负数保持相连。
  • _:在任何上下文中都保持相连。
  • |:如果有一个竖线紧邻中文,则为该行的每个竖线加空格;否则 保留半角形式的 A|B。
  • /:保持 中文/English 和 A/B 这样的连接文本完整,并保留 现有空格。识别出的文件路径仍需在其外侧中文边界处加空格,详见“完整词元”。
  • &:保持半角连接符(R&D)完整;在中文边界处加空格。
  • +:保持符号和后缀在 +886、100+ 和 A+ 中相连,并先为其外侧的中文边界 加空格。如果加号仍紧邻中文,则该行其余紧凑的单个加号都作为分隔符,包括 半角词之间的加号。双加号(C++)和名称后缀(如 Disney+、Apple TV+、 mo 店+、公視+、AA+ 和 AB+)保持相连,但仍会启用该行的其他分隔符规则。 如果没有加号紧邻中文,则保留 A+B。已有空格相邻的加号保留其间距,但直接位于中文边界处时除外。 常见全角标点在加号的一侧保持紧凑;在 ) ] } 之后以及 (「『【《 之前, 仅在加号前插入空格。
前面+後面 → 前面 + 後面
Switch+健身環 → Switch + 健身環
前+A+B → 前 + A + B
前 A+B 後 → 前 A+B 後
前+A+「方案」 → 前 + A+「方案」
(中文)+「方案」 → (中文) +「方案」
有100+的選擇 → 有 100+ 的選擇
Disney+的節目 → Disney+ 的節目
Disney+的節目 A+B → Disney+ 的節目 A + B
mo店+免運無限次 → mo 店+ 免運無限次
mo 店+ 免運無限次 → mo 店+ 免運無限次
C++的程式 A+B → C++ 的程式 A + B
A+的等級 A+B → A+ 的等級 A+B
得到一個A-B的結果 → 得到一個 A-B 的結果
得到一個A*B的結果 → 得到一個 A*B 的結果
比較A<B和A>B的結果 → 比較 A<B 和 A>B 的結果
比較A=B與A^B的結果 → 比較 A=B 與 A^B 的結果
前面\後面 → 前面 \ 後面
前面~=後面 → 前面 ~= 後面
(中文)-下一步 → (中文) - 下一步
[中文]*下一步 → [中文] * 下一步
{中文}=下一步 → {中文} = 下一步
(中文)&下一步 → (中文) & 下一步
中文=(東西) → 中文 = (東西)
中文-[東西] → 中文 - [東西]
刪除*[0-9].log檔 → 刪除 *[0-9].log 檔
中文-中文[A]-(中文) → 中文 - 中文 [A] - (中文)
中文[A]-(中文) → 中文 [A]-(中文)
中文-123度 → 中文 - 123 度
氣溫 -5°C → 氣溫 -5°C
前_後 → 前_後
Mollie_陳上進 → Mollie_陳上進
前|A|B → 前 | A | B
前 A|B 後 → 前 A|B 後
得到一個A/B的結果 → 得到一個 A/B 的結果
前面/後面 → 前面/後面
前面 / 後面 → 前面 / 後面
陳上進/貓咪/Mollie → 陳上進/貓咪/Mollie
得到一個R&D的部門 → 得到一個 R&D 的部門
陳上進&Mollie → 陳上進 & Mollie
标点、引号和相连词元
  • 在含中文的行中,.、,、:、;、!、?、~ 后面若跟着 中文、字母或数字,则在其后加空格。保留其半角形式、文件扩展名和版本号。記住:(東西) 中 紧邻括号的冒号例外:将其转换为全角。
  • "、'、反引号以及 ( ) [ ] { } < >:在外侧与中文之间加空格, 内侧边缘保持紧凑。所有格 's 保持相连。
  • 保持 @user、#tag、C#、$100 和 95% 完整。
  • 如果单个间隔号 · • ‧ 的两侧都没有空格、不换行空格或其他间隔号,则将其转换为 ・。 按原样保留带空格的间隔号和连续间隔号;由于 · 属于 Latin-1 字符, 它紧邻中文时仍需加空格。
前面,後面 → 前面, 後面
電話:123456789 → 電話: 123456789
前面?後面 → 前面? 後面
前面…後面 → 前面… 後面
記住:(東西) → 記住:(東西)
前面(中文123漢字)後面 → 前面 (中文 123 漢字) 後面
前面"中文123漢字"後面 → 前面 "中文 123 漢字" 後面
我看过的电影(1404) → 我看过的电影 (1404)
function(123) → function(123)
陳上進 likes 林依諾's status. → 陳上進 likes 林依諾's status.
請@vinta吃大便 → 請 @vinta 吃大便
前面#H2G2後面 → 前面 #H2G2 後面
前面C#後面 → 前面 C# 後面
前面$100後面 → 前面 $100 後面
新八的構造成分有95%是眼鏡 → 新八的構造成分有 95% 是眼鏡
喬治·R·R·馬丁 → 喬治・R・R・馬丁
喬治 · 馬丁 → 喬治 · 馬丁
喬治 ·馬丁 → 喬治 · 馬丁
卡號••••1234 → 卡號••••1234
卡號····1234 → 卡號 ····1234
完整词元

在词元与周围正文之间加空格,同时保留词元内部内容。连续不间断的 http:// 或 https:// URL 包含其右侧的中文;保持整个 URL 完整,并在其协议前的中文 之后加空格。显式空格或全角标点会将后续正文与 URL 分隔开。

OpenAI的gpt-4o模型 → OpenAI 的 gpt-4o 模型
Anthropic的claude-4-opus模型 → Anthropic 的 claude-4-opus 模型
OpenAI的GPT-5模型 → OpenAI 的 GPT-5 模型
state-of-the-art → state-of-the-art
pangu.js v1.2.3橫空出世 → pangu.js v1.2.3 橫空出世
這是C++跟C#的差別 → 這是 C++ 跟 C# 的差別
得到一個A+的結果 → 得到一個 A+ 的結果
檢查src/main.py文件 → 檢查 src/main.py 文件
在/home目錄 → 在 /home 目錄
檔案在C:\Users\name\ → 檔案在 C:\Users\name\
請看https://example.com/path頁面 → 請看 https://example.com/path頁面
請看https://example.com/path 頁面 → 請看 https://example.com/path 頁面
參考https://example.com/中文API?q=中文#用法,謝謝 → 參考 https://example.com/中文API?q=中文#用法,謝謝

文本规则示例已通过 pangu 10.4.1 验证;正文适用范围需依据上述说明进行判断。

评论

支持 Markdown