dsh-courseware 0.1.0
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/LICENSE +21 -0
- package/README.md +109 -0
- package/cordis.patch.yml +9 -0
- package/engine/pptxgen/__init__.py +8 -0
- package/engine/pptxgen/__main__.py +4 -0
- package/engine/pptxgen/builtin_template.py +218 -0
- package/engine/pptxgen/cli.py +575 -0
- package/engine/pptxgen/examples.py +290 -0
- package/engine/pptxgen/imagegen.py +564 -0
- package/engine/pptxgen/layoutmap.py +211 -0
- package/engine/pptxgen/patterns.py +106 -0
- package/engine/pptxgen/preview.py +126 -0
- package/engine/pptxgen/profile.py +456 -0
- package/engine/pptxgen/render.py +1673 -0
- package/engine/pptxgen/review.py +184 -0
- package/engine/pptxgen/schemacheck.py +122 -0
- package/engine/pptxgen/schemas/XAdES.xsd +466 -0
- package/engine/pptxgen/schemas/XAdESv141.xsd +15 -0
- package/engine/pptxgen/schemas/chartEx.xsd +838 -0
- package/engine/pptxgen/schemas/dml-chart.xsd +1499 -0
- package/engine/pptxgen/schemas/dml-chartDrawing.xsd +146 -0
- package/engine/pptxgen/schemas/dml-diagram.xsd +1085 -0
- package/engine/pptxgen/schemas/dml-drawing.xsd +63 -0
- package/engine/pptxgen/schemas/dml-lockedCanvas.xsd +11 -0
- package/engine/pptxgen/schemas/dml-main.xsd +3081 -0
- package/engine/pptxgen/schemas/dml-picture.xsd +23 -0
- package/engine/pptxgen/schemas/dml-spreadsheetDrawing.xsd +185 -0
- package/engine/pptxgen/schemas/dml-wordprocessingDrawing.xsd +287 -0
- package/engine/pptxgen/schemas/drawing-chart2012.xsd +129 -0
- package/engine/pptxgen/schemas/markup-compatibility.xsd +95 -0
- package/engine/pptxgen/schemas/opc-digSig.xsd +49 -0
- package/engine/pptxgen/schemas/opc-relationships.xsd +33 -0
- package/engine/pptxgen/schemas/pml.xsd +1676 -0
- package/engine/pptxgen/schemas/shared-additionalCharacteristics.xsd +28 -0
- package/engine/pptxgen/schemas/shared-bibliography.xsd +144 -0
- package/engine/pptxgen/schemas/shared-commonSimpleTypes.xsd +172 -0
- package/engine/pptxgen/schemas/shared-customXmlDataProperties.xsd +25 -0
- package/engine/pptxgen/schemas/shared-customXmlSchemaProperties.xsd +18 -0
- package/engine/pptxgen/schemas/shared-documentPropertiesCustom.xsd +59 -0
- package/engine/pptxgen/schemas/shared-documentPropertiesExtended.xsd +56 -0
- package/engine/pptxgen/schemas/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/engine/pptxgen/schemas/shared-math.xsd +582 -0
- package/engine/pptxgen/schemas/shared-relationshipReference.xsd +25 -0
- package/engine/pptxgen/schemas/signatureInfo.xsd +103 -0
- package/engine/pptxgen/schemas/sml.xsd +4439 -0
- package/engine/pptxgen/schemas/visio.xsd +829 -0
- package/engine/pptxgen/schemas/vml-main.xsd +570 -0
- package/engine/pptxgen/schemas/vml-officeDrawing.xsd +509 -0
- package/engine/pptxgen/schemas/vml-presentationDrawing.xsd +12 -0
- package/engine/pptxgen/schemas/vml-spreadsheetDrawing.xsd +108 -0
- package/engine/pptxgen/schemas/vml-wordprocessingDrawing.xsd +96 -0
- package/engine/pptxgen/schemas/vmlDrawing.xsd +36 -0
- package/engine/pptxgen/schemas/wml.xsd +3643 -0
- package/engine/pptxgen/schemas/word12.xsd +66 -0
- package/engine/pptxgen/schemas/xlThreadedComments.xsd +59 -0
- package/engine/pptxgen/schemas/xlThreadedComments2.xsd +22 -0
- package/engine/pptxgen/schemas/xmldsig-core-schema.xsd +318 -0
- package/engine/pptxgen/shapes.py +417 -0
- package/engine/pptxgen/spec.py +529 -0
- package/engine/pptxgen/template.py +834 -0
- package/engine/pptxgen/util.py +218 -0
- package/engine/pptxgen/xmlutil.py +298 -0
- package/engine/pptxgen.sh +7 -0
- package/engine/requirements.txt +9 -0
- package/lib/index.js +186 -0
- package/package.json +34 -0
- package/skills/courseware/SKILL.md +130 -0
- package/skills/courseware/references/content-polish.md +121 -0
- package/skills/courseware/references/deck-spec.md +155 -0
- package/skills/courseware/references/design-review.md +121 -0
- package/skills/courseware/references/image-backends.md +94 -0
- package/skills/courseware/references/quality-gates.md +71 -0
- package/skills/courseware/references/roadmap.md +55 -0
- package/skills/courseware/references/template-fidelity.md +100 -0
- package/skills/courseware/workflows/generate.md +172 -0
- package/skills/courseware/workflows/quick.md +41 -0
- package/skills/courseware/workflows/revise.md +40 -0
- package/skills/courseware/workflows/routing.md +49 -0
- package/skills/courseware/workflows/stages/generate-images.md +74 -0
- package/skills/courseware/workflows/template-intake.md +112 -0
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
"""内置示例:一份完整的《分数的初步认识》课件规格。"""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
DEMO_DECK_YAML = """\
|
|
6
|
+
# ============================================================
|
|
7
|
+
# 课件规格示例 —— 人教版小学数学三年级上册《分数的初步认识》
|
|
8
|
+
# 生成:pptxgen build examples/示例课件_分数的初步认识.yaml \\
|
|
9
|
+
# -t examples/assets/内置模板_16x9.pptx
|
|
10
|
+
# ============================================================
|
|
11
|
+
|
|
12
|
+
deck:
|
|
13
|
+
title: 分数的初步认识
|
|
14
|
+
subtitle: 人教版 小学数学 三年级上册 第八单元
|
|
15
|
+
subject: 数学
|
|
16
|
+
grade: 三年级
|
|
17
|
+
teacher: 王老师
|
|
18
|
+
school: 阳光小学
|
|
19
|
+
date: 2025年 春
|
|
20
|
+
|
|
21
|
+
# 模板文件(也可用命令行 -t 覆盖)
|
|
22
|
+
template: assets/内置模板_16x9.pptx
|
|
23
|
+
|
|
24
|
+
options:
|
|
25
|
+
answer_mode: end # end=答案统一放最后 | inline=每题下方 | none=不显示
|
|
26
|
+
page_numbers: true
|
|
27
|
+
chrome: auto # auto=自动复制模板装饰层 | off=关闭
|
|
28
|
+
|
|
29
|
+
slides:
|
|
30
|
+
|
|
31
|
+
# ---------------- 封面 ----------------
|
|
32
|
+
- type: cover
|
|
33
|
+
title: 分数的初步认识
|
|
34
|
+
subtitle: 把一个物体平均分,认识几分之一
|
|
35
|
+
|
|
36
|
+
# ---------------- 目录 ----------------
|
|
37
|
+
- type: toc
|
|
38
|
+
title: 本节课我们将学习
|
|
39
|
+
items:
|
|
40
|
+
- 认识几分之一
|
|
41
|
+
- 比较几分之一的大小
|
|
42
|
+
- 分数的简单计算
|
|
43
|
+
- 生活中的分数
|
|
44
|
+
|
|
45
|
+
# ---------------- 章节一 ----------------
|
|
46
|
+
- type: section
|
|
47
|
+
title: 认识几分之一
|
|
48
|
+
subtitle: 从"平均分"开始
|
|
49
|
+
items:
|
|
50
|
+
- 什么是平均分
|
|
51
|
+
- 几分之一的读写
|
|
52
|
+
- 分数各部分的名称
|
|
53
|
+
note: 用 2 分钟回顾"平均分"的概念,为引入分数做铺垫。
|
|
54
|
+
|
|
55
|
+
- type: objectives
|
|
56
|
+
title: 学习目标
|
|
57
|
+
goals:
|
|
58
|
+
- 结合具体情境,初步认识几分之一,会读、会写简单的分数
|
|
59
|
+
- 知道分数各部分的名称,理解分数表示的实际含义
|
|
60
|
+
- 能比较分子是 1 的两个分数的大小
|
|
61
|
+
key_points:
|
|
62
|
+
- 理解"平均分"是分数的前提
|
|
63
|
+
- 认识几分之一,掌握分数的读写法
|
|
64
|
+
hard_points:
|
|
65
|
+
- 理解几分之一表示"其中的一份"与整体的关系
|
|
66
|
+
- 同分子分数大小的比较方法
|
|
67
|
+
|
|
68
|
+
- type: content
|
|
69
|
+
title: 什么是"平均分"
|
|
70
|
+
subtitle: 把一个物体分成若干份,每份分得同样多
|
|
71
|
+
bullets:
|
|
72
|
+
- text: 把一块月饼平均分成 2 份,每份是这块月饼的一半
|
|
73
|
+
level: 0
|
|
74
|
+
- text: "写作:1/2,读作:二分之一"
|
|
75
|
+
level: 1
|
|
76
|
+
- text: 把一张长方形纸平均分成 4 份,每份是这张纸的 1/4
|
|
77
|
+
level: 0
|
|
78
|
+
- text: 每份必须"同样大",否则不能叫平均分
|
|
79
|
+
level: 1
|
|
80
|
+
image_caption: 平均分与不平均分的对比
|
|
81
|
+
note: 拿一张纸现场对折,让学生直观感受"同样大"。
|
|
82
|
+
|
|
83
|
+
- type: content
|
|
84
|
+
title: 认识几分之一
|
|
85
|
+
bullets:
|
|
86
|
+
- text: 把一个物体或图形平均分成几份,其中的 1 份就是它的几分之一
|
|
87
|
+
level: 0
|
|
88
|
+
- text: 平均分成 3 份,其中的 1 份就是 1/3
|
|
89
|
+
level: 1
|
|
90
|
+
- text: 平均分成 5 份,其中的 1 份就是 1/5
|
|
91
|
+
level: 1
|
|
92
|
+
- text: 分数各部分的名称
|
|
93
|
+
level: 0
|
|
94
|
+
- text: 中间的横线叫分数线,表示"平均分"
|
|
95
|
+
level: 1
|
|
96
|
+
- text: 下面的数叫分母,表示平均分成几份
|
|
97
|
+
level: 1
|
|
98
|
+
- text: 上面的数叫分子,表示取了其中的几份
|
|
99
|
+
level: 1
|
|
100
|
+
note: 板书 1/3,逐一指认分数线、分母、分子。
|
|
101
|
+
|
|
102
|
+
# ---------------- 例题 ----------------
|
|
103
|
+
- type: example
|
|
104
|
+
title: 例题讲解
|
|
105
|
+
bullets:
|
|
106
|
+
- 把一根 8 米长的绳子平均分成 4 段,每段是这根绳子的几分之几?
|
|
107
|
+
steps:
|
|
108
|
+
- 找出关键信息:总长度 8 米,平均分成 4 段
|
|
109
|
+
- 因为是"平均分成 4 段",所以分母是 4
|
|
110
|
+
- 求"每段",即取其中的 1 份,所以分子是 1
|
|
111
|
+
- 答:每段是这根绳子的 1/4
|
|
112
|
+
note: 强调"平均分成几段"决定分母,与具体长度无关——这是易错点。
|
|
113
|
+
|
|
114
|
+
- type: content
|
|
115
|
+
title: 比较几分之一的大小
|
|
116
|
+
subtitle: 分子都是 1 时,分母越大,分数反而越小
|
|
117
|
+
bullets:
|
|
118
|
+
- text: 把同样大的两张纸,一张平均分成 2 份,一张平均分成 4 份
|
|
119
|
+
level: 0
|
|
120
|
+
- text: 分成 2 份的那份更大,所以 1/2 > 1/4
|
|
121
|
+
level: 1
|
|
122
|
+
- text: 分的份数越多,每一份就越小
|
|
123
|
+
level: 0
|
|
124
|
+
- text: 结论:分子相同,分母越大,分数越小
|
|
125
|
+
level: 1
|
|
126
|
+
|
|
127
|
+
# ---------------- 随堂练习 ----------------
|
|
128
|
+
- type: practice
|
|
129
|
+
title: 随堂练习
|
|
130
|
+
bullets:
|
|
131
|
+
- 先独立完成,再同桌互相说一说是怎么想的。
|
|
132
|
+
questions:
|
|
133
|
+
- q: 把一块蛋糕平均分成 6 份,其中的 1 份是这块蛋糕的( )。
|
|
134
|
+
options:
|
|
135
|
+
- A. 1/2
|
|
136
|
+
- B. 1/6
|
|
137
|
+
- C. 6
|
|
138
|
+
- D. 1/3
|
|
139
|
+
answer: B
|
|
140
|
+
analysis: 平均分成 6 份,取其中 1 份,分母是 6,分子是 1,所以是 1/6。
|
|
141
|
+
- q: 下面各数中,最大的是( )。
|
|
142
|
+
options:
|
|
143
|
+
- A. 1/2
|
|
144
|
+
- B. 1/5
|
|
145
|
+
- C. 1/8
|
|
146
|
+
- D. 1/9
|
|
147
|
+
answer: A
|
|
148
|
+
analysis: 分子都是 1,分母越小分数越大。2 最小,所以 1/2 最大。
|
|
149
|
+
- q: 判断:把一个圆分成 3 份,每份一定是这个圆的 1/3。
|
|
150
|
+
options:
|
|
151
|
+
- A. 正确
|
|
152
|
+
- B. 错误
|
|
153
|
+
answer: B
|
|
154
|
+
analysis: 必须是"平均分"成 3 份,每份才是 1/3。题目没有说明是平均分。
|
|
155
|
+
|
|
156
|
+
# ---------------- 课堂小结 ----------------
|
|
157
|
+
- type: summary
|
|
158
|
+
title: 课堂小结
|
|
159
|
+
mindmap:
|
|
160
|
+
center: 分数的初步认识
|
|
161
|
+
branches:
|
|
162
|
+
- title: 前提
|
|
163
|
+
items: [必须是平均分, 每份同样大]
|
|
164
|
+
- title: 读写
|
|
165
|
+
items: [先写分数线, 再写分母, 最后写分子]
|
|
166
|
+
- title: 各部分名称
|
|
167
|
+
items: [分数线、分母、分子]
|
|
168
|
+
- title: 比大小
|
|
169
|
+
items: [分子相同看分母, 分母越大分数越小]
|
|
170
|
+
- title: 易错点
|
|
171
|
+
items: [没说"平均分"就不能用分数表示]
|
|
172
|
+
|
|
173
|
+
# ---------------- 课后作业 ----------------
|
|
174
|
+
- type: homework
|
|
175
|
+
title: 课后作业
|
|
176
|
+
items:
|
|
177
|
+
- 完成课本第 92 页"做一做"第 1、2 题
|
|
178
|
+
- 用一张正方形纸折出它的 1/4,并涂上颜色
|
|
179
|
+
- 找一找生活中的分数,明天上课分享一个例子
|
|
180
|
+
note: 注意:折纸作业要拍照片上传到班级群,看看谁的方法最多。
|
|
181
|
+
|
|
182
|
+
# ---------------- 结束页 ----------------
|
|
183
|
+
- type: end
|
|
184
|
+
title: 谢谢观看
|
|
185
|
+
subtitle: 数学源于生活,也用于生活
|
|
186
|
+
"""
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
def deck_template(title: str = "我的课件") -> str:
|
|
190
|
+
return f"""\
|
|
191
|
+
# 课件规格文件 —— 填好后运行:
|
|
192
|
+
# pptxgen build 本文件.yaml -t 你的模板.pptx
|
|
193
|
+
|
|
194
|
+
deck:
|
|
195
|
+
title: {title}
|
|
196
|
+
subtitle: 副标题(如:人教版 XX 学科 X 年级 X 册)
|
|
197
|
+
subject: 数学
|
|
198
|
+
grade: 三年级
|
|
199
|
+
teacher: 张老师
|
|
200
|
+
school:
|
|
201
|
+
date:
|
|
202
|
+
|
|
203
|
+
# 不给模板时,会自动用 templates/ 目录下唯一的 pptx
|
|
204
|
+
template:
|
|
205
|
+
|
|
206
|
+
options:
|
|
207
|
+
answer_mode: end
|
|
208
|
+
page_numbers: true
|
|
209
|
+
chrome: auto
|
|
210
|
+
|
|
211
|
+
slides:
|
|
212
|
+
- type: cover
|
|
213
|
+
title: {title}
|
|
214
|
+
subtitle: 副标题
|
|
215
|
+
|
|
216
|
+
- type: toc
|
|
217
|
+
title: 目 录
|
|
218
|
+
items:
|
|
219
|
+
- 第一部分
|
|
220
|
+
- 第二部分
|
|
221
|
+
|
|
222
|
+
- type: section
|
|
223
|
+
title: 第一部分
|
|
224
|
+
subtitle: 本节的引入语
|
|
225
|
+
|
|
226
|
+
- type: objectives
|
|
227
|
+
title: 学习目标
|
|
228
|
+
goals:
|
|
229
|
+
- 目标一
|
|
230
|
+
- 目标二
|
|
231
|
+
key_points:
|
|
232
|
+
- 重点
|
|
233
|
+
hard_points:
|
|
234
|
+
- 难点
|
|
235
|
+
|
|
236
|
+
- type: content
|
|
237
|
+
title: 知识点标题
|
|
238
|
+
subtitle: 一句话概括
|
|
239
|
+
bullets:
|
|
240
|
+
- text: 要点一
|
|
241
|
+
level: 0
|
|
242
|
+
- text: 要点一的补充说明
|
|
243
|
+
level: 1
|
|
244
|
+
- text: 要点二
|
|
245
|
+
level: 0
|
|
246
|
+
# image: assets/xxx.png # 可选配图(相对路径按本文件所在目录解析)
|
|
247
|
+
# image_side: right # right / left / top / bottom
|
|
248
|
+
note: 讲稿备注会写进 PPT 的备注栏
|
|
249
|
+
|
|
250
|
+
- type: practice
|
|
251
|
+
title: 随堂练习
|
|
252
|
+
questions:
|
|
253
|
+
- q: 题干?
|
|
254
|
+
options:
|
|
255
|
+
- A. 选项一
|
|
256
|
+
- B. 选项二
|
|
257
|
+
answer: A
|
|
258
|
+
analysis: 解析说明
|
|
259
|
+
|
|
260
|
+
- type: summary
|
|
261
|
+
title: 课堂小结
|
|
262
|
+
points:
|
|
263
|
+
- 小结要点一
|
|
264
|
+
- 小结要点二
|
|
265
|
+
|
|
266
|
+
- type: homework
|
|
267
|
+
title: 课后作业
|
|
268
|
+
items:
|
|
269
|
+
- 作业一
|
|
270
|
+
note: 温馨提示
|
|
271
|
+
|
|
272
|
+
- type: end
|
|
273
|
+
title: 谢谢观看
|
|
274
|
+
subtitle: 下节课见
|
|
275
|
+
"""
|
|
276
|
+
|
|
277
|
+
|
|
278
|
+
# 页型速查(用于 README 和帮助信息)
|
|
279
|
+
SLIDE_TYPE_HELP = [
|
|
280
|
+
("cover", "封面", "title / subtitle / teacher / school / date"),
|
|
281
|
+
("toc", "目录", "title / items[]"),
|
|
282
|
+
("section", "章节过渡", "title / subtitle / items[] / index(自动编号)"),
|
|
283
|
+
("objectives", "学习目标", "title / goals[] / key_points[] / hard_points[]"),
|
|
284
|
+
("content", "知识点讲解", "title / subtitle / bullets[] / image / image_side / images[]"),
|
|
285
|
+
("example", "例题讲解", "title / bullets[](题干) / steps[]"),
|
|
286
|
+
("practice", "课堂练习", "title / questions[{q,options,answer,analysis}]"),
|
|
287
|
+
("summary", "课堂小结", "title / mindmap{center,branches[]} 或 points[]"),
|
|
288
|
+
("homework", "课后作业", "title / items[] / note"),
|
|
289
|
+
("end", "结束页", "title / subtitle"),
|
|
290
|
+
]
|