@panda-agent/panda-cli 0.1.28 → 0.1.30
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/dist/panda-cli-ink.bundle.mjs +267 -258
- package/package.json +6 -4
- package/skills/.gitkeep +0 -0
- package/skills/README.md +13 -0
- package/skills/docx/.skill-metadata.yaml +173 -0
- package/skills/docx/LICENSE.txt +30 -0
- package/skills/docx/SKILL.md +589 -0
- package/skills/docx/scripts/__init__.py +1 -0
- package/skills/docx/scripts/accept_changes.py +206 -0
- package/skills/docx/scripts/comment.py +442 -0
- package/skills/docx/scripts/office/helpers/__init__.py +1 -0
- package/skills/docx/scripts/office/helpers/merge_runs.py +190 -0
- package/skills/docx/scripts/office/helpers/simplify_redlines.py +185 -0
- package/skills/docx/scripts/office/pack.py +167 -0
- package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/skills/docx/scripts/office/schemas/mce/mc.xsd +75 -0
- package/skills/docx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
- package/skills/docx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
- package/skills/docx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
- package/skills/docx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/skills/docx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/skills/docx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/skills/docx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/skills/docx/scripts/office/soffice.py +194 -0
- package/skills/docx/scripts/office/unpack.py +145 -0
- package/skills/docx/scripts/office/validate.py +114 -0
- package/skills/docx/scripts/office/validators/__init__.py +16 -0
- package/skills/docx/scripts/office/validators/base.py +733 -0
- package/skills/docx/scripts/office/validators/docx.py +354 -0
- package/skills/docx/scripts/office/validators/pptx.py +230 -0
- package/skills/docx/scripts/office/validators/redlining.py +212 -0
- package/skills/docx/scripts/templates/comments.xml +3 -0
- package/skills/docx/scripts/templates/commentsExtended.xml +3 -0
- package/skills/docx/scripts/templates/commentsExtensible.xml +3 -0
- package/skills/docx/scripts/templates/commentsIds.xml +3 -0
- package/skills/docx/scripts/templates/people.xml +3 -0
- package/skills/frontend-design/LICENSE.txt +177 -0
- package/skills/frontend-design/SKILL.md +42 -0
- package/skills/pdf/.skill-metadata.yaml +273 -0
- package/skills/pdf/LICENSE.txt +30 -0
- package/skills/pdf/SKILL.md +324 -0
- package/skills/pdf/advanced-reference.md +609 -0
- package/skills/pdf/form-filling-guide.md +318 -0
- package/skills/pdf/forms.md +294 -0
- package/skills/pdf/reference.md +612 -0
- package/skills/pdf/scripts/check_bounding_boxes.py +198 -0
- package/skills/pdf/scripts/check_fillable_fields.py +64 -0
- package/skills/pdf/scripts/convert_pdf_to_images.py +102 -0
- package/skills/pdf/scripts/create_validation_image.py +125 -0
- package/skills/pdf/scripts/extract_form_field_info.py +220 -0
- package/skills/pdf/scripts/extract_form_structure.py +202 -0
- package/skills/pdf/scripts/fill_fillable_fields.py +205 -0
- package/skills/pdf/scripts/fill_pdf_form_with_annotations.py +193 -0
- package/skills/pptx-generator/SKILL.md +204 -0
- package/skills/pptx-generator/assets/styles/business.json +8 -0
- package/skills/pptx-generator/assets/styles/minimal.json +8 -0
- package/skills/pptx-generator/assets/styles/modern.json +8 -0
- package/skills/pptx-generator/assets/templates/ppt_data_template.json +40 -0
- package/skills/pptx-generator/references/collaboration_guide.md +381 -0
- package/skills/pptx-generator/references/json_format_spec.md +215 -0
- package/skills/pptx-generator/references/layout_guide.md +290 -0
- package/skills/pptx-generator/scripts/json_validator.py +194 -0
- package/skills/pptx-generator/scripts/pptx_builder.py +340 -0
- package/skills/pptx-generator/scripts/pptx_validator.py +162 -0
- package/skills/skill-creator/LICENSE.txt +202 -0
- package/skills/skill-creator/SKILL.md +479 -0
- package/skills/skill-creator/agents/analyzer.md +274 -0
- package/skills/skill-creator/agents/comparator.md +202 -0
- package/skills/skill-creator/agents/grader.md +223 -0
- package/skills/skill-creator/assets/eval_review.html +146 -0
- package/skills/skill-creator/eval-viewer/generate_review.py +471 -0
- package/skills/skill-creator/eval-viewer/viewer.html +1325 -0
- package/skills/skill-creator/references/schemas.md +430 -0
- package/skills/skill-creator/scripts/__init__.py +0 -0
- package/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
- package/skills/skill-creator/scripts/generate_report.py +326 -0
- package/skills/skill-creator/scripts/improve_description.py +248 -0
- package/skills/skill-creator/scripts/package_skill.py +136 -0
- package/skills/skill-creator/scripts/quick_validate.py +103 -0
- package/skills/skill-creator/scripts/run_eval.py +310 -0
- package/skills/skill-creator/scripts/run_loop.py +332 -0
- package/skills/skill-creator/scripts/utils.py +47 -0
- package/skills/xlsx/.skill-metadata.yaml +185 -0
- package/skills/xlsx/LICENSE.txt +30 -0
- package/skills/xlsx/SKILL.md +233 -0
- package/skills/xlsx/scripts/office/helpers/__init__.py +1 -0
- package/skills/xlsx/scripts/office/helpers/merge_runs.py +226 -0
- package/skills/xlsx/scripts/office/helpers/simplify_redlines.py +198 -0
- package/skills/xlsx/scripts/office/pack.py +162 -0
- package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/skills/xlsx/scripts/office/schemas/mce/mc.xsd +75 -0
- package/skills/xlsx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
- package/skills/xlsx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
- package/skills/xlsx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
- package/skills/xlsx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/skills/xlsx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/skills/xlsx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/skills/xlsx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/skills/xlsx/scripts/office/soffice.py +185 -0
- package/skills/xlsx/scripts/office/unpack.py +146 -0
- package/skills/xlsx/scripts/office/validate.py +108 -0
- package/skills/xlsx/scripts/office/validators/__init__.py +13 -0
- package/skills/xlsx/scripts/office/validators/base.py +800 -0
- package/skills/xlsx/scripts/office/validators/docx.py +383 -0
- package/skills/xlsx/scripts/office/validators/pptx.py +250 -0
- package/skills/xlsx/scripts/office/validators/redlining.py +229 -0
- package/skills/xlsx/scripts/recalc.py +296 -0
|
@@ -0,0 +1,381 @@
|
|
|
1
|
+
# 与其他 Skill 协同指南
|
|
2
|
+
|
|
3
|
+
本文档详细说明 `pptx-generator` Skill 如何与其他 PPT 相关 Skill 协同工作。
|
|
4
|
+
|
|
5
|
+
## 目录
|
|
6
|
+
1. [协同模式概述](#协同模式概述)
|
|
7
|
+
2. [与 ppt-generator 协同](#与-ppt-generator-协同)
|
|
8
|
+
3. [与 nanobanana-ppt-visualizer 协同](#与-nanobanana-ppt-visualizer-协同)
|
|
9
|
+
4. [完整工作流程](#完整工作流程)
|
|
10
|
+
5. [数据格式兼容性](#数据格式兼容性)
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## 协同模式概述
|
|
15
|
+
|
|
16
|
+
`pptx-generator` Skill 是 PPT 工具链中的**关键环节**,负责将 JSON 数据转换为标准的 .pptx 文件。
|
|
17
|
+
|
|
18
|
+
### PPT 工具链
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
1. ppt-generator (JSON 数据生成)
|
|
22
|
+
↓
|
|
23
|
+
2. pptx-generator (PPTX 文件生成) ← 关键环节
|
|
24
|
+
↓
|
|
25
|
+
3. nanobanana-ppt-visualizer (视觉增强,可选)
|
|
26
|
+
↓
|
|
27
|
+
4. ppt-roadshow-generator (视频生成,可选)
|
|
28
|
+
↓
|
|
29
|
+
5. remotion-video-enhancer (动画增强,可选)
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### 协同关系表
|
|
33
|
+
|
|
34
|
+
| Skill | 输出 | 接收 | 用途 |
|
|
35
|
+
|-------|------|------|------|
|
|
36
|
+
| ppt-generator | JSON | pptx-generator | 内容生成 |
|
|
37
|
+
| pptx-generator | .pptx | nanobanana-ppt-visualizer | 文件生成 |
|
|
38
|
+
| nanobanana-ppt-visualizer | 图片 + HTML | ppt-roadshow-generator | 视觉增强 |
|
|
39
|
+
| ppt-roadshow-generator | 视频 | remotion-video-enhancer | 视频生成 |
|
|
40
|
+
| remotion-video-enhancer | 增强视频 | 用户 | 动画增强 |
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## 与 ppt-generator 协同
|
|
45
|
+
|
|
46
|
+
### 协同流程
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
用户请求:"生成一个 PPT 文件"
|
|
50
|
+
|
|
51
|
+
┌─────────────────────────────────────────────────────────┐
|
|
52
|
+
│ ppt-generator Skill │
|
|
53
|
+
├─────────────────────────────────────────────────────────┤
|
|
54
|
+
│ 1. 主题分析师:分析主题 │
|
|
55
|
+
│ 2. 模板设计师:推荐布局 │
|
|
56
|
+
│ 3. 内容策划师:规划内容结构 │
|
|
57
|
+
│ 4. 文本创作者:撰写内容 │
|
|
58
|
+
│ 5. 视觉设计师:提供配图建议 │
|
|
59
|
+
│ 6. 优化编辑师:优化文本 │
|
|
60
|
+
│ 7. PPT 构建师:生成 JSON 数据 │
|
|
61
|
+
└─────────────────────────────────────────────────────────┘
|
|
62
|
+
│
|
|
63
|
+
▼ ppt_data.json
|
|
64
|
+
┌─────────────────────────────────────────────────────────┐
|
|
65
|
+
│ pptx-generator Skill │
|
|
66
|
+
├─────────────────────────────────────────────────────────┤
|
|
67
|
+
│ 1. JSON 验证(json_validator.py) │
|
|
68
|
+
│ - 验证 JSON 格式 │
|
|
69
|
+
│ - 检查必需字段 │
|
|
70
|
+
│ 2. PPTX 构建(pptx_builder.py) │
|
|
71
|
+
│ - 创建演示文稿 │
|
|
72
|
+
│ - 添加幻灯片 │
|
|
73
|
+
│ - 应用布局和样式 │
|
|
74
|
+
│ - 添加内容(文本、内容) │
|
|
75
|
+
│ 3. PPTX 验证(pptx_validator.py) │
|
|
76
|
+
│ - 验证文件完整性 │
|
|
77
|
+
│ - 检查幻灯片数量 │
|
|
78
|
+
│ 4. 输出 .pptx 文件 │
|
|
79
|
+
└─────────────────────────────────────────────────────────┘
|
|
80
|
+
│
|
|
81
|
+
▼ presentation.pptx
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### 数据格式
|
|
85
|
+
|
|
86
|
+
**ppt-generator 输出(ppt_data.json)**:
|
|
87
|
+
```json
|
|
88
|
+
{
|
|
89
|
+
"metadata": {
|
|
90
|
+
"title": "产品介绍演示",
|
|
91
|
+
"author": "用户姓名",
|
|
92
|
+
"theme": "科技感"
|
|
93
|
+
},
|
|
94
|
+
"slides": [
|
|
95
|
+
{
|
|
96
|
+
"layout": "TitleSlide",
|
|
97
|
+
"title": "产品名称",
|
|
98
|
+
"content": ["副标题", "产品亮点"],
|
|
99
|
+
"notes": "备注内容"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"layout": "ContentSlide",
|
|
103
|
+
"title": "核心功能",
|
|
104
|
+
"content": ["功能一", "功能二", "功能三"],
|
|
105
|
+
"notes": "备注内容"
|
|
106
|
+
}
|
|
107
|
+
]
|
|
108
|
+
}
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**pptx-generator 接收并处理**:
|
|
112
|
+
- 输入:`ppt_data.json`
|
|
113
|
+
- 处理:验证、构建、生成 .pptx
|
|
114
|
+
- 输出:`presentation.pptx`
|
|
115
|
+
|
|
116
|
+
### 使用示例
|
|
117
|
+
|
|
118
|
+
**步骤 1:ppt-generator 生成 JSON**
|
|
119
|
+
```bash
|
|
120
|
+
# ppt-generator 执行后输出
|
|
121
|
+
ppt_data.json
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
**步骤 2:pptx-generator 生成 PPTX**
|
|
125
|
+
```bash
|
|
126
|
+
# 验证 JSON
|
|
127
|
+
python scripts/json_validator.py --input ./ppt_data.json
|
|
128
|
+
|
|
129
|
+
# 生成 PPTX
|
|
130
|
+
python scripts/pptx_builder.py --input ./ppt_data.json --output ./presentation.pptx
|
|
131
|
+
|
|
132
|
+
# 验证 PPTX
|
|
133
|
+
python scripts/pptx_validator.py --input ./presentation.pptx
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
**步骤 3:在 PowerPoint 中打开**
|
|
137
|
+
```bash
|
|
138
|
+
# 使用 PowerPoint 打开
|
|
139
|
+
open presentation.pptx # macOS
|
|
140
|
+
# 或
|
|
141
|
+
xdg-open presentation.pptx # Linux
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## 与 nanobanana-ppt-visualizer 协同
|
|
147
|
+
|
|
148
|
+
### 协同流程
|
|
149
|
+
|
|
150
|
+
```
|
|
151
|
+
用户请求:"生成 PPT 文件和图片"
|
|
152
|
+
|
|
153
|
+
1. ppt-generator → ppt_data.json
|
|
154
|
+
2. pptx-generator → presentation.pptx
|
|
155
|
+
3. nanobanana-ppt-visualizer → 图片 + HTML 播放器
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### 两种使用模式
|
|
159
|
+
|
|
160
|
+
**模式 A:仅生成 PPTX 文件**
|
|
161
|
+
- 适用于:需要 .pptx 文件进行编辑
|
|
162
|
+
- 流程:ppt-generator → pptx-generator
|
|
163
|
+
|
|
164
|
+
**模式 B:生成 PPTX + 图片 + HTML 播放器**
|
|
165
|
+
- 适用于:需要多种格式输出
|
|
166
|
+
- 流程:ppt-generator → pptx-generator → nanobanana-ppt-visualizer
|
|
167
|
+
|
|
168
|
+
### 使用示例
|
|
169
|
+
|
|
170
|
+
**模式 A:仅生成 PPTX**
|
|
171
|
+
```bash
|
|
172
|
+
# 步骤 1:ppt-generator 生成 JSON
|
|
173
|
+
# ...
|
|
174
|
+
|
|
175
|
+
# 步骤 2:pptx-generator 生成 PPTX
|
|
176
|
+
python scripts/pptx_builder.py \
|
|
177
|
+
--input ./ppt_data.json \
|
|
178
|
+
--output ./presentation.pptx
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
**模式 B:生成 PPTX + 图片**
|
|
182
|
+
```bash
|
|
183
|
+
# 步骤 1:ppt-generator 生成 JSON
|
|
184
|
+
# ...
|
|
185
|
+
|
|
186
|
+
# 步骤 2:pptx-generator 生成 PPTX
|
|
187
|
+
python scripts/pptx_builder.py \
|
|
188
|
+
--input ./ppt_data.json \
|
|
189
|
+
--output ./presentation.pptx
|
|
190
|
+
|
|
191
|
+
# 步骤 3:nanobanana-ppt-visualizer 生成图片
|
|
192
|
+
# nanobanana-ppt-visualizer 执行...
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## 完整工作流程
|
|
198
|
+
|
|
199
|
+
### 场景 1:仅生成 PPTX 文件
|
|
200
|
+
|
|
201
|
+
```
|
|
202
|
+
用户请求:"生成一个 PPT 文件"
|
|
203
|
+
|
|
204
|
+
ppt-generator (7 角色协作)
|
|
205
|
+
↓
|
|
206
|
+
pptx-generator (生成 .pptx)
|
|
207
|
+
↓
|
|
208
|
+
presentation.pptx
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
**执行步骤**:
|
|
212
|
+
1. ppt-generator 生成 JSON
|
|
213
|
+
2. pptx-generator 生成 .pptx
|
|
214
|
+
3. 用户在 PowerPoint 中打开编辑
|
|
215
|
+
|
|
216
|
+
### 场景 2:生成 PPTX + 图片 + HTML 播放器
|
|
217
|
+
|
|
218
|
+
```
|
|
219
|
+
用户请求:"生成 PPT 文件和网页播放器"
|
|
220
|
+
|
|
221
|
+
ppt-generator (7 角色协作)
|
|
222
|
+
↓
|
|
223
|
+
pptx-generator (生成 .pptx)
|
|
224
|
+
↓
|
|
225
|
+
nanobanana-ppt-visualizer (生成图片 + HTML)
|
|
226
|
+
↓
|
|
227
|
+
presentation.pptx + images/ + viewer.html
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
**执行步骤**:
|
|
231
|
+
1. ppt-generator 生成 JSON
|
|
232
|
+
2. pptx-generator 生成 .pptx
|
|
233
|
+
3. nanobanana-ppt-visualizer 生成图片和播放器
|
|
234
|
+
|
|
235
|
+
### 场景 3:生成完整路演视频
|
|
236
|
+
|
|
237
|
+
```
|
|
238
|
+
用户请求:"生成完整的路演视频"
|
|
239
|
+
|
|
240
|
+
1. ppt-generator (7 角色协作)
|
|
241
|
+
↓ ppt_data.json
|
|
242
|
+
|
|
243
|
+
2. pptx-generator (生成 .pptx)
|
|
244
|
+
↓ presentation.pptx
|
|
245
|
+
|
|
246
|
+
3. nanobanana-ppt-visualizer (生成图片)
|
|
247
|
+
↓ images/
|
|
248
|
+
|
|
249
|
+
4. ppt-roadshow-generator (10 角色协作)
|
|
250
|
+
↓ roadshow_video.mp4
|
|
251
|
+
|
|
252
|
+
5. remotion-video-enhancer (增强动画)
|
|
253
|
+
↓ enhanced_roadshow_video.mp4
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
**执行步骤**:
|
|
257
|
+
1. ppt-generator 生成 JSON
|
|
258
|
+
2. pptx-generator 生成 .pptx
|
|
259
|
+
3. nanobanana-ppt-visualizer 生成图片
|
|
260
|
+
4. ppt-roadshow-generator 生成视频
|
|
261
|
+
5. remotion-video-enhancer 增强动画
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
## 数据格式兼容性
|
|
266
|
+
|
|
267
|
+
### JSON 格式标准
|
|
268
|
+
|
|
269
|
+
ppt-generator 和 pptx-generator 使用相同的 JSON 格式:
|
|
270
|
+
|
|
271
|
+
```json
|
|
272
|
+
{
|
|
273
|
+
"metadata": {
|
|
274
|
+
"title": "演示文稿标题",
|
|
275
|
+
"author": "作者姓名",
|
|
276
|
+
"theme": "主题风格"
|
|
277
|
+
},
|
|
278
|
+
"slides": [
|
|
279
|
+
{
|
|
280
|
+
"layout": "ContentSlide",
|
|
281
|
+
"title": "幻灯片标题",
|
|
282
|
+
"content": ["内容要点1", "内容要点2"],
|
|
283
|
+
"notes": "备注内容"
|
|
284
|
+
}
|
|
285
|
+
]
|
|
286
|
+
}
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
### 兼容性说明
|
|
290
|
+
|
|
291
|
+
| 字段 | ppt-generator | pptx-generator | 兼容性 |
|
|
292
|
+
|------|--------------|---------------|--------|
|
|
293
|
+
| metadata.title | ✓ | ✓ | 完全兼容 |
|
|
294
|
+
| metadata.author | ✓ | ✓ | 完全兼容 |
|
|
295
|
+
| metadata.theme | ✓ | ✓ | 完全兼容 |
|
|
296
|
+
| slides[*].layout | ✓ | ✓ | 完全兼容 |
|
|
297
|
+
| slides[*].title | ✓ | ✓ | 完全兼容 |
|
|
298
|
+
| slides[*].content | ✓ | ✓ | 完全兼容 |
|
|
299
|
+
| slides[*].notes | ✓ | ✓ | 完全兼容 |
|
|
300
|
+
|
|
301
|
+
### 验证命令
|
|
302
|
+
|
|
303
|
+
```bash
|
|
304
|
+
# 验证 JSON 格式
|
|
305
|
+
python scripts/json_validator.py --input ./ppt_data.json
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
---
|
|
309
|
+
|
|
310
|
+
## 注意事项
|
|
311
|
+
|
|
312
|
+
### 1. 输入文件检查
|
|
313
|
+
|
|
314
|
+
在使用 pptx-generator 之前,确保:
|
|
315
|
+
- JSON 文件格式正确
|
|
316
|
+
- JSON 文件存在且可读
|
|
317
|
+
- 幻灯片数量合理(建议 5-20 页)
|
|
318
|
+
|
|
319
|
+
### 2. 输出文件管理
|
|
320
|
+
|
|
321
|
+
- 使用有意义的文件名
|
|
322
|
+
- 定期清理临时文件
|
|
323
|
+
- 区分不同版本的输出
|
|
324
|
+
|
|
325
|
+
### 3. 布局选择
|
|
326
|
+
|
|
327
|
+
根据内容类型选择合适的布局:
|
|
328
|
+
- 封面:TitleSlide
|
|
329
|
+
- 标准内容:ContentSlide
|
|
330
|
+
- 对比:TwoColumnSlide
|
|
331
|
+
- 总结:SummarySlide
|
|
332
|
+
|
|
333
|
+
### 4. 样式应用
|
|
334
|
+
|
|
335
|
+
使用风格配置文件自定义样式:
|
|
336
|
+
- 字体设置
|
|
337
|
+
- 颜色设置
|
|
338
|
+
- 大小设置
|
|
339
|
+
|
|
340
|
+
### 5. 测试和调整
|
|
341
|
+
|
|
342
|
+
- 生成后在 PowerPoint 中打开查看
|
|
343
|
+
- 检查布局和内容
|
|
344
|
+
- 必要时调整 JSON 数据
|
|
345
|
+
|
|
346
|
+
---
|
|
347
|
+
|
|
348
|
+
## 常见问题
|
|
349
|
+
|
|
350
|
+
### Q1:pptx-generator 能生成哪些元素?
|
|
351
|
+
|
|
352
|
+
A:目前支持:
|
|
353
|
+
- 标题(Title)
|
|
354
|
+
- 内容(Text、Bullet Points)
|
|
355
|
+
- 备注(Notes)
|
|
356
|
+
- 未来版本将支持:图片、图表、表格
|
|
357
|
+
|
|
358
|
+
### Q2:能否自定义布局?
|
|
359
|
+
|
|
360
|
+
A:目前使用预设布局,未来版本将支持自定义布局。
|
|
361
|
+
|
|
362
|
+
### Q3:生成的 .pptx 文件能在哪些软件中打开?
|
|
363
|
+
|
|
364
|
+
A:支持的软件:
|
|
365
|
+
- Microsoft PowerPoint
|
|
366
|
+
- WPS Office
|
|
367
|
+
- Google Slides(导入)
|
|
368
|
+
- LibreOffice Impress
|
|
369
|
+
|
|
370
|
+
### Q4:如何与现有播放器集成?
|
|
371
|
+
|
|
372
|
+
A:pptx-generator 生成 .pptx 文件,可与 nanobanana-ppt-visualizer 生成的播放器配合使用。
|
|
373
|
+
|
|
374
|
+
### Q5:能否批量生成多个 PPTX 文件?
|
|
375
|
+
|
|
376
|
+
A:可以,使用批量处理命令:
|
|
377
|
+
```bash
|
|
378
|
+
python scripts/pptx_builder.py \
|
|
379
|
+
--input-dir ./json_files/ \
|
|
380
|
+
--output-dir ./pptx_files/
|
|
381
|
+
```
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
# JSON 格式规范
|
|
2
|
+
|
|
3
|
+
本文档定义了 pptx-generator Skill 所需的 JSON 数据格式规范。
|
|
4
|
+
|
|
5
|
+
## 目录
|
|
6
|
+
1. [整体结构](#整体结构)
|
|
7
|
+
2. [元数据 (metadata)](#元数据-metadata)
|
|
8
|
+
3. [幻灯片 (slides)]#幻灯片-slides)
|
|
9
|
+
4. [布局类型 (layout)](#布局类型-layout)
|
|
10
|
+
5. [示例](#示例)
|
|
11
|
+
6. [验证规则](#验证规则)
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 整体结构
|
|
16
|
+
|
|
17
|
+
JSON 数据必须包含以下顶层字段:
|
|
18
|
+
|
|
19
|
+
```json
|
|
20
|
+
{
|
|
21
|
+
"metadata": { ... },
|
|
22
|
+
"slides": [ ... ]
|
|
23
|
+
}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
| 字段 | 必需性 | 类型 | 说明 |
|
|
27
|
+
|------|--------|------|------|
|
|
28
|
+
| metadata | 推荐 | Object | 演示文稿元数据 |
|
|
29
|
+
| slides | 必需 | Array | 幻灯片数组 |
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## 元数据 (metadata)
|
|
34
|
+
|
|
35
|
+
元数据包含演示文稿的基本信息:
|
|
36
|
+
|
|
37
|
+
```json
|
|
38
|
+
{
|
|
39
|
+
"metadata": {
|
|
40
|
+
"title": "演示文稿标题",
|
|
41
|
+
"author": "作者姓名",
|
|
42
|
+
"theme": "主题风格"
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
| 字段 | 必需性 | 类型 | 说明 | 示例 |
|
|
48
|
+
|------|--------|------|------|------|
|
|
49
|
+
| title | 推荐 | String | 演示文稿标题 | "产品介绍" |
|
|
50
|
+
| author | 可选 | String | 作者姓名 | "张三" |
|
|
51
|
+
| theme | 可选 | String | 主题风格 | "科技感" |
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## 幻灯片 (slides)
|
|
56
|
+
|
|
57
|
+
每个幻灯片对象包含以下字段:
|
|
58
|
+
|
|
59
|
+
```json
|
|
60
|
+
{
|
|
61
|
+
"layout": "ContentSlide",
|
|
62
|
+
"title": "幻灯片标题",
|
|
63
|
+
"content": ["内容要点1", "内容要点2"],
|
|
64
|
+
"notes": "备注内容"
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
| 字段 | 必需性 | 类型 | 说明 | 示例 |
|
|
69
|
+
|------|--------|------|------|------|
|
|
70
|
+
| layout | 可选 | String | 布局类型 | "ContentSlide" |
|
|
71
|
+
| title | 必需 | String | 幻灯片标题 | "核心功能" |
|
|
72
|
+
| content | 必需 | Array | 内容数组 | ["功能1", "功能2"] |
|
|
73
|
+
| notes | 可选 | String | 备注内容 | "详细说明" |
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## 布局类型 (layout)
|
|
78
|
+
|
|
79
|
+
支持的布局类型:
|
|
80
|
+
|
|
81
|
+
| 布局类型 | 说明 | 使用场景 |
|
|
82
|
+
|----------|------|----------|
|
|
83
|
+
| TitleSlide | 标题页 | 封面、标题页 |
|
|
84
|
+
| ContentSlide | 内容页 | 标题 + 内容 |
|
|
85
|
+
| TwoColumnSlide | 两栏页 | 对比、并列内容 |
|
|
86
|
+
| SectionHeaderSlide | 章节页 | 章节分隔 |
|
|
87
|
+
| ContentWithCaptionSlide | 带说明的内容页 | 图片 + 说明 |
|
|
88
|
+
| SummarySlide | 总结页 | 总结、结尾 |
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## 示例
|
|
93
|
+
|
|
94
|
+
### 完整示例
|
|
95
|
+
|
|
96
|
+
```json
|
|
97
|
+
{
|
|
98
|
+
"metadata": {
|
|
99
|
+
"title": "产品介绍演示",
|
|
100
|
+
"author": "张三",
|
|
101
|
+
"theme": "科技感"
|
|
102
|
+
},
|
|
103
|
+
"slides": [
|
|
104
|
+
{
|
|
105
|
+
"layout": "TitleSlide",
|
|
106
|
+
"title": "AI 智能助手",
|
|
107
|
+
"content": [
|
|
108
|
+
"新一代人工智能助手",
|
|
109
|
+
"提升工作效率",
|
|
110
|
+
"智能对话交互"
|
|
111
|
+
],
|
|
112
|
+
"notes": "开场白,介绍产品定位"
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"layout": "ContentSlide",
|
|
116
|
+
"title": "核心功能",
|
|
117
|
+
"content": [
|
|
118
|
+
"自然语言理解",
|
|
119
|
+
"智能内容生成",
|
|
120
|
+
"多模态交互",
|
|
121
|
+
"个性化定制"
|
|
122
|
+
],
|
|
123
|
+
"notes": "详细介绍产品核心功能"
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"layout": "ContentSlide",
|
|
127
|
+
"title": "技术优势",
|
|
128
|
+
"content": [
|
|
129
|
+
"先进的语言模型",
|
|
130
|
+
"高效的知识检索",
|
|
131
|
+
"安全的数据处理",
|
|
132
|
+
"灵活的部署方案"
|
|
133
|
+
],
|
|
134
|
+
"notes": "说明技术优势"
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"layout": "SummarySlide",
|
|
138
|
+
"title": "总结",
|
|
139
|
+
"content": [
|
|
140
|
+
"AI 智能助手",
|
|
141
|
+
"提升效率,创造价值",
|
|
142
|
+
"开启智能新时代"
|
|
143
|
+
],
|
|
144
|
+
"notes": "总结发言"
|
|
145
|
+
}
|
|
146
|
+
]
|
|
147
|
+
}
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### 最小示例
|
|
151
|
+
|
|
152
|
+
```json
|
|
153
|
+
{
|
|
154
|
+
"metadata": {
|
|
155
|
+
"title": "演示文稿"
|
|
156
|
+
},
|
|
157
|
+
"slides": [
|
|
158
|
+
{
|
|
159
|
+
"title": "第一页",
|
|
160
|
+
"content": ["内容1", "内容2"]
|
|
161
|
+
}
|
|
162
|
+
]
|
|
163
|
+
}
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## 验证规则
|
|
169
|
+
|
|
170
|
+
### 必需字段
|
|
171
|
+
|
|
172
|
+
以下字段为必需:
|
|
173
|
+
- `slides` 数组
|
|
174
|
+
- 每个幻灯片的 `title` 字段
|
|
175
|
+
- 每个幻灯片的 `content` 数组
|
|
176
|
+
|
|
177
|
+
### 数据类型
|
|
178
|
+
|
|
179
|
+
| 字段 | 期望类型 | 说明 |
|
|
180
|
+
|------|----------|------|
|
|
181
|
+
| metadata | Object | 元数据对象 |
|
|
182
|
+
| title | String | 标题字符串 |
|
|
183
|
+
| author | String | 作者字符串 |
|
|
184
|
+
| theme | String | 主题字符串 |
|
|
185
|
+
| layout | String | 布局类型字符串 |
|
|
186
|
+
| content | Array | 内容数组 |
|
|
187
|
+
| notes | String | 备注字符串 |
|
|
188
|
+
|
|
189
|
+
### 内容要求
|
|
190
|
+
|
|
191
|
+
1. **标题**:
|
|
192
|
+
- 不能为空字符串
|
|
193
|
+
- 建议长度:1-50 个字符
|
|
194
|
+
|
|
195
|
+
2. **内容数组**:
|
|
196
|
+
- 不能为空数组
|
|
197
|
+
- 每个元素必须是字符串
|
|
198
|
+
- 建议每页 3-7 个要点
|
|
199
|
+
|
|
200
|
+
3. **备注**:
|
|
201
|
+
- 可选字段
|
|
202
|
+
- 可为空字符串
|
|
203
|
+
|
|
204
|
+
### 验证命令
|
|
205
|
+
|
|
206
|
+
使用 `json_validator.py` 验证 JSON 格式:
|
|
207
|
+
|
|
208
|
+
```bash
|
|
209
|
+
python scripts/json_validator.py --input ./ppt_data.json
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
验证结果:
|
|
213
|
+
- ✓ 验证通过:JSON 格式正确
|
|
214
|
+
- ⚠️ 警告:JSON 格式基本正确,但有建议
|
|
215
|
+
- ❌ 错误:JSON 格式不正确,需要修复
|