Back to skills
SkillHub ClubShip Full StackFull Stack

teacher-prep

教师备课助手,用于小学语文教学备课。支持古诗、现代文、寓言、童话等各类课文。当用户提出备课需求时,自动执行:(1)搜索课文相关资料(原文、作者、背景、生字词、段落分析等),生成markdown备课资料;(2)生成教案PPT;(3)生成Word格式课后练习题及参考答案。适用于小学各年级语文备课场景。

Packaged view

This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.

Stars
3,100
Hot score
99
Updated
March 20, 2026
Overall rating
C4.0
Composite score
4.0
Best-practice grade
C61.1

Install command

npx @skill-hub/cli install openclaw-skills-teacher-prep

Repository

openclaw/skills

Skill path: skills/870021840/teacher-prep

教师备课助手,用于小学语文教学备课。支持古诗、现代文、寓言、童话等各类课文。当用户提出备课需求时,自动执行:(1)搜索课文相关资料(原文、作者、背景、生字词、段落分析等),生成markdown备课资料;(2)生成教案PPT;(3)生成Word格式课后练习题及参考答案。适用于小学各年级语文备课场景。

Open repository

Best for

Primary workflow: Ship Full Stack.

Technical facets: Full Stack.

Target audience: everyone.

License: Unknown.

Original source

Catalog source: SkillHub Club.

Repository owner: openclaw.

This is still a mirrored public skill entry. Review the repository before installing into production workflows.

What it helps with

  • Install teacher-prep into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
  • Review https://github.com/openclaw/skills before adding teacher-prep to shared team environments
  • Use teacher-prep for development workflows

Works across

Claude CodeCodex CLIGemini CLIOpenCode

Favorites: 0.

Sub-skills: 0.

Aggregator: No.

Original source / Raw SKILL.md

---
name: teacher-prep
description: 教师备课助手,用于小学语文教学备课。支持古诗、现代文、寓言、童话等各类课文。当用户提出备课需求时,自动执行:(1)搜索课文相关资料(原文、作者、背景、生字词、段落分析等),生成markdown备课资料;(2)生成教案PPT;(3)生成Word格式课后练习题及参考答案。适用于小学各年级语文备课场景。
---

# 教师备课助手

本技能用于自动化完成小学语文教学备课的全流程工作,支持古诗、现代文、寓言、童话、说明文等各类课文类型。

## 工作流程

当用户提出备课需求(如"备课三年级上册《秋天的雨》"或"备课二年级古诗《村居》")时,按以下步骤执行:

### 第一步:识别课文类型并搜索资料

根据课文名称自动判断类型:
- **古诗/古诗词**:有朝代和作者,如《村居》《咏柳》
- **现代文**:散文、记叙文、说明文等,如《秋天的雨》《富饶的西沙群岛》
- **寓言/童话**:如《坐井观天》《卖火柴的小女孩》

使用 Tavily 搜索工具获取:
- 课文原文
- 作者介绍
- 创作背景/写作背景
- 生字词(拼音、解释)
- 段落大意/诗句解析
- 主题思想/中心思想
- 写作特点/艺术特色

### 第二步:生成备课资料

根据课文类型生成相应内容:

**古诗类:**
- 原文(带拼音)
- 作者介绍
- 字词注释
- 诗句翻译
- 诗歌赏析

**现代文类:**
- 课文原文
- 作者介绍
- 生字词表(拼音、部首、组词)
- 段落划分与段意
- 主要内容概括
- 写作特点分析

**寓言/童话类:**
- 故事原文
- 出处/作者
- 生字词
- 故事情节梳理
- 寓意/道理

保存为:`备课资料_<课文名>.md`

### 第三步:生成教案 PPT

根据课文类型设计教案结构:

**通用教案框架:**
1. 教学目标(知识、能力、情感)
2. 教学重难点
3. 教学准备
4. 教学过程
   - 导入(激发兴趣,引入新课)
   - 新授(初读感知、精读理解)
   - 巩固(练习、讨论、拓展)
   - 小结(总结收获)
   - 作业布置
