mcpField
A
arabic-presentations

arabic-presentations

github.com/sultanalsafran文档处理4122 次安装16 周前更新
代码仓库

关于 arabic-presentations

该技能为使用 Presentations 技能制作阿拉伯语或双语 PowerPoint 提供文本处理、规范化和质量检查规则。它强调原生 RTL 属性、PPTX 结构审计及 PowerPoint 视觉检查。

主要功能

  1. 01规范阿拉伯语段落方向
  2. 02设置语言与复杂文字字体元数据
  3. 03清除双向控制符并转换项目符号
  4. 04运行 PPTX 结构审计
  5. 05检查布局与 PowerPoint 渲染

适用场景

  1. 01制作阿拉伯语 PowerPoint 演示文稿
  2. 02修复既有演示文稿的 RTL 属性
  3. 03检查阿拉伯语与拉丁文本混排

安装

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

$npx skills add https://github.com/sultanalsafran/agent-skills --skill arabic-presentations

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

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
authoring.md
qa.md
scripts/
arabic_pptx.py

详细介绍

阿拉伯语演示文稿

使用 Presentations:Presentations 创建演示文稿;将此技能作为更严格的阿拉伯语文本与兼容性层。遵循 Presentations 技能中的所有内容、设计、工作区、实现和视觉 QA 规则。若阿拉伯语文本处理或渲染器可靠性有所不同,请遵循此技能。

此公开版本面向 Codex。它需要 Codex 内置的 Presentations 技能和 Python 3。

可靠性约定

将可编辑的 PPTX 视为源文件,并将 PowerPoint 桌面版视为标准查看器。

  • 以正常的逻辑 Unicode 顺序存储文本。绝不要反转阿拉伯字符、单词或行。
  • 绝不要使用 RLE/PDF、RLI/PDI、LRI/PDI、LRM 或 RLM 等 Unicode 双向控制符包裹阿拉伯语或拉丁语文本片段。
  • 为每个阿拉伯语段落设置原生 DrawingML 方向:<a:pPr rtl="1">。
  • 为每个阿拉伯语文本主体设置原生文本主体方向:<a:bodyPr rtlCol="1">。
  • 明确将阿拉伯语正文设为右对齐。保留有意采用的居中或两端对齐。
  • 设置阿拉伯语运行的语言元数据,通常为 ar-SA;若指定了字体,则设置复杂文字字体槽。
  • 使用 PowerPoint 原生项目符号;不要在段落开头直接输入 •。
  • 每个段落只使用一种基本书写方向。将较长的英文内容、URL、引文和代码放在独立的 LTR 文本框中。
  • 不要承诺不同计算机上的字体完全一致。使用支持阿拉伯语的字体;相关情况下说明字体替换风险,并在需要固定外观时提供 PDF。

在编写阿拉伯语或双语文本前,请阅读 references/authoring.md。在最终 QA 前或诊断跨应用差异时,请阅读 references/qa.md。

工作流

1. 使用 Presentations 技能创作

使用 Presentations:Presentations 和 @oai/artifact-tool 创建或编辑演示文稿。使用不带双向控制符的纯文本字符串。换行可能会生成多个 PowerPoint 段落;规范化步骤必须逐段修复。

如果阿拉伯语和英语承担不同语义角色,优先使用独立文本框。对于较短的混合短语,请保持预期的逻辑顺序,例如:

بلغ النمو 25% في Q4 2026.
C4ISR يربط القيادة بالاستطلاع.

对于列表,如果引擎提供原生列表 API,请使用该 API。如果引擎只会输出直接输入的项目符号,则可在原始草稿中保留这些符号,并在规范化时转换。

2. 导出原始草稿

导出到临时文件,例如 $TMP_DIR/deck.raw.pptx。将用户指定的最终文件名留给规范化后的文件使用。

3. 规范化 PPTX

运行:

ARABIC_SKILL="${ARABIC_PRESENTATIONS_SKILL_DIR:-$HOME/.agents/skills/arabic-presentations}"

