dsh-ppt 0.4.3 → 0.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.4.4(2026-09-21)
4
+
5
+ - Markdown 与结构化长表格自动按每页 8 行数据分页,续页重复表头,备注仅放第一页;修复无小标题、首个 H1 下表格被丢弃。
6
+ - 不再静默裁掉中间幻灯片、额外列或长单元格:总页数超过 maxSlides、超过 8 列或单元格超过 60 字符时,生成前提示调整。短行补空白,HTML 与 PPTX 保留同一份数据。
7
+ - 续页标题跟随中文、英文或双语设置。新增 7 项回归,67 项测试通过;生成产物检查覆盖全部 17 行数据。
8
+
3
9
  ## 0.4.3(2026-09-18)
4
10
 
5
11
  - 修复:中文分句导致正文丢内容;`--content deck.md` 不读文件;>8 条要点静默丢弃;`deck.json` 版本写死;英文 deck 被标 zh-CN。
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 stardustlc
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 stardustlc
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.en.md CHANGED
@@ -30,6 +30,8 @@ Example:
30
30
 
31
31
  ## Compatibility
32
32
 
33
+ 2026-09-21: the current release package was installed through the official CLI in an isolated profile and co-loaded with the other two most-downloaded plugins on source-built Harness `0.1.6-alpha.2`. All 18 plugin tools registered; calendar/email configuration checks, PPT theme listing and 17-row table generation passed. The host is based on the official alpha.2 release plus the tool-scheduler `Symbol.for` fix (`93badd88`). This run did not connect to live mail or calendar services.
34
+
33
35
  Verified with official `@deepseek-ai/dsh@0.1.5-rc.1` and Node `24.16.0` on 2026-09-11: all 18 components load alongside Modlens, with passing tool-schema, skill-registration and offline read-only invocation checks. Uses the `cordis.patch.yml` + `dsh.bundle.patch` bundle model. Node requirements match this Harness release: 22.19 or later within 22.x, or 24 or later. Live external-service workflows require separate configuration and validation.
34
36
 
35
37
  ## Installation