5. 板书设计

保存为:`教案_<课文名>.pptx`

### 第四步:生成课后练习题

根据课文类型设计分层练习:

**基础题:**
- 生字词(看拼音写词语、选择正确读音)
- 课文内容填空
- 词语解释

**理解题:**
- 句子理解
- 段落大意概括
- 中心思想体会

**拓展题:**
- 仿写/续写
- 对比阅读
- 创意表达

保存为:`练习题_<课文名>.docx`(含参考答案)

## 输出文件

完成备课任务后,生成以下三个文件:
1. `备课资料_<课文名>.md` - Markdown 格式备课资料
2. `教案_<课文名>.pptx` - PowerPoint 教案
3. `练习题_<课文名>.docx` - Word 格式练习题

## 依赖工具

- Tavily 搜索(需 TAVILY_API_KEY 环境变量)
- python-pptx(生成 PPT)
- python-docx(生成 Word 文档)

## 使用示例

**古诗备课:**
- 用户说:"备课二年级下册古诗《村居》"
- 识别为古诗 → 搜索古诗资料 → 生成古诗类型备课资料

**现代文备课:**
- 用户说:"备课三年级上册《秋天的雨》"
- 识别为现代散文 → 搜索课文资料 → 生成现代文类型备课资料

**寓言备课:**
- 用户说:"备课二年级《坐井观天》"
- 识别为寓言故事 → 搜索寓言资料 → 生成寓言类型备课资料


---

## Skill Companion Files

> Additional files collected from the skill directory layout.

### _meta.json

```json
{
  "owner": "870021840",
  "slug": "teacher-prep",
  "displayName": "teacher-prep",
  "latest": {
    "version": "1.0.0",
    "publishedAt": 1773193905051,
    "commit": "https://github.com/openclaw/skills/commit/989ec24e0261846aa78336abd994e19315e7f644"
  },
  "history": []
}

```

### scripts/generate_docx.py

