READMESource: main@1a9e6472
琢玉PPT工坊(DSH 插件)
用四川大学模板从零做学术汇报 PPT 的 DeepSeek Harness 插件。它把「做一份能上讲台的 PPT」固化成一个技能:模板继承、四级字号纪律、观点—证据—结论版面、逐页参考文献与浮动红线、论文原图优先,以及逐页渲染看图的交付自检。
和「琢玉PPT审阅专家」(zhuoyu-ppt-review 技能)是一对:一个做,一个审。

装了什么
| 位置 | 内容 |
|---|---|
index.js |
Host 侧技能提供者:把 assets/zhuoyu-ppt/SKILL.md 注册为技能 zhuoyu-ppt,技能目录作为资源根(模型可直接读模板与脚本) |
assets/zhuoyu-ppt/template/PPT模板.pptx |
川大模板原件(5 页:封面 / 内容页 / 目录 / 图文页 / 章节页) |
assets/zhuoyu-ppt/template/probe.json 等 |
模板结构探测结果(形状名/位置/字号),换模板后重跑脚本 |
assets/zhuoyu-ppt/SKILL.md |
技能入口:触发场景、快速开始、做一页的固定动作、硬规矩 |
references/design-rules.md |
字号/版面/观点/文献/配图的全部硬规则与数字 |
references/workflow.md |
从定主线到交付的完整流程 |
references/template.md |
模板结构、deckkit 如何绑定、怎么换模板 |
references/figure-policy.md |
论文原图 / 原生形状 / 生图的选择与提示词规范 |
references/pitfalls.md |
真实踩坑记录(渲染、锁文件、溢出、目录红块…) |
scripts/deckkit.py |
建页库:封面/目录/章节页/内容页、卡片、文本、形状、箭头、图片 |
scripts/new_deck.py |
生成「一页一页做」的工程骨架 |
scripts/probe_template.py |
探测任意模板的结构并导出 JSON + Markdown |
scripts/audit_deck.py |
字号纪律、越界、文字溢出、文献几何自检 |
scripts/check_refs.py |
正文引用与文献表一致性自检 |
scripts/render_deck.py |
用 LibreOffice Kit 渲染逐页 PNG(自动找 DSH 自带运行时) |
安装
本机(源码目录)
plugin_manager install_bundle target = <本仓库目录的绝对路径>
另一台电脑(从 GitHub 装)
git clone https://github.com/koking0/dsh-plugin-zhuoyu-ppt.git
# 然后在 DeepSeek Harness 里:
# plugin_manager install_bundle target = <克隆下来的目录绝对路径>
装好后技能目录出现 zhuoyu-ppt。对话里说「用模板帮我做一份 PPT」「接着做下一页」「把这段内容做成一页」即可触发。
插件零第三方运行时依赖;模板与技能文件都在仓库里,克隆下来即可用。
快速开始
# 1) 建工程(生成 build.py / assets / out / preview)
python "<技能目录>/scripts/new_deck.py" --dir ./ppt-aiops --title "AIOps 智能排障"
# 2) 改 build.py(封面 → 目录 → 章节页 → 内容页),构建
cd ./ppt-aiops
python build.py
# 3) 自检
python "<技能目录>/scripts/audit_deck.py" --input out/deck.pptx
python "<技能目录>/scripts/check_refs.py" --input out/deck.pptx
# 4) 渲染并逐页看图(必须做)
python "<技能目录>/scripts/render_deck.py" --input out/deck.pptx --output-dir preview/render
Python 用 load_workspace_dependencies 返回的 python.exe(自带 python-pptx / Pillow)。渲染优先用 DSH 自带 LibreOffice Kit;脚本自动搜索安装位置,也可以传 --node/--cli(路径见 office-render 技能)。
一页是怎么长出来的
from deckkit import Deck
deck = Deck() # 默认使用本插件的 template/PPT模板.pptx
deck.add_cover("AIOps 智能排障", "从故障感知到根因分析与辅助修复", org="四川大学", date="2026 年 11 月")
deck.add_toc(["01 AIOps 任务全景", "02 应用场景:跨指令集架构迁移"], active=0)
deck.add_section("01 AIOps 任务全景", "1.1 数据", other="02 应用场景:跨指令集架构迁移")
page = deck.add_content(
title="问题定义", # H1=24,红色,左上角
claim=[[("故障是「服务真的做不成这件事」,", "red"),
("异常是「我们能看到的征兆」", "dark")]], # H2=20,最多两行
refs=["[1] Soldani J, Brogi A. ...[J]. ACM CSUR, 2023, 55(3): 1-39."],
conclusion=[("异常是入口,故障是结论", "red")], # H2=20,带底色结论卡
)
page.card(0.61, page.content_top, 5.86, 1.2, "故障(Failure)", ["…"])
page.content_top / page.content_bottom 会随本页文献条数自动计算,不用手写死 y 坐标。

硬规矩(插件里写死并由脚本检查)
- 内容页只有 4 级字号:24 / 20 / 18 / 14,参考文献 8 是唯一例外;
- 每页「总—分—总」:观点卡 → 证据区 → 结论卡;内容在上下固定元素之间均匀分布;
- 参考文献逐页从
[1]编号,红色全宽线随条数上浮:top = 7.45 − n×0.1306 − 0.08; - 正文每个
[n]必须在本页文献表找到,每条文献必须在正文被引用; - 配图优先级:论文原图 > 原生形状 > 数据图 > AI 生图(且生图必须信息密集,禁止三块矩形的空话图);
- 交付前必须渲染并逐页看图,不允许占位图 / 「待补充」。
环境要求
- DeepSeek Harness(Host 侧技能注册表
skills); - Python 3.10+,
python-pptx(load_workspace_dependencies已带); - 渲染:DSH 自带 LibreOffice Kit(默认自动发现),或本机 LibreOffice(
--soffice)。
更新模板
- 替换
assets/zhuoyu-ppt/template/PPT模板.pptx; - 跑
python scripts/probe_template.py --template ... --out ...核对页数与形状名; - 若形状名变了,改
deckkit.py顶部的TPL_*/TITLE_SHAPE/CLAIM_BOX等常量; - 用
examples/demo/build.py建 4 页、渲染核对。
卸载
plugin_manager remove_bundle target = @liu_zhao_feng_alex/dsh-plugin-zhuoyu-ppt
许可
MIT。模板 PPT模板.pptx 为四川大学汇报模板,版权归原权利人,仅用于内部制作演示文稿。
No comments yet. Be the first to write one.