将教材PDF转化为结构化自学教程Word文档(.docx),采用"排版引擎 + 数据分离"架构:Python排版引擎负责Word渲染,数据模块按章节组织内容,12板块模板确保每节结构统一。
适用场景:中小学各学科教材的自学教程、预习指南、教辅材料生成。
调用此技能时,必须向用户确认以下信息:
可选输入:
scripts/build_tutorial.py:从本技能 scripts/build_tutorial.py 复制排版引擎模板
add_cover() 中的标题、版本信息
build_tutorial() 中的数据模块导入和输出路径
排版引擎提供以下核心函数(无需修改,直接复用):
| 函数 | 用途 |
|------|------|
| create_document() | 创建A4文档,设置页边距 |
| setup_styles(doc) | 注册6种样式:章标题/节标题/板块标题/正文/公式/练习 |
| add_cover(doc) | 封面页 |
| add_toc(doc) | 目录页(TOC域代码,Word中更新域生效) |
| add_chapter_title(doc, text) | 章标题+分隔线 |
| add_colored_box(doc, title, lines, bg, line_color) | 通用彩色框 |
| add_memory_box(doc, title, lines) | 记忆锦囊(蓝底蓝线) |
| add_warning_box(doc, title, lines) | 易错警示(红底红线) |
| add_example_box(doc, title, lines) | 经典例题(橙底橙线) |
| add_table(doc, headers, rows, col_widths) | 深蓝表头+隔行灰底表格 |
| render_full_section(doc, section_data) | 渲染完整12板块节 |
| 12个 render_*() 函数 | 各板块独立渲染 |
按章节创建 data_chXX.py 文件,每个文件导出 get_chXX_data() 函数。
数据模板:详见 references/data_template_spec.md
12板块标准模板(每节必须包含):
| 序号 | 板块 | emoji | 数据字段 | 说明 |
|------|------|-------|----------|------|
| 1 | 学习导航 | 📋 | objectives/key_points/difficulties/duration | 学习目标+重点难点 |
| 2 | 课前热身 | 🔥 | warmup: [(Q,A),...] | 激趣导入问题 |
| 3 | 知识精讲 | 📖 | knowledge: [(子标题, 行列表),...] | 核心知识详解 |
| 4 | 记忆锦囊 | 🧠 | memory: [(标题, 行列表),...] | 口诀/技巧/对比表 |
| 5 | 易错警示 | ⚠️ | warnings: [(误区,正解),...] | 常见错误辨析 |
| 6 | 经典例题 | 📝 | examples: (标题,题目,分析,解答[,总结]) | 5元组或4元组 |
| 7 | 重难点专项突破 | 🎯 | breakthrough: {title,analysis,method,exercises} | 专项突破方法 |
| 8 | 实验与探究 | 🔬 | experiments: 5元组 | 实验全流程 |
| 9 | 生活物理 | 🏠 | life_physics: [(标题,内容),...] | 生活应用链接 |
| 10 | 知识框架 | 🗺️ | framework: [缩进文本,...] | 知识树 |
| 11 | 达标检测 | ✅ | quiz: {questions, answers} | 基础练习+答案 |
| 12 | 自我评价 | 📊 | self_eval: {items, suggestions} | 评价表+建议 |
内容编写核心原则:
10³、v=s/t),禁用 OMML
加粗 富文本标记
None(无专项突破的节),但不能为空字典 {}
并行生成策略:章节数据文件之间无依赖,可使用 Agent 工具并行创建多个 data_chXX.py,每章一个后台 agent。
build_tutorial.py,验证排版无误
按照 references/quality_checklist.md 逐项检查:
重点检查项(历史经验教训):
breakthrough 字段:None 正常,空字典 {} 会导致渲染异常
发现问题后修改对应 data_chXX.py,重新运行 build_tutorial.py 生成文档。
scripts/ 子目录
.docx 文件
text 标记由 _parse_rich_text() 解析,不支持斜体/下划线等其他格式。
sd.get('breakthrough') 而非 'breakthrough' in sd,因为 None 值存在但不应渲染。
w:eastAsia 属性确保中文字体生效。
共 1 个版本