python3 "$ARABIC_SKILL/scripts/arabic_pptx.py" repair \
  "$TMP_DIR/deck.raw.pptx" \
  "$FINAL_PPTX" \
  --lang ar-SA \
  --convert-bullets

仅当用户或演示文稿指定了字体时,才添加 --font "<Arabic-capable family>"。此操作会写入复杂文字字体槽,但不会嵌入字体。

对于阿拉伯语优先的演示文稿,添加 --presentation-rtl。对于英语优先或刻意保持中性的双语演示文稿,不要添加此参数;演示文稿的阅读顺序是文稿级选择,与阿拉伯语段落必须设置的 RTL 属性相互独立。

修复命令必须保留原始草稿、移除手动添加的双向控制符、应用原生段落和文本主体方向、添加语言元数据、在可能时根据所选字体填充复杂文字字体槽,并将直接输入的项目符号转换为原生项目符号。

4. 执行结构 QA

每次后续编辑或导出后,都运行严格审计:

python3 "$ARABIC_SKILL/scripts/arabic_pptx.py" audit "$FINAL_PPTX" --strict

对于阿拉伯语优先的演示文稿,在审计命令中添加 --expect-presentation-rtl。

任何错误或严格警告都将阻止交付。重新打开并修复或重新生成演示文稿;不要为未通过的审计结果找理由。

审计可验证包结构和阿拉伯语文本元数据,但无法证明每个应用中的视觉顺序,也无法确认字体是否已安装。

5. 运行视觉和应用程序 QA

使用 Presentations 技能的渲染与检查循环,检查布局、溢出、换行、对比度和重叠。不要将 Codex/LibreOffice 渲染结果作为判断阿拉伯字符或词语顺序的依据;它可能会错误渲染有效的 PPTX 双向文本。

在 Codex Desktop 中调用 Presentations 技能的 Python 容器工具时,请使用 load_workspace_dependencies 返回的捆绑 Python;系统 Python 可能未包含 pdf2image 和其他渲染依赖项。

当 PowerPoint 桌面版可用时,打开最终规范化的 PPTX,检查 references/qa.md 中的混合文本语料,以及每张包含数字、拉丁字母缩写、括号、百分比、URL 或项目符号的幻灯片。在声称“已通过 PowerPoint 验证”之前,必须完成 PowerPoint 视觉 QA。

仅将 Keynote 和 Google Slides 用作次要兼容性检查。如果它们与 PowerPoint 的结果不同,请保留结构正确的 PPTX,并报告具体应用程序中的差异。对于 Google Slides,请预期本地不可用的字体会被替换。

6. 如实报告

分别报告以下各项:

  • Structural Arabic QA: PASS/FAIL
  • Layout QA: PASS/FAIL
  • PowerPoint visual QA: PASS/NOT RUN
  • Keynote/Google Slides compatibility: PASS/NOT RUN/DIFFERS
  • Font portability: installed-font dependent 或 PDF supplied

除非确实打开并检查过这些应用程序,否则不要声称“在所有环境下都完美”或“已通过跨应用验证”。

特殊情况

  • **修复现有演示文稿:**保留输入文件,并另行输出一个规范化的 PPTX,除非用户明确授权原位替换。
  • **阿拉伯语图表:**优先使用数字/拉丁字母作为图表内部内容,并将阿拉伯语标题和标签作为独立的 RTL 文本框,除非能够进行 PowerPoint 视觉 QA。捆绑的审计工具尚未充分验证原生图表的双向文本。
  • **表格:**将单元格段落设为 RTL。仅当表格的语义阅读顺序为阿拉伯语时才镜像列顺序;不要自动镜像装饰性布局。
  • **演讲者备注:**也要规范化阿拉伯语备注;修复脚本会扫描 PPTX 包中的所有 DrawingML 段落。
  • **PDF:**将 PDF 用于固定内容分发,不要用它替代用户要求的可编辑 PPTX。

评论

支持 Markdown