```python
#!/usr/bin/env python3
"""
生成课后练习题 Word 文档 - 支持多种课文类型
用法: python generate_docx.py <课文名> <课文类型> [备课资料文件路径]
"""

import sys
from docx import Document
from docx.shared import Pt, Inches, RGBColor
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.oxml.ns import qn

def set_chinese_font(run, font_name='SimSun', size=12, bold=False):
    """设置中文字体"""
    font = run.font
    font.name = font_name
    font.size = Pt(size)
    font.bold = bold
    run._element.rPr.rFonts.set(qn('w:eastAsia'), font_name)

def create_exercises_poem(lesson_name, doc):
    """生成古诗类练习题"""
    
    # 一、基础积累
    heading = doc.add_heading('一、基础积累', level=1)
    for run in heading.runs:
        set_chinese_font(run, 'SimHei', 14, True)
    
    p = doc.add_paragraph()
    run = p.add_run(f'1. 默写《{lesson_name}》')
    set_chinese_font(run, 'SimSun', 12)
    
    p = doc.add_paragraph()
    run = p.add_run('(请在此处默写全诗)')
    set_chinese_font(run, 'SimSun', 11)
    p.paragraph_format.left_indent = Inches(0.3)
    
    p = doc.add_paragraph()
    run = p.add_run('2. 给下列加点字注音')
    set_chinese_font(run, 'SimSun', 12)
    
    p = doc.add_paragraph()
    run = p.add_run('(    )(    )(    )(    )')
    set_chinese_font(run, 'SimSun', 11)
    p.paragraph_format.left_indent = Inches(0.3)
    
    p = doc.add_paragraph()
    run = p.add_run('3. 看拼音写词语')
    set_chinese_font(run, 'SimSun', 12)
    
    p = doc.add_paragraph()
    run = p.add_run('(      )(      )(      )')
    set_chinese_font(run, 'SimSun', 11)
    p.paragraph_format.left_indent = Inches(0.3)
    
    # 二、理解感悟
    heading = doc.add_heading('二、理解感悟', level=1)
    for run in heading.runs:
        set_chinese_font(run, 'SimHei', 14, True)
    
    p = doc.add_paragraph()
    run = p.add_run('4. 解释下列词语的意思')
    set_chinese_font(run, 'SimSun', 12)
    
    for i in range(1, 4):
        p = doc.add_paragraph()
        run = p.add_run(f'({i})______________________________')
        set_chinese_font(run, 'SimSun', 11)
        p.paragraph_format.left_indent = Inches(0.3)
    
    p = doc.add_paragraph()
    run = p.add_run('5. 写出诗句的意思')
    set_chinese_font(run, 'SimSun', 12)
    
    for i in range(1, 3):
        p = doc.add_paragraph()
        run = p.add_run(f'({i})______________________________________________')
        set_chinese_font(run, 'SimSun', 11)
        p.paragraph_format.left_indent = Inches(0.3)
    
    p = doc.add_paragraph()
    run = p.add_run('6. 这首诗表达了诗人怎样的情感?')
    set_chinese_font(run, 'SimSun', 12)
    
    p = doc.add_paragraph()
    run = p.add_run('________________________________________________________________')
    set_chinese_font(run, 'SimSun', 11)
    p.paragraph_format.left_indent = Inches(0.3)

def create_exercises_modern(lesson_name, doc):
    """生成现代文类练习题"""
    
    # 一、基础积累
    heading = doc.add_heading('一、基础积累', level=1)
    for run in heading.runs:
        set_chinese_font(run, 'SimHei', 14, True)
    
    p = doc.add_paragraph()
    run = p.add_run('1. 看拼音写词语')
    set_chinese_font(run, 'SimSun', 12)
    
    for i in range(1, 4):
        p = doc.add_paragraph()
        run = p.add_run(f'({i})(      )(      )(      )')
        set_chinese_font(run, 'SimSun', 11)
        p.paragraph_format.left_indent = Inches(0.3)
    
    p = doc.add_paragraph()
    run = p.add_run('2. 给加点字选择正确的读音,打"√"')
    set_chinese_font(run, 'SimSun', 12)
    
    p = doc.add_paragraph()
    run = p.add_run('(    )  (    )  (    )  (    )')
    set_chinese_font(run, 'SimSun', 11)
    p.paragraph_format.left_indent = Inches(0.3)
    
    p = doc.add_paragraph()
    run = p.add_run('3. 比一比,再组词')
    set_chinese_font(run, 'SimSun', 12)
    
    p = doc.add_paragraph()
    run = p.add_run('(    )——(    )  (    )——(    )')
    set_chinese_font(run, 'SimSun', 11)
    p.paragraph_format.left_indent = Inches(0.3)
    
    # 二、理解感悟
    heading = doc.add_heading('二、理解感悟', level=1)
    for run in heading.runs:
        set_chinese_font(run, 'SimHei', 14, True)
    
    p = doc.add_paragraph()
    run = p.add_run('4. 根据课文内容填空')
    set_chinese_font(run, 'SimSun', 12)
    
    for i in range(1, 4):
        p = doc.add_paragraph()
        run = p.add_run(f'({i})______________________________________________')
        set_chinese_font(run, 'SimSun', 11)
        p.paragraph_format.left_indent = Inches(0.3)
    
    p = doc.add_paragraph()
    run = p.add_run('5. 读句子,回答问题')
    set_chinese_font(run, 'SimSun', 12)
    
    p = doc.add_paragraph()
    run = p.add_run('(1)________________________________________________________________')
    set_chinese_font(run, 'SimSun', 11)
    p.paragraph_format.left_indent = Inches(0.3)
    
    p = doc.add_paragraph()
    run = p.add_run('________________________________________________________________')
    set_chinese_font(run, 'SimSun', 11)
    p.paragraph_format.left_indent = Inches(0.3)
    
    p = doc.add_paragraph()
    run = p.add_run('6. 概括课文主要内容')
    set_chinese_font(run, 'SimSun', 12)
    
    p = doc.add_paragraph()
    run = p.add_run('________________________________________________________________')
    set_chinese_font(run, 'SimSun', 11)
    p.paragraph_format.left_indent = Inches(0.3)
    
    p = doc.add_paragraph()
    run = p.add_run('________________________________________________________________')
    set_chinese_font(run, 'SimSun', 11)
    p.paragraph_format.left_indent = Inches(0.3)

def create_exercises_fable(lesson_name, doc):
    """生成寓言/童话类练习题"""
    
    # 一、基础积累
    heading = doc.add_heading('一、基础积累', level=1)
    for run in heading.runs:
        set_chinese_font(run, 'SimHei', 14, True)
    
    p = doc.add_paragraph()
    run = p.add_run('1. 看拼音写词语')
    set_chinese_font(run, 'SimSun', 12)
    
    p = doc.add_paragraph()
    run = p.add_run('(      )(      )(      )(      )')
    set_chinese_font(run, 'SimSun', 11)
    p.paragraph_format.left_indent = Inches(0.3)
    
    p = doc.add_paragraph()
    run = p.add_run('2. 给下列词语选择正确的解释')
    set_chinese_font(run, 'SimSun', 12)
    
    for i in range(1, 4):
        p = doc.add_paragraph()
        run = p.add_run(f'({i})__________________(    )')
        set_chinese_font(run, 'SimSun', 11)
        p.paragraph_format.left_indent = Inches(0.3)
    
    # 二、理解感悟
    heading = doc.add_heading('二、理解感悟', level=1)
    for run in heading.runs:
        set_chinese_font(run, 'SimHei', 14, True)
    
    p = doc.add_paragraph()
    run = p.add_run('3. 根据故事内容填空')
    set_chinese_font(run, 'SimSun', 12)
    
    p = doc.add_paragraph()
    run = p.add_run('故事的起因:______________________________________________')
    set_chinese_font(run, 'SimSun', 11)
    p.paragraph_format.left_indent = Inches(0.3)
    
    p = doc.add_paragraph()
    run = p.add_run('故事的经过:______________________________________________')
    set_chinese_font(run, 'SimSun', 11)
    p.paragraph_format.left_indent = Inches(0.3)
    
    p = doc.add_paragraph()
    run = p.add_run('故事的结果:______________________________________________')
    set_chinese_font(run, 'SimSun', 11)
    p.paragraph_format.left_indent = Inches(0.3)
    
    p = doc.add_paragraph()
    run = p.add_run('4. 这个故事告诉我们什么道理?')
    set_chinese_font(run, 'SimSun', 12)
    
    p = doc.add_paragraph()
    run = p.add_run('________________________________________________________________')
    set_chinese_font(run, 'SimSun', 11)
    p.paragraph_format.left_indent = Inches(0.3)
    
    p = doc.add_paragraph()
    run = p.add_run('5. 你喜欢故事中的谁?为什么?')
    set_chinese_font(run, 'SimSun', 12)
    
    p = doc.add_paragraph()
    run = p.add_run('________________________________________________________________')
    set_chinese_font(run, 'SimSun', 11)
    p.paragraph_format.left_indent = Inches(0.3)

def create_exercises(lesson_name, lesson_type, content_file=None):
    """生成课后练习题 Word 文档"""
    
    doc = Document()
    
    # 设置文档默认字体
    style = doc.styles['Normal']
    style.font.name = 'SimSun'
    style._element.rPr.rFonts.set(qn('w:eastAsia'), 'SimSun')
    
    # 标题
    title = doc.add_heading(f'《{lesson_name}》课后练习', level=0)
    title.alignment = WD_ALIGN_PARAGRAPH.CENTER
    for run in title.runs:
        set_chinese_font(run, 'SimHei', 18, True)
    
    # 根据课文类型生成不同练习题
    if lesson_type in ['古诗', '古诗词']:
        create_exercises_poem(lesson_name, doc)
    elif lesson_type in ['寓言', '童话']:
        create_exercises_fable(lesson_name, doc)
    else:
        create_exercises_modern(lesson_name, doc)
    
    # 三、拓展提升(通用)
    heading = doc.add_heading('三、拓展提升', level=1)
    for run in heading.runs:
        set_chinese_font(run, 'SimHei', 14, True)
    
    p = doc.add_paragraph()
    run = p.add_run('7. 联系生活实际,谈谈你的感受或收获')
    set_chinese_font(run, 'SimSun', 12)
    
    p = doc.add_paragraph()
    run = p.add_run('________________________________________________________________')
    set_chinese_font(run, 'SimSun', 11)
    p.paragraph_format.left_indent = Inches(0.3)
    
    p = doc.add_paragraph()
    run = p.add_run('________________________________________________________________')
    set_chinese_font(run, 'SimSun', 11)
    p.paragraph_format.left_indent = Inches(0.3)
    
    p = doc.add_paragraph()
    run = p.add_run('8. 创意表达(画一画、写一写、演一演)')
    set_chinese_font(run, 'SimSun', 12)
    
    p = doc.add_paragraph()
    run = p.add_run('________________________________________________________________')
    set_chinese_font(run, 'SimSun', 11)
    p.paragraph_format.left_indent = Inches(0.3)
    
    # 分页:参考答案
    doc.add_page_break()
    
    title = doc.add_heading(f'《{lesson_name}》参考答案', level=0)
    title.alignment = WD_ALIGN_PARAGRAPH.CENTER
    for run in title.runs:
        set_chinese_font(run, 'SimHei', 18, True)
    
    p = doc.add_paragraph()
    run = p.add_run('(教师根据实际教学情况填写参考答案)')
    set_chinese_font(run, 'SimSun', 12)
    
    # 保存
    output_file = f"练习题_{lesson_name}.docx"
    doc.save(output_file)
    print(f"练习题已生成: {output_file}")
    return output_file

if __name__ == "__main__":
    if len(sys.argv) < 3:
        print("用法: python generate_docx.py <课文名> <课文类型> [备课资料文件路径]")
        print("课文类型: 古诗/现代文/寓言/童话/说明文")
        sys.exit(1)
    
    lesson_name = sys.argv[1]
    lesson_type = sys.argv[2]
    content_file = sys.argv[3] if len(sys.argv) > 3 else None
    
    create_exercises(lesson_name, lesson_type, content_file)

```