@@ -105,6 +107,8 @@ Themes are derived from [dsh-hyperframes](https://github.com/STARDUSTLC666/dsh-h
105
107
  - Each `## section` becomes one slide: lists produce `bullets` slides; empty sections produce `section` dividers.
106
108
  - Plain text without headings: the first paragraph is the cover, then every 5 sentences become one slide.
107
109
  - A single sentence automatically produces a complete 3-slide structure: cover → core idea → closing.
110
+ - Long tables paginate automatically with repeated headers and up to 8 data rows per page. Notes stay on the first page. Tables support 8 columns and 60 characters per cell; oversized input returns an actionable error. Short rows are padded consistently in all artifacts.
111
+ - `maxSlides` counts pages after expansion. Exceeding it fails before writing files; raise the limit (up to 120) or split the deck. Middle slides are never silently discarded.
108
112
  - For precise control, use structured `slides` (`cover | section | bullets | statement | quote | table | closing`), with `rows` for tables and `notes` for speaker notes.
109
113
 
110
114
  ## Configuration
package/README.md CHANGED
@@ -32,6 +32,8 @@ DSH(DeepSeek Harness)演示文稿技能 + 工具插件:把一句话、一
32
32
 
33
33
  ## 兼容性
34
34
 
35
+ 2026-09-21:当前发布包经官方 CLI 安装到隔离 profile,在源码构建的 Harness `0.1.6-alpha.2` 上与另外两个下载量前三插件共同加载,18 个插件工具注册正常;日历/邮件配置自检、PPT 主题查询和 17 行表格生成通过。测试本体基于官方 alpha.2 发布提交,另含工具调度器 `Symbol.for` 修复(`93badd88`)。本轮未连接真实邮箱或日历服务。
36
+
35
37
  已在官方 `@deepseek-ai/dsh@0.1.5-rc.1`、Node `24.16.0` 上验证(2026-09-11):18 个组件与 Modlens 同载,工具 schema、技能注册及离线只读调用检查通过。采用 `cordis.patch.yml` + `dsh.bundle.patch` 组合包模型。Node 要求与该版本 Harness 一致:22.19 及以上的 22.x,或 24 及以上。外部服务的实际业务操作需按各组件配置单独验证。
36
38
 
37
39
  ## 安装
@@ -98,6 +100,8 @@ node <skill-dir>/scripts/build-deck.mjs \
98
100
  - 每个 `## 小节` → 一页:有列表生成 `bullets` 页,无内容生成 `section` 过渡页。
99
101
  - 没有标题的纯文本 → 第一段作封面,后续每 5 句一页。
100
102
  - 只有一句话 → 自动生成「封面 → 核心观点 → 结束页」三页完整结构。
103
+ - 长表格自动分页:每页重复表头,最多 8 行数据;备注只放第一页。最多 8 列、每格 60 字符,超限会提示拆分。短行补空白,三种产物保留相同数据。
104
+ - `maxSlides` 计算分页后的总页数;超过限制时先报错,不落盘、不静默删掉中间页。可提高配置上限(最多 120)或拆分文稿。
101
105
  - 需要精确控制时用结构化 `slides`(`cover | section | bullets | statement | quote | table | closing`),表格使用 `rows`,备注使用 `notes`。
102
106
 
103
107
  ## 配置
package/cordis.patch.yml CHANGED
@@ -1,19 +1,19 @@
1
- # dsh-ppt:演示文稿技能 + 工具插件(DeepSeek Harness 插件)。
2
- #
3
- # 安装即同时注册:
4
- # 1. 技能 dsh-ppt(把一句话/一篇文档变成完整演示文稿的完整 SOP)
5
- # 2. 工具 ppt_create / ppt_themes(确定性生成 HTML 网页放映 + PPTX 导出)
6
- #
7
- # 插件自带空配置,绝不弄崩启动;无需任何账号或密钥。可选配置:
8
- #
9
- # - id: dsh-ppt
10
- # config:
11
- # outputDir: E:\decks # 可选:默认写入会话工作目录
12
- # maxSlides: 40 # 可选:单次生成幻灯片上限,默认 60
13
- # defaultTheme: data # 可选:默认视觉主题
14
- # defaultLang: zh # 可选:默认界面语言 zh/en/bilingual
15
- #
16
- - insert:
17
- - id: dsh-ppt
18
- name: dsh-ppt
19
- config: {}
1
+ # dsh-ppt:演示文稿技能 + 工具插件(DeepSeek Harness 插件)。
2
+ #
3
+ # 安装即同时注册:
4
+ # 1. 技能 dsh-ppt(把一句话/一篇文档变成完整演示文稿的完整 SOP)
5
+ # 2. 工具 ppt_create / ppt_themes(确定性生成 HTML 网页放映 + PPTX 导出)
6
+ #
7
+ # 插件自带空配置,绝不弄崩启动;无需任何账号或密钥。可选配置:
8
+ #
9
+ # - id: dsh-ppt
10
+ # config:
11
+ # outputDir: E:\decks # 可选:默认写入会话工作目录
12
+ # maxSlides: 40 # 可选:单次生成幻灯片上限,默认 60
13
+ # defaultTheme: data # 可选:默认视觉主题
14
+ # defaultLang: zh # 可选:默认界面语言 zh/en/bilingual
15
+ #
16
+ - insert:
17
+ - id: dsh-ppt
18
+ name: dsh-ppt
19
+ config: {}
package/lib/tools.js CHANGED
@@ -104,11 +104,11 @@ export function buildPptTools(config) {
104
104
  description: 'Build a complete presentation deck from one sentence or a Markdown document and write three artifacts to outputDir: a standalone HTML web slideshow, an editable 16:9 PPTX, and a deck.json manifest. Five built-in visual themes are available (see ppt_themes). content is Markdown text (recommended); advanced callers may pass structured slides instead. 中文:把一句话或一篇 Markdown 文档生成完整演示文稿,写入 outputDir 三个文件:独立 HTML 网页放映、可编辑 16:9 PPTX、deck.json manifest;内置 5 套视觉主题。',
105
105
  parameters: compileParameters({
106
106
  title: { type: 'string', required: true, description: 'Deck title (used for the cover and file names).' },
107
- content: { type: 'string', description: 'Markdown content: one sentence, a paragraph, or a full document. First # heading becomes the cover title; ## headings become slides; -/* lists become bullets; | ... | tables become table slides; > blockquotes become quote slides; <!-- 备注: ... --> comments become speaker notes. Required unless slides is provided.' },
107
+ content: { type: 'string', description: 'Markdown content: one sentence, a paragraph, or a full document. First # heading becomes the cover title; ## headings become slides; -/* lists become bullets; | ... | tables paginate with repeated headers (8 data rows/page, up to 8 columns and 60 characters/cell); > blockquotes become quote slides; <!-- 备注: ... --> comments become speaker notes. Required unless slides is provided.' },
108
108
  theme: { type: 'string', description: 'Visual theme id: swiss / velvet / data / soft / bold. Default data. See ppt_themes.' },
109
109
  lang: { type: 'string', description: 'UI language of the generated player: zh (default), en, or bilingual. Content language is whatever you write.' },
110
110
  motion: { type: 'string', enum: ['on', 'off'], description: 'Slide transitions plus bullet entrance animations: on (default) or off for a fully static deck.' },
111
- slides: { type: 'array', items: { type: 'object', additionalProperties: true }, description: 'Optional structured slides: [{ layout: cover|section|bullets|statement|quote|table|closing, title, subtitle, kicker, bullets: [], rows: [][] (for table), notes: "speaker notes" }]. Use this for precise control instead of content.' },
111
+ slides: { type: 'array', items: { type: 'object', additionalProperties: true }, description: 'Optional structured slides: [{ layout: cover|section|bullets|statement|quote|table|closing, title, subtitle, kicker, bullets: [], rows: [][] (for table), notes: "speaker notes" }]. Tables paginate with repeated headers (8 data rows/page, up to 8 columns and 60 characters/cell). Exceeding the configured maxSlides returns an error before writing. Use this for precise control instead of content.' },
112
112
  outputDir: { type: 'string', description: 'Directory to write the files into. Default: session working directory (or the plugin outputDir config).' },
113
113
  fileName: { type: 'string', description: 'Base file name for the three artifacts. Default: sanitized deck title.' },
114
114
  overwrite: { type: 'boolean', description: 'Replace an existing same-name HTML/PPTX/JSON trio. Default false: choose a unique numeric suffix instead.' },
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "dsh-ppt",
3
- "version": "0.4.3",
4
- "description": "DSH 演示文稿插件:一句话或一篇 Markdown 网页放映 + 可编辑 PPTX,内置 5 套主题与转场动画。",
3
+ "version": "0.4.4",
4
+ "description": "DSH 演示文稿插件:Markdown 生成网页放映与可编辑 PPTX,长表格自动分页,内置 5 套主题、备注与转场动画。",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",
7
7
  "types": "lib/index.d.ts",
@@ -1,69 +1,69 @@
1
- ---
2
- name: dsh-ppt
3
- description: "Turn one sentence or a Markdown document into a complete, presentation-ready deck: a standalone HTML web slideshow plus an editable PPTX export, with 5 built-in visual themes (Swiss Pulse / Velvet Standard / Data Drift / Soft Signal / Maximalist Type), slide transitions + bullet entrance animations (motion, on by default), and bilingual Chinese/English support. Use when the user asks for a PPT, slides, deck, keynote, 演示文稿, 幻灯片, 汇报, 提案, 路演, 培训材料, or wants to turn a document into a presentation. 中文:把一句话或一篇文档变成完整演示文稿(HTML 网页放映 + PPTX 导出),内置 5 套视觉主题、页间转场与要点入场动画,中英双语。"
4
- compatibility: "DSH plugin runs in-process with zero runtime dependencies. The standalone CLI needs Node.js >= 20. Cross-harness: copy this skill directory into any Agent Skills directory."
5
- allowed-tools: "Bash, Read, Write, Edit"
6
- ---
7
-
8
- # dsh-ppt
9
-
10
- 一句话或一篇文档 → 完整演示文稿:**独立 HTML 网页放映 + 可编辑 PPTX**。本文件只做路由与纪律;具体规则按需读取 `references/`。
11
-
12
- ## 触发条件
13
-
14
- 用户要做 PPT / 幻灯片 / 演示文稿 / deck / 汇报 / 提案 / 路演 / 培训材料,或给一句话、一段文字、一篇 Markdown 想变成可放映的演示。
15
-
16
- ## 执行纪律(每次都要遵守)
17
-
18
- - 一页一个观点;标题是判断句,不是名词短语。
19
- - 内容语言由你撰写;`lang` 只决定界面文字。
20
- - 先选主题再构建;不确定就用默认 `data`。
21
- - 交付前逐项过一遍文末「质量门禁」。
22
-
23
- ## 核心流水线
24
-
25
- 1. **Probe 需求**:读入用户的句子/文档,确定听众、目标、语气。一句话输入不要反问,直接按发布场景推断。
26
- 2. **Outline 大纲**:产出 5–12 页大纲(封面 → 问题/背景 → 方案/论点 3–6 页 → 证据 → 行动号召 → 结束页)。
27
- → 写大纲与正文前先读 `references/copywriting.md`。
28
- 3. **Theme 主题**:调 `ppt_themes`(DSH)或 `node scripts/build-deck.mjs --list-themes`(跨 harness)。
29
- → 拿不准选哪套时读 `references/themes.md` 的情绪决策树。
30
- 4. **Build 生成**:
31
- - DSH 内:调 `ppt_create`,大纲写成 Markdown 传 `content`(推荐),或传结构化 `slides`。
32
- - 跨 harness:`node <skill-dir>/scripts/build-deck.mjs --title "标题" --content deck.md --theme data --lang zh --out dist`。
33
- - 动效默认开(页间转场 + 要点逐条入场);严肃/打印场景传 `motion: 'off'`。
34
- → 用表格 / 金句 / 备注 / 结构化 slides 前读 `references/syntax.md`。
35
- 5. **Verify 校验**:确认 HTML 页数与大纲一致、标题无截断、PPTX 文件头为 `PK`。
36
- 6. **Deliver 交付**:给用户三个绝对路径,说明 HTML 直接放映(← → 翻页 · F 全屏 · G 总览 · S 备注 · P 打印),PPTX 用 PowerPoint / WPS / Keynote 打开(备注在演示者视图可见,bullets 页放映时逐条点击出现)。
37
-
38
- ## 按需装载索引
39
-
40
- | 何时读 | 文件 | 内容 |
41
- | --- | --- | --- |
42
- | 写大纲 / 正文前 | `references/copywriting.md` | 叙事骨架、单页规则、双语规则 |
43
- | 选主题拿不准 | `references/themes.md` | 5 套主题色板 + 情绪决策树 |
44
- | 用表格/金句/备注/结构化 slides | `references/syntax.md` | Markdown 解析、进阶语法、slides JSON、motion 开关 |
45
- | 交付异常 | `references/troubleshooting.md` | 症状 → 处理对照表 |
46
-
47
- ## 质量门禁(交付前逐项确认)
48
-
49
- - [ ] 页数 3–60,首屏是封面,末屏是结束页。
50
- - [ ] 每页有明确标题;bullets 页 1–8 条,中文每条 ≤ 20 字、英文 ≤ 12 词。
51
- - [ ] HTML 与 PPTX 使用同一主题,配色一致。
52
- - [ ] 主题色对比度足够(深底浅字或浅底深字)。
53
- - [ ] 中文内容无错别字;英文标题用 Title Case。
54
- - [ ] 最后一页有可执行的行动号召,不只是「谢谢」。
55
- - [ ] 文件已写到用户工作区,路径为绝对路径。
56
-
57
- ## 跨 harness 安装
58
-
59
- 把整个 `dsh-ppt` 技能目录复制到目标 agent 的技能目录即可(只依赖 Node 20+):
60
-
61
- | Agent | 技能目录 |
62
- | --- | --- |
63
- | DeepSeek Harness | `dsh plugin --profile web add dsh-ppt` |
64
- | Claude Code | `~/.claude/skills/` |
65
- | Cursor | `.cursor/skills/` |
66
- | Gemini CLI | `~/.gemini/skills/` |
67
- | OpenAI Codex | `~/.codex/skills/` |
68
-
69
- 一次编写,处处可用。
1
+ ---
2
+ name: dsh-ppt
3
+ description: "Turn one sentence or a Markdown document into a complete, presentation-ready deck: a standalone HTML web slideshow plus an editable PPTX export, with 5 built-in visual themes (Swiss Pulse / Velvet Standard / Data Drift / Soft Signal / Maximalist Type), slide transitions + bullet entrance animations (motion, on by default), and bilingual Chinese/English support. Use when the user asks for a PPT, slides, deck, keynote, 演示文稿, 幻灯片, 汇报, 提案, 路演, 培训材料, or wants to turn a document into a presentation. 中文:把一句话或一篇文档变成完整演示文稿(HTML 网页放映 + PPTX 导出),内置 5 套视觉主题、页间转场与要点入场动画,中英双语。"
4
+ compatibility: "DSH plugin runs in-process with zero runtime dependencies. The standalone CLI needs Node.js >= 20. Cross-harness: copy this skill directory into any Agent Skills directory."
5
+ allowed-tools: "Bash, Read, Write, Edit"
6
+ ---
7
+
8
+ # dsh-ppt
9
+
10
+ 一句话或一篇文档 → 完整演示文稿:**独立 HTML 网页放映 + 可编辑 PPTX**。本文件只做路由与纪律;具体规则按需读取 `references/`。
11
+
12
+ ## 触发条件
13
+
14
+ 用户要做 PPT / 幻灯片 / 演示文稿 / deck / 汇报 / 提案 / 路演 / 培训材料,或给一句话、一段文字、一篇 Markdown 想变成可放映的演示。
15
+
16
+ ## 执行纪律(每次都要遵守)
17
+
18
+ - 一页一个观点;标题是判断句,不是名词短语。
19
+ - 内容语言由你撰写;`lang` 只决定界面文字。
20
+ - 先选主题再构建;不确定就用默认 `data`。
21
+ - 交付前逐项过一遍文末「质量门禁」。
22
+
23
+ ## 核心流水线
24
+
25
+ 1. **Probe 需求**:读入用户的句子/文档,确定听众、目标、语气。一句话输入不要反问,直接按发布场景推断。
26
+ 2. **Outline 大纲**:产出 5–12 页大纲(封面 → 问题/背景 → 方案/论点 3–6 页 → 证据 → 行动号召 → 结束页)。
27
+ → 写大纲与正文前先读 `references/copywriting.md`。
28
+ 3. **Theme 主题**:调 `ppt_themes`(DSH)或 `node scripts/build-deck.mjs --list-themes`(跨 harness)。
29
+ → 拿不准选哪套时读 `references/themes.md` 的情绪决策树。
30
+ 4. **Build 生成**:
31
+ - DSH 内:调 `ppt_create`,大纲写成 Markdown 传 `content`(推荐),或传结构化 `slides`。
32
+ - 跨 harness:`node <skill-dir>/scripts/build-deck.mjs --title "标题" --content deck.md --theme data --lang zh --out dist`。
33
+ - 动效默认开(页间转场 + 要点逐条入场);严肃/打印场景传 `motion: 'off'`。
34
+ → 用表格 / 金句 / 备注 / 结构化 slides 前读 `references/syntax.md`。
35
+ 5. **Verify 校验**:确认 HTML 页数与大纲一致、标题无截断、PPTX 文件头为 `PK`。
36
+ 6. **Deliver 交付**:给用户三个绝对路径,说明 HTML 直接放映(← → 翻页 · F 全屏 · G 总览 · S 备注 · P 打印),PPTX 用 PowerPoint / WPS / Keynote 打开(备注在演示者视图可见,bullets 页放映时逐条点击出现)。
37
+
38
+ ## 按需装载索引
39
+
40
+ | 何时读 | 文件 | 内容 |
41
+ | --- | --- | --- |
42
+ | 写大纲 / 正文前 | `references/copywriting.md` | 叙事骨架、单页规则、双语规则 |
43
+ | 选主题拿不准 | `references/themes.md` | 5 套主题色板 + 情绪决策树 |
44
+ | 用表格/金句/备注/结构化 slides | `references/syntax.md` | Markdown 解析、进阶语法、slides JSON、motion 开关 |
45
+ | 交付异常 | `references/troubleshooting.md` | 症状 → 处理对照表 |
46
+
47
+ ## 质量门禁(交付前逐项确认)
48
+
49
+ - [ ] 页数 3–60,首屏是封面,末屏是结束页。
50
+ - [ ] 每页有明确标题;bullets 页 1–8 条,中文每条 ≤ 20 字、英文 ≤ 12 词。
51
+ - [ ] HTML 与 PPTX 使用同一主题,配色一致。
52
+ - [ ] 主题色对比度足够(深底浅字或浅底深字)。
53
+ - [ ] 中文内容无错别字;英文标题用 Title Case。
54
+ - [ ] 最后一页有可执行的行动号召,不只是「谢谢」。
55
+ - [ ] 文件已写到用户工作区,路径为绝对路径。
56
+
57
+ ## 跨 harness 安装
58
+
59
+ 把整个 `dsh-ppt` 技能目录复制到目标 agent 的技能目录即可(只依赖 Node 20+):
60
+
61
+ | Agent | 技能目录 |
62
+ | --- | --- |
63
+ | DeepSeek Harness | `dsh plugin --profile web add dsh-ppt` |
64
+ | Claude Code | `~/.claude/skills/` |
65
+ | Cursor | `.cursor/skills/` |
66
+ | Gemini CLI | `~/.gemini/skills/` |
67
+ | OpenAI Codex | `~/.codex/skills/` |
68
+
69
+ 一次编写,处处可用。
@@ -1,59 +1,59 @@
1
- # dsh-ppt 幻灯片写作规则(中英双语)
2
-
3
- ## 结构模板
4
-
5
- 任何 deck 都遵循同一叙事骨架:
6
-
7
- 1. **封面**:标题(判断句或名词短语 + 价值承诺)+ 副标题(一句话定位)。
8
- 2. **背景/问题**:现状 → 痛点 → 为什么现在。
9
- 3. **方案/论点**:每个论点一页,先结论后理由。
10
- 4. **证据/案例**:数字、对比、客户/数据点。
11
- 5. **行动号召**:希望听众下一步做什么。
12
- 6. **结束页**:谢谢 + 联系方式或 CTA 重复。
13
-
14
- 一句话输入的最小完整结构:封面 → 核心观点页 → 结束页。
15
-
16
- ## 单页规则
17
-
18
- - 一个页面只讲一个观点。
19
- - 标题是完整的判断句,例如「AI 客服把首响时间压缩到 8 秒」,而不是「关于客服」。
20
- - bullets 1–8 条,中文每条 ≤ 20 字,英文每条 ≤ 12 词。
21
- - 优先使用数字、对比、动词;避免「赋能、抓手、闭环」等空词。
22
- - 最后一页要给出可执行的 CTA,不是只写「谢谢」。
23
-
24
- ## 双语规则
25
-
26
- - 插件 `lang` 参数只控制界面(页码/标签/结束页默认文案);**内容双语由写作阶段完成**。
27
- - 双语 deck 推荐两种做法:
28
- 1. 同一页内:中文标题 + 英文副标题;bullets 中文为主,关键词括号英文。
29
- 2. 两份 deck:同一大纲分别以 `zh` 与 `en` 生成,主题保持一致。
30
- - 英文标题用 Title Case;术语首现给中文+英文,如「检索增强生成(RAG)」。
31
- - 双语时不要逐句直译,按目标语言习惯重写。
32
-
33
- ## Markdown 与结构化输入
34
-
35
- 解析规则、表格/金句/备注语法与结构化 `slides` JSON 见 `syntax.md`。
36
-
37
- ## 示例
38
-
39
- 输入:
40
-
41
- ```markdown
42
- # 让会议少一半
43
-
44
- 用异步决策替代同步例会。
45
-
46
- ## 问题
47
- - 工程师每周 6 小时在例会上
48
- - 决策没有记录,反复讨论
49
-
50
- ## 方案
51
- - 会前异步文档 + 24h 评论期
52
- - 只有分歧项才开会
53
-
54
- ## 效果
55
- - 周会从 4 次降到 1 次
56
- - 决策记录 100% 沉淀
57
- ```
58
-
59
- 产出:封面 → 问题 → 方案 → 效果 → 结束页,共 5 页,主题可选 `swiss`(数据/效率)或 `soft`(团队协作)。
1
+ # dsh-ppt 幻灯片写作规则(中英双语)
2
+
3
+ ## 结构模板
4
+
5
+ 任何 deck 都遵循同一叙事骨架:
6
+
7
+ 1. **封面**:标题(判断句或名词短语 + 价值承诺)+ 副标题(一句话定位)。
8
+ 2. **背景/问题**:现状 → 痛点 → 为什么现在。
9
+ 3. **方案/论点**:每个论点一页,先结论后理由。
10
+ 4. **证据/案例**:数字、对比、客户/数据点。
11
+ 5. **行动号召**:希望听众下一步做什么。
12
+ 6. **结束页**:谢谢 + 联系方式或 CTA 重复。
13
+
14
+ 一句话输入的最小完整结构:封面 → 核心观点页 → 结束页。
15
+
16
+ ## 单页规则
17
+
18
+ - 一个页面只讲一个观点。
19
+ - 标题是完整的判断句,例如「AI 客服把首响时间压缩到 8 秒」,而不是「关于客服」。
20
+ - bullets 1–8 条,中文每条 ≤ 20 字,英文每条 ≤ 12 词。
21
+ - 优先使用数字、对比、动词;避免「赋能、抓手、闭环」等空词。
22
+ - 最后一页要给出可执行的 CTA,不是只写「谢谢」。
23
+
24
+ ## 双语规则
25
+
26
+ - 插件 `lang` 参数只控制界面(页码/标签/结束页默认文案);**内容双语由写作阶段完成**。
27
+ - 双语 deck 推荐两种做法:
28
+ 1. 同一页内:中文标题 + 英文副标题;bullets 中文为主,关键词括号英文。
29
+ 2. 两份 deck:同一大纲分别以 `zh` 与 `en` 生成,主题保持一致。
30
+ - 英文标题用 Title Case;术语首现给中文+英文,如「检索增强生成(RAG)」。
31
+ - 双语时不要逐句直译,按目标语言习惯重写。
32
+
33
+ ## Markdown 与结构化输入
34
+
35
+ 解析规则、表格/金句/备注语法与结构化 `slides` JSON 见 `syntax.md`。
36
+
37
+ ## 示例
38
+
39
+ 输入:
40
+
41
+ ```markdown
42
+ # 让会议少一半
43
+
44
+ 用异步决策替代同步例会。
45
+
46
+ ## 问题
47
+ - 工程师每周 6 小时在例会上
48
+ - 决策没有记录,反复讨论
49
+
50
+ ## 方案
51
+ - 会前异步文档 + 24h 评论期
52
+ - 只有分歧项才开会
53
+
54
+ ## 效果
55
+ - 周会从 4 次降到 1 次
56
+ - 决策记录 100% 沉淀
57
+ ```
58
+
59
+ 产出:封面 → 问题 → 方案 → 效果 → 结束页,共 5 页,主题可选 `swiss`(数据/效率)或 `soft`(团队协作)。
@@ -17,7 +17,7 @@
17
17
 
18
18
  ## 进阶语法(自动识别)
19
19
 
20
- - **表格**:`| 列 | 列 |` 连续行(第二行 `| --- | --- |` 分隔线)→ 独立 `table` 页(主题色表头,限 9 8 列)。数据对比优先用表格,别堆要点。
20
+ - **表格**:`| 列 | 列 |` 连续行(第二行 `| --- | --- |` 分隔线)→ 独立 `table` 页(主题色表头;每页 8 行数据,长表格自动续页并重复表头;最多 8 列、每格 60 字符,超限先报错)。数据对比优先用表格,别堆要点。
21
21
  - **金句**:`>` 引用块 → 独立 `quote` 页;最后一行写 `—— 出处` 会成为署名。
22
22
  - **演讲者备注**:`<!-- 备注: 这页要讲的内容 -->`(或 `<!-- note: ... -->`)附着到该页。备注不进正文:HTML 放映按 `S` 呼出备注面板,PPTX 写入原生备注(演示者视图可见)。为汇报/演讲类 deck 主动写备注(口径、数据出处、应答预案)。
23
23
 
@@ -37,7 +37,7 @@
37
37
  ]
38
38
  ```
39
39
 
40
- `layout` 仅限 `cover | section | bullets | statement | quote | table | closing`;每页可选 `notes`(演讲者备注),`table` 页用 `rows`(首行为表头)。Markdown 输入不够精确时,用结构化 slides 重写。
40
+ `layout` 仅限 `cover | section | bullets | statement | quote | table | closing`;每页可选 `notes`(演讲者备注),`table` 页用 `rows`(首行为表头)。结构化表格同样自动分页,备注只放第一页。分页后总页数超过 maxSlides 时会报错,请提高配置上限(最多 120)或拆分文稿。Markdown 输入不够精确时,用结构化 slides 重写。
41
41
 
42
42
  ## 动效(motion)
43
43
 
@@ -1,59 +1,59 @@
1
- # dsh-ppt 内置主题参考
2
-
3
- 主题系统移植自 hyperframes 技能的 `visual-styles.md` 视觉风格库。每套主题在 HTML 与 PPTX 中使用同一色板、同一字体族、同一情绪规则。
4
-
5
- ## 速查
6
-
7
- | ID | 中文名 | English | 明暗 | 底色 | 前景 | 主强调 | 次强调 | 情绪 | 适用 |
8
- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
9
- | `data` | 数据漂移 | Data Drift | 暗 | `#070B14` | `#E8F1FF` | `#7C3AED` | `#06B6D4` | 未来/沉浸 | AI、数据、研究、技术发布 |
10
- | `swiss` | 瑞士脉冲 | Swiss Pulse | 暗 | `#10151B` | `#F5F7FA` | `#2F6BFF` | `#FFB300` | 精准/理性 | SaaS、数据、开发者工具 |
11
- | `velvet` | 天鹅绒标准 | Velvet Standard | 暗 | `#111316` | `#F4EFE6` | `#C9A84C` | `#3D4A63` | 高级/克制 | 高管汇报、品牌、融资路演 |
12
- | `soft` | 柔和信号 | Soft Signal | 亮 | `#FFF8EC` | `#3B2F2A` | `#E58A2F` | `#8FAF8C` | 温暖/人本 | 品牌故事、培训、个人分享 |
13
- | `bold` | 极繁大字 | Maximalist Type | 暗 | `#0D0D0D` | `#FFFFFF` | `#E63946` | `#FFD60A` | 大声/动能 | 产品发布、活动、大事件 |
14
-
15
- ## 逐主题说明
16
-
17
- ### data — 数据漂移(默认)
18
-
19
- - 深黑底 + 电光紫 + 青色,细体未来感。
20
- - 适合 AI / ML / 数据 / 前沿技术;大标题少字,用对比数字。
21
- - 反模式:不要加多余暖色;不要堆长段落。
22
-
23
- ### swiss — 瑞士脉冲
24
-
25
- - 黑白灰 + 一个电蓝(或琥珀),栅格感、大数字。
26
- - 适合 SaaS / 指标 / 开发者工具;标题短、要点像 spec。
27
- - 反模式:不要装饰性渐变文字;不要圆角卡片堆叠。
28
-
29
- ### velvet — 天鹅绒标准
30
-
31
- - 黑、米白、香槟金,衬线标题 + 无衬线正文,宽字距,留白多。
32
- - 适合高管汇报 / 品牌 / 融资;节奏慢,页数少而精。
33
- - 反模式:不要动画感强烈的颜色;不要超过一个强调色。
34
-
35
- ### soft — 柔和信号
36
-
37
- - 暖奶油底、深棕字、琥珀 + 鼠尾草绿,亮色唯一浅底主题。
38
- - 适合品牌故事 / 培训 / 个人分享;文字可以更口语。
39
- - 反模式:不要用纯黑正文;不要高饱和撞色。
40
-
41
- ### bold — 极繁大字
42
-
43
- - 黑底、正红 + 明黄,超粗标题,字就是视觉主体。
44
- - 适合产品发布 / 活动 / 大事件;短标题、单页单一冲击。
45
- - 反模式:不要把页面塞满要点;不要让红黄之外再出现第三种强调色。
46
-
47
- ## 选主题决策树
48
-
49
- 1. 情绪是未来/科技 → `data`
50
- 2. 情绪是理性/数据/精准 → `swiss`
51
- 3. 情绪是高级/信任/正式 → `velvet`
52
- 4. 情绪是温暖/人本/故事 → `soft`
53
- 5. 情绪是大音量/发布会 → `bold`
54
-
55
- 无法判断时用 `data`,不要自造主题 ID。
56
-
57
- ## 视觉引擎复用(hyperframes)
58
-
59
- 如果 `hyperframes` 技能已安装,生成前先读它的 `visual-styles.md` / `house-style.md` 作为视觉判断依据;本技能的 5 套主题就是把其中 Swiss Pulse / Velvet Standard / Data Drift / Soft Signal / Maximalist Type 五套风格落成确定性 HTML+PPTX 实现。需要高级动画视频版时,才转用 hyperframes;普通演示不要上视频引擎。
1
+ # dsh-ppt 内置主题参考
2
+
3
+ 主题系统移植自 hyperframes 技能的 `visual-styles.md` 视觉风格库。每套主题在 HTML 与 PPTX 中使用同一色板、同一字体族、同一情绪规则。
4
+
5
+ ## 速查
6
+
7
+ | ID | 中文名 | English | 明暗 | 底色 | 前景 | 主强调 | 次强调 | 情绪 | 适用 |
8
+ | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
9
+ | `data` | 数据漂移 | Data Drift | 暗 | `#070B14` | `#E8F1FF` | `#7C3AED` | `#06B6D4` | 未来/沉浸 | AI、数据、研究、技术发布 |
10
+ | `swiss` | 瑞士脉冲 | Swiss Pulse | 暗 | `#10151B` | `#F5F7FA` | `#2F6BFF` | `#FFB300` | 精准/理性 | SaaS、数据、开发者工具 |
11
+ | `velvet` | 天鹅绒标准 | Velvet Standard | 暗 | `#111316` | `#F4EFE6` | `#C9A84C` | `#3D4A63` | 高级/克制 | 高管汇报、品牌、融资路演 |
12
+ | `soft` | 柔和信号 | Soft Signal | 亮 | `#FFF8EC` | `#3B2F2A` | `#E58A2F` | `#8FAF8C` | 温暖/人本 | 品牌故事、培训、个人分享 |
13
+ | `bold` | 极繁大字 | Maximalist Type | 暗 | `#0D0D0D` | `#FFFFFF` | `#E63946` | `#FFD60A` | 大声/动能 | 产品发布、活动、大事件 |
14
+
15
+ ## 逐主题说明
16
+
17
+ ### data — 数据漂移(默认)
18
+
19
+ - 深黑底 + 电光紫 + 青色,细体未来感。
20
+ - 适合 AI / ML / 数据 / 前沿技术;大标题少字,用对比数字。
21
+ - 反模式:不要加多余暖色;不要堆长段落。
22
+
23
+ ### swiss — 瑞士脉冲
24
+
25
+ - 黑白灰 + 一个电蓝(或琥珀),栅格感、大数字。
26
+ - 适合 SaaS / 指标 / 开发者工具;标题短、要点像 spec。
27
+ - 反模式:不要装饰性渐变文字;不要圆角卡片堆叠。
28
+
29
+ ### velvet — 天鹅绒标准
30
+
31
+ - 黑、米白、香槟金,衬线标题 + 无衬线正文,宽字距,留白多。
32
+ - 适合高管汇报 / 品牌 / 融资;节奏慢,页数少而精。
33
+ - 反模式:不要动画感强烈的颜色;不要超过一个强调色。
34
+
35
+ ### soft — 柔和信号
36
+
37
+ - 暖奶油底、深棕字、琥珀 + 鼠尾草绿,亮色唯一浅底主题。
38
+ - 适合品牌故事 / 培训 / 个人分享;文字可以更口语。
39
+ - 反模式:不要用纯黑正文;不要高饱和撞色。
40
+
41
+ ### bold — 极繁大字
42
+
43
+ - 黑底、正红 + 明黄,超粗标题,字就是视觉主体。
44
+ - 适合产品发布 / 活动 / 大事件;短标题、单页单一冲击。
45
+ - 反模式:不要把页面塞满要点;不要让红黄之外再出现第三种强调色。
46
+
47
+ ## 选主题决策树
48
+
49
+ 1. 情绪是未来/科技 → `data`
50
+ 2. 情绪是理性/数据/精准 → `swiss`
51
+ 3. 情绪是高级/信任/正式 → `velvet`
52
+ 4. 情绪是温暖/人本/故事 → `soft`
53
+ 5. 情绪是大音量/发布会 → `bold`
54
+
55
+ 无法判断时用 `data`,不要自造主题 ID。
56
+
57
+ ## 视觉引擎复用(hyperframes)
58
+
59
+ 如果 `hyperframes` 技能已安装,生成前先读它的 `visual-styles.md` / `house-style.md` 作为视觉判断依据;本技能的 5 套主题就是把其中 Swiss Pulse / Velvet Standard / Data Drift / Soft Signal / Maximalist Type 五套风格落成确定性 HTML+PPTX 实现。需要高级动画视频版时,才转用 hyperframes;普通演示不要上视频引擎。
@@ -1,13 +1,13 @@
1
- # dsh-ppt 故障排查
2
-
3
- 只在交付异常时读本文件。
4
-
5
- | 症状 | 处理 |
6
- | --- | --- |
7
- | `ppt_create` 不存在 | 本插件未安装;用 `node <skill-dir>/scripts/build-deck.mjs` 裸 CLI 生成同样三件套 |
8
- | 未知主题 | `ppt_themes` 或 `--list-themes` 看可用 ID;不要猜 |
9
- | 内容超过 60 页 | 合并论点,或拆成多个 deck;`maxSlides` 默认 60 |
10
- | PPTX 打不开 | 确认文件完整(zip 头 `PK`);Office 首次打开空白版式属正常,编辑视图可用 |
11
- | 双语界面 | `lang: bilingual` 只双语化界面;内容双语由 agent 在写作阶段完成 |
12
- | 放映没有动画 | `motion` 被设为 `off`;默认 `on` 时 HTML 有转场、PPTX 要点逐条点击出现 |
13
- | HTML 打印要点缺失 | 打印样式已强制显示全部要点;若仍缺失检查浏览器是否屏蔽了动画样式 |
1
+ # dsh-ppt 故障排查
2
+
3
+ 只在交付异常时读本文件。
4
+
5
+ | 症状 | 处理 |
6
+ | --- | --- |
7
+ | `ppt_create` 不存在 | 本插件未安装;用 `node <skill-dir>/scripts/build-deck.mjs` 裸 CLI 生成同样三件套 |
8
+ | 未知主题 | `ppt_themes` 或 `--list-themes` 看可用 ID;不要猜 |
9
+ | 内容超过 60 页 | 合并论点,或拆成多个 deck;`maxSlides` 默认 60 |
10
+ | PPTX 打不开 | 确认文件完整(zip 头 `PK`);Office 首次打开空白版式属正常,编辑视图可用 |
11
+ | 双语界面 | `lang: bilingual` 只双语化界面;内容双语由 agent 在写作阶段完成 |
12
+ | 放映没有动画 | `motion` 被设为 `off`;默认 `on` 时 HTML 有转场、PPTX 要点逐条点击出现 |
13
+ | HTML 打印要点缺失 | 打印样式已强制显示全部要点;若仍缺失检查浏览器是否屏蔽了动画样式 |