### scripts/generate_ppt.py

```python
#!/usr/bin/env python3
"""
生成教案 PPT - 支持多种课文类型
用法: python generate_ppt.py <课文名> <年级> <课文类型> [备课资料文件路径]
"""

import sys
from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.enum.text import PP_ALIGN, MSO_ANCHOR
from pptx.enum.shapes import MSO_SHAPE
from pptx.dml.color import RGBColor

def create_ppt(lesson_name, grade, lesson_type, content_file=None):
    """基于备课资料生成教案 PPT"""
    
    prs = Presentation()
    prs.slide_width = Inches(13.333)
    prs.slide_height = Inches(7.5)
    
    # 根据课文类型调整副标题
    type_names = {
        '古诗': '古诗教学',
        '古诗词': '古诗教学',
        '现代文': '现代文教学',
        '散文': '散文教学',
        '寓言': '寓言教学',
        '童话': '童话教学',
        '说明文': '说明文教学'
    }
    type_display = type_names.get(lesson_type, '语文教学')
    
    # 第1页:标题页
    slide_layout = prs.slide_layouts[6]  # 空白布局
    slide = prs.slides.add_slide(slide_layout)
    
    # 添加标题背景
    shape = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, Inches(0), Inches(0), 
                                    prs.slide_width, prs.slide_height)
    shape.fill.solid()
    shape.fill.fore_color.rgb = RGBColor(70, 130, 180)
    shape.line.fill.background()
    
    # 添加标题
    title_box = slide.shapes.add_textbox(Inches(0.5), Inches(2.5), Inches(12.333), Inches(1.5))
    tf = title_box.text_frame
    p = tf.paragraphs[0]
    p.text = f"《{lesson_name}》"
    p.font.size = Pt(54)
    p.font.bold = True
    p.font.color.rgb = RGBColor(255, 255, 255)
    p.alignment = PP_ALIGN.CENTER
    
    # 副标题
    p2 = tf.add_paragraph()
    p2.text = f"{grade} {type_display}教案"
    p2.font.size = Pt(32)
    p2.font.color.rgb = RGBColor(255, 223, 186)
    p2.alignment = PP_ALIGN.CENTER
    p2.space_before = Pt(20)
    
    # 第2页:教学目标
    slide = prs.slides.add_slide(prs.slide_layouts[1])
    slide.shapes.title.text = "教学目标"
    content_shape = slide.placeholders[1]
    tf = content_shape.text_frame
    tf.text = "知识目标:"
    p = tf.add_paragraph()
    p.text = "• 认识本课生字,正确、流利地朗读课文"
    p.level = 1
    p = tf.add_paragraph()
    p.text = "• 理解课文内容,掌握重点词语"
    p.level = 1
    p = tf.add_paragraph()
    p.text = "能力目标:"
    p = tf.add_paragraph()
    p.text = "• 培养阅读理解能力和语言表达能力"
    p.level = 1
    p = tf.add_paragraph()
    p.text = "情感目标:"
    p = tf.add_paragraph()
    p.text = "• 体会课文情感,激发学习兴趣"
    p.level = 1
    
    # 第3页:教学重难点
    slide = prs.slides.add_slide(prs.slide_layouts[1])
    slide.shapes.title.text = "教学重难点"
    content_shape = slide.placeholders[1]
    tf = content_shape.text_frame
    tf.text = "教学重点:"
    p = tf.add_paragraph()
    p.text = "• 理解课文主要内容"
    p.level = 1
    p = tf.add_paragraph()
    p.text = "• 掌握重点字词,正确流利朗读"
    p.level = 1
    p = tf.add_paragraph()
    p.text = "教学难点:"
    p = tf.add_paragraph()
    p.text = "• 体会课文表达的思想感情"
    p.level = 1
    p = tf.add_paragraph()
    p.text = "• 学习作者的表达方法"
    p.level = 1
    
    # 第4页:教学过程-导入
    slide = prs.slides.add_slide(prs.slide_layouts[1])
    slide.shapes.title.text = "教学过程 - 导入新课"
    content_shape = slide.placeholders[1]
    tf = content_shape.text_frame
    tf.text = "一、创设情境,导入新课(5分钟)"
    p = tf.add_paragraph()
    p.text = "• 谈话导入,激发兴趣"
    p.level = 1
    p = tf.add_paragraph()
    p.text = "• 揭示课题,齐读课题"
    p.level = 1
    p = tf.add_paragraph()
    p.text = "• 简介作者/背景(如需要)"
    p.level = 1
    
    # 第5页:教学过程-初读
    slide = prs.slides.add_slide(prs.slide_layouts[1])
    slide.shapes.title.text = "教学过程 - 初读感知"
    content_shape = slide.placeholders[1]
    tf = content_shape.text_frame
    tf.text = "二、初读课文,整体感知(10分钟)"
    p = tf.add_paragraph()
    p.text = "• 自由朗读课文,标出生字词"
    p.level = 1
    p = tf.add_paragraph()
    p.text = "• 检查生字词认读情况"
    p.level = 1
    p = tf.add_paragraph()
    p.text = "• 指名分段朗读课文"
    p.level = 1
    p = tf.add_paragraph()
    p.text = "• 思考:课文主要讲了什么?"
    p.level = 1
    
    # 第6页:教学过程-精读
    slide = prs.slides.add_slide(prs.slide_layouts[1])
    slide.shapes.title.text = "教学过程 - 精读理解"
    content_shape = slide.placeholders[1]
    tf = content_shape.text_frame
    tf.text = "三、精读课文,深入理解(15分钟)"
    p = tf.add_paragraph()
    p.text = "• 品读重点段落,理解关键词句"
    p.level = 1
    p = tf.add_paragraph()
    p.text = "• 讨论交流,体会情感"
    p.level = 1
    p = tf.add_paragraph()
    p.text = "• 指导有感情地朗读"
    p.level = 1
    p = tf.add_paragraph()
    p.text = "• 学习写作方法(如适用)"
    p.level = 1
    
    # 第7页:教学过程-巩固
    slide = prs.slides.add_slide(prs.slide_layouts[1])
    slide.shapes.title.text = "教学过程 - 巩固拓展"
    content_shape = slide.placeholders[1]
    tf = content_shape.text_frame
    tf.text = "四、总结提升,拓展延伸(10分钟)"
    p = tf.add_paragraph()
    p.text = "• 回顾课文主要内容"
    p.level = 1
    p = tf.add_paragraph()
    p.text = "• 总结学习收获"
    p.level = 1
    p = tf.add_paragraph()
    p.text = "• 拓展阅读/相关练习"
    p.level = 1
    p = tf.add_paragraph()
    p.text = "• 布置课后作业"
    p.level = 1
    
    # 第8页:板书设计
    slide = prs.slides.add_slide(prs.slide_layouts[1])
    slide.shapes.title.text = "板书设计"
    content_shape = slide.placeholders[1]
    tf = content_shape.text_frame
    tf.text = f"《{lesson_name}》"
    p = tf.add_paragraph()
    p.text = ""
    p = tf.add_paragraph()
    p.text = "【主要内容】"
    p = tf.add_paragraph()
    p.text = ""
    p = tf.add_paragraph()
    p.text = "【重点字词】"
    p = tf.add_paragraph()
    p.text = ""
    p = tf.add_paragraph()
    p.text = "【中心思想】"
    
    # 第9页:作业布置
    slide = prs.slides.add_slide(prs.slide_layouts[1])
    slide.shapes.title.text = "作业布置"
    content_shape = slide.placeholders[1]
    tf = content_shape.text_frame
    tf.text = "1. 熟读课文,背诵重点段落(如需要)"
    p = tf.add_paragraph()
    p.text = "2. 抄写生字词,完成课后习题"
    p = tf.add_paragraph()
    p.text = "3. 预习下一课内容"
    p = tf.add_paragraph()
    if lesson_type in ['古诗', '古诗词']:
        p = tf.add_paragraph()
        p.text = "4. 搜集其他相关古诗,读一读"
    else:
        p = tf.add_paragraph()
        p.text = "4. 观察生活中的相关现象,写几句话"
    
    # 保存
    output_file = f"教案_{lesson_name}.pptx"
    prs.save(output_file)
    print(f"PPT 已生成: {output_file}")
    return output_file

if __name__ == "__main__":
    if len(sys.argv) < 4:
        print("用法: python generate_ppt.py <课文名> <年级> <课文类型> [备课资料文件路径]")
        print("课文类型: 古诗/现代文/寓言/童话/说明文")
        sys.exit(1)
    
    lesson_name = sys.argv[1]
    grade = sys.argv[2]
    lesson_type = sys.argv[3]
    content_file = sys.argv[4] if len(sys.argv) > 4 else None
    
    create_ppt(lesson_name, grade, lesson_type, content_file)

```

teacher-prep | SkillHub