#!/usr/bin/env python3
"""生成《基础泰语1》第九课教学大纲 Word 文档"""

from docx import Document
from docx.shared import Pt, Inches, Cm, RGBColor
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.enum.table import WD_TABLE_ALIGNMENT
from docx.oxml.ns import qn
import os

doc = Document()

# ── 全局样式 ──
style = doc.styles['Normal']
font = style.font
font.name = '宋体'
font.size = Pt(11)
style.element.rPr.rFonts.set(qn('w:eastAsia'), '宋体')

def add_heading_cn(text, level=1):
    h = doc.add_heading(text, level=level)
    for run in h.runs:
        run.font.name = '黑体'
        run.element.rPr.rFonts.set(qn('w:eastAsia'), '黑体')
    return h

def add_para(text, bold=False, indent=False):
    p = doc.add_paragraph()
    if indent:
        p.paragraph_format.first_line_indent = Cm(0.74)
    run = p.add_run(text)
    run.font.name = '宋体'
    run.element.rPr.rFonts.set(qn('w:eastAsia'), '宋体')
    run.font.size = Pt(11)
    run.bold = bold
    return p

def add_bullet(text, level=0):
    p = doc.add_paragraph(style='List Bullet')
    p.clear()
    run = p.add_run(text)
    run.font.name = '宋体'
    run.element.rPr.rFonts.set(qn('w:eastAsia'), '宋体')
    run.font.size = Pt(11)
    return p

def set_cell_font(cell, text, bold=False, size=10):
    cell.text = ''
    p = cell.paragraphs[0]
    run = p.add_run(text)
    run.font.name = '宋体'
    run.element.rPr.rFonts.set(qn('w:eastAsia'), '宋体')
    run.font.size = Pt(size)
    run.bold = bold

def set_header_row(table, row_idx, texts):
    for i, text in enumerate(texts):
        cell = table.cell(row_idx, i)
        set_cell_font(cell, text, bold=True, size=10)
        # 灰色背景
        shading = cell._element.get_or_add_tcPr()
        shd = shading.makeelement(qn('w:shd'), {
            qn('w:fill'): 'D9E2F3',
            qn('w:val'): 'clear',
        })
        shading.append(shd)

# ══════════════════════════════════════════════
# 标题
# ══════════════════════════════════════════════
title = doc.add_paragraph()
title.alignment = WD_ALIGN_PARAGRAPH.CENTER
run = title.add_run('《基础泰语1》第九课 清尾辅音\n教学大纲')
run.font.name = '黑体'
run.element.rPr.rFonts.set(qn('w:eastAsia'), '黑体')
run.font.size = Pt(18)
run.bold = True

doc.add_paragraph()  # 空行

# ══════════════════════════════════════════════
# 一、课程概述
# ══════════════════════════════════════════════
add_heading_cn('一、课程概述', level=2)

table = doc.add_table(rows=6, cols=2, style='Table Grid')
table.alignment = WD_TABLE_ALIGNMENT.CENTER

data = [
    ('课题', '清尾辅音（เสียงพยัญชนะท้าย / ตัวสะกด）'),
    ('教材', '廖宇夫《基础泰语1》（世界图书出版公司）'),
    ('建议课时', '6–8 课时（每课时 45 分钟）'),
    ('前置知识', '中/高/低辅音、单元音/复合元音、声调规则（第1–8课）'),
    ('后续衔接', '第十课 浊尾辅音'),
    ('适用对象', '泰语零基础 / 二外学习者（已完成第1–8课学习）'),
]
for i, (k, v) in enumerate(data):
    set_cell_font(table.cell(i, 0), k, bold=True)
    set_cell_font(table.cell(i, 1), v)

doc.add_paragraph()

# ══════════════════════════════════════════════
# 二、教学目标
# ══════════════════════════════════════════════
add_heading_cn('二、教学目标', level=2)

add_para('【知识目标】', bold=True)
add_bullet('掌握泰语清尾辅音的概念：-ง / -น / -ม / -ย / -ว 五个尾音')
add_bullet('理解元音在加尾辅音后的变形规则')
add_bullet('掌握中、高、低辅音音节加清尾辅音后的声调规则')

add_para('【技能目标】', bold=True)
add_bullet('能正确拼读带清尾辅音的单音节和多音节词')
add_bullet('能区分近似的清尾辅音发音（如 -ง 与 -น 的听辨）')
add_bullet('能朗读课文会话，语音语调准确')
add_bullet('能运用本课词汇和句型进行简单对话')

add_para('【情感目标】', bold=True)
add_bullet('建立对泰语拼音体系的系统认知')
add_bullet('克服尾辅音发音的心理障碍，建立自信心')

doc.add_paragraph()

# ══════════════════════════════════════════════
# 三、教学内容
# ══════════════════════════════════════════════
add_heading_cn('三、教学内容', level=2)

add_para('3.1 清尾辅音总览', bold=True)

table2 = doc.add_table(rows=6, cols=4, style='Table Grid')
table2.alignment = WD_TABLE_ALIGNMENT.CENTER
set_header_row(table2, 0, ['泰语名称', '尾辅音', '国际音标', '发音说明'])
for i, (name, cons, ipa, desc) in enumerate([
    ('แม่กง', '-ง', '[-ŋ]', 'ng 鼻音，类似"帮 bāng"的韵尾'),
    ('แม่กน', '-น', '[-n]', 'n 鼻音，类似"班 bān"的韵尾'),
    ('แม่กม', '-ม', '[-m]', 'm 鼻音，类似粤语"三 saam"的韵尾'),
    ('แม่เกย', '-ย', '[-j]', 'y 半元音，类似英文 boy 的 y'),
    ('แม่เกอว', '-ว', '[-w]', 'w 半元音，类似英文 cow 的 w'),
]):
    set_cell_font(table2.cell(i+1, 0), name)
    set_cell_font(table2.cell(i+1, 1), cons)
    set_cell_font(table2.cell(i+1, 2), ipa)
    set_cell_font(table2.cell(i+1, 3), desc)

doc.add_paragraph()

add_para('3.2 元音加尾辅音后的变形（教材 p90）', bold=True)
add_bullet('短元音 -ะ 系列变形：-ะ → -ั-（如：จะ → จัง）')
add_bullet('长元音 -า 系列变形：保持 -า 形（如：มา → มาง）')
add_bullet('复合元音的变形规则（如 เ-ียะ → เ-ีย 等）')
add_bullet('特殊元音（ใ- / ไ- / เ-า / ฤ 等）不变形')

doc.add_paragraph()

add_para('3.3 清尾辅音与元音拼读表（教材 p91）', bold=True)
add_para('按元音组 × 五组尾辅音 构建拼读矩阵，涵盖所有可能组合。', indent=True)

doc.add_paragraph()

add_para('3.4 声调规则（教材 p93-94）', bold=True)
add_para('清尾辅音属于舒声韵（เสียงเป็น），音节声调延续原有辅音类别的声调规则：', indent=True)
add_bullet('中辅音 + 清尾辅音 → 可拼第1–5声（全部五声）')
add_bullet('高辅音 + 清尾辅音 → 第5声（类似汉语第三声）')
add_bullet('低辅音 + 清尾辅音 → 第1声（平调）')
add_para('★ 关键：与无尾辅音音节的声调规则做对比记忆。', indent=True)

doc.add_paragraph()

add_para('3.5 词汇表（教材 p94-95）', bold=True)
add_para('涵盖日常生活高频词，按尾辅音分组呈现。重点词类包括：颜色类、数字类、身体部位类、日常物品类、动作类。每个词附带拼读分解练习。', indent=True)

doc.add_paragraph()

add_para('3.6 课文与会话（教材 p95-96）', bold=True)
add_bullet('课文：围绕日常生活场景的短文')
add_bullet('会话：包含本课语法和词汇的交际对话')
add_bullet('配套注释：语法点、文化点说明')

doc.add_paragraph()

add_para('3.7 句型（教材 p96）', bold=True)
add_bullet('基本肯定句 / 否定句')
add_bullet('疑问句（ใช่ไหม / หรือ / ไหม 等）')
add_bullet('本课重点固定搭配')

doc.add_paragraph()

# ══════════════════════════════════════════════
# 四、教学重点与难点
# ══════════════════════════════════════════════
add_heading_cn('四、教学重点与难点', level=2)

add_para('4.1 教学重点', bold=True)
add_bullet('五组清尾辅音的发声机制与拼读规则')
add_bullet('带尾辅音后的声调规则（特别是高低辅音变化）')
add_bullet('元音变形规则（-ะ → -ั- 系列）')

add_para('4.2 教学难点', bold=True)
add_bullet('-ŋ / -n / -m 三个鼻韵尾的听辨区分（中文母语者常见混淆）')
add_bullet('长/短音在带尾辅音时的保持（如 -ัง vs -าง）')
add_bullet('声调在舒声韵中的实际发音（理论规则 vs 自然语流）')

add_para('4.3 常见错误预判', bold=True)
add_bullet('-ง 与 -น 混淆：把 บาง [baːŋ] 发成 บัน [ban]')
add_bullet('短元音加尾辅音后读成长元音')
add_bullet('低辅音加清尾辅音声调读错（应读平调但读成降调）')

doc.add_paragraph()

# ══════════════════════════════════════════════
# 五、课时安排
# ══════════════════════════════════════════════
add_heading_cn('五、课时安排（建议 7 课时）', level=2)

table3 = doc.add_table(rows=8, cols=3, style='Table Grid')
table3.alignment = WD_TABLE_ALIGNMENT.CENTER
set_header_row(table3, 0, ['课时', '教学主题', '课型'])
for i, (period, topic, ttype) in enumerate([
    ('第1课时', '清尾辅音概念导入、-ง / -น / -ม 鼻韵尾发音练习', '语音课'),
    ('第2课时', '-ย / -ว 半元音尾、五组尾辅音对比训练', '语音课'),
    ('第3课时', '元音变形规则详解 + 拼读表练习', '讲练课'),
    ('第4课时', '声调规则精讲（中/高/低辅音 + 清尾辅音）', '规则课'),
    ('第5课时', '单词拼读训练（按尾辅音分组）', '操练课'),
    ('第6课时', '课文朗读 + 会话分角色练习 + 句型讲解', '综合课'),
    ('第7课时', '复习巩固 + 课堂练习 + 听写检测', '复习课'),
]):
    set_cell_font(table3.cell(i+1, 0), period)
    set_cell_font(table3.cell(i+1, 1), topic)
    set_cell_font(table3.cell(i+1, 2), ttype)

doc.add_paragraph()

# ══════════════════════════════════════════════
# 六、各环节详细设计
# ══════════════════════════════════════════════
add_heading_cn('六、各环节详细设计', level=2)

# 第1-2课时
add_para('第1–2课时：清尾辅音发音入门', bold=True)
add_para('【导入】（5分钟）', bold=True)
add_para('对比中文"三"（sān）vs 泰语"สาม"（sǎam），引出 -m 尾辅音概念；展示尾辅音在泰语中的广泛性和重要性。', indent=True)

add_para('【新课讲授】（30分钟）', bold=True)
add_bullet('逐组讲解发音部位与方法（建议配合口腔示意图）')
add_bullet('教师领读 → 学生跟读 → 个别纠正')
add_bullet('最小对比对练习（如 กาง vs กาน vs กาม）')

add_para('【巩固练习】（10分钟）', bold=True)
add_bullet('听辨：教师读音节，学生判断尾辅音')
add_bullet('快问快答：随机抽音节，学生拼读')

doc.add_paragraph()

# 第3课时
add_para('第3课时：元音变形', bold=True)
add_para('【核心规则】', bold=True)
add_bullet('-ะ 短元音系列 → 去掉 -ะ，尾辅音直接加在辅音后')
add_bullet('อัว → -ว- 本是半元音，加尾辅音后 -ว 融入元音部分')
add_bullet('部分复合元音存在变形（参照教材 p90 表格）')

add_para('【操练方式】', bold=True)
add_bullet('板书对比：无尾辅音 → 有尾辅音（逐组对照）')
add_bullet('分组拼读表地毯式训练')

doc.add_paragraph()

# 第4课时
add_para('第4课时：声调规则', bold=True)
add_para('【公式化记忆】', bold=True)
add_bullet('中辅音 + 清尾辅音 = 可用第1–5声（全部五声可用）')
add_bullet('高辅音 + 清尾辅音 = 第5声（发音类似汉语第三声）')
add_bullet('低辅音 + 清尾辅音 = 第1声（平调）')

add_para('【对比练习】', bold=True)
add_bullet('同一辅音，有无尾辅音声调对比')
add_bullet('同一尾辅音，不同辅音类别声调对比')

doc.add_paragraph()

# 第5课时
add_para('第5课时：词汇操练', bold=True)
add_para('【分组策略】', bold=True)
add_bullet('按尾辅音分组：-ง组 / -น组 / -ม组 / -ย组 / -ว组')
add_bullet('每组选代表词拆解拼读，然后扩展到全组')

add_para('【操练形式】', bold=True)
add_bullet('跟读 → 齐读 → 个别读')
add_bullet('看图说词 / 听词指图 / 闪卡速认')

doc.add_paragraph()

# 第6课时
add_para('第6课时：课文会话', bold=True)
add_para('【课文处理】', bold=True)
add_bullet('听录音 → 整体感知')
add_bullet('逐句讲解 → 拼读难点词 → 翻译')
add_bullet('领读 → 齐读 → 分角色朗读')

add_para('【会话处理】', bold=True)
add_bullet('教师示范 + 学生跟读')
add_bullet('两人一组对话练习')
add_bullet('替换练习：用本课词汇替换关键词造句')

doc.add_paragraph()

# 第7课时
add_para('第7课时：综合复习与检测', bold=True)
add_para('【复习环节】（25分钟）', bold=True)
add_bullet('快速回顾五组尾辅音拼读')
add_bullet('声调规则口答')
add_bullet('单词听写（10–15个）')

add_para('【检测环节】（20分钟）', bold=True)
add_bullet('听写：教师读，学生写（泰文 + 中文含义）')
add_bullet('朗读检测：每人随机抽3–5个词朗读')
add_bullet('短句翻译：中→泰')

doc.add_paragraph()

# ══════════════════════════════════════════════
# 七、课后练习与巩固
# ══════════════════════════════════════════════
add_heading_cn('七、课后练习与巩固', level=2)

add_para('7.1 教材练习（p97+）', bold=True)
add_bullet('单音节拼读练习')
add_bullet('แม่กง / แม่กน / แม่กม 尾辅音朗读练习')
add_bullet('-ง / -น 尾音区分练习')
add_bullet('区分相近音节（最小对比对）')
add_bullet('长、短音区分练习')

add_para('7.2 推荐补充练习', bold=True)
add_bullet('每天朗读拼读表 10 分钟')
add_bullet('制作五色卡片（五组尾辅音各一色），随机抽读')
add_bullet('用本课词汇自行造句 5 句')
add_bullet('听 B站/YouTube 配套录音跟读模仿')

doc.add_paragraph()

# ══════════════════════════════════════════════
# 八、教学资源
# ══════════════════════════════════════════════
add_heading_cn('八、教学资源', level=2)

table4 = doc.add_table(rows=5, cols=2, style='Table Grid')
table4.alignment = WD_TABLE_ALIGNMENT.CENTER
set_header_row(table4, 0, ['资源', '说明'])
for i, (res, desc) in enumerate([
    ('主教材', '廖宇夫《基础泰语1》（世界图书出版公司）'),
    ('配套音频', '教材配套 MP3 / 利力泰学院长 B站讲解系列'),
    ('辅助视频', '泰语学习联盟"牙牙老师《基础泰语1》"B站系列'),
    ('线上练习', 'Quizlet 闪卡 / 自制 Anki 词库 / 微信群打卡'),
]):
    set_cell_font(table4.cell(i+1, 0), res)
    set_cell_font(table4.cell(i+1, 1), desc)

doc.add_paragraph()

# ══════════════════════════════════════════════
# 教学提示
# ══════════════════════════════════════════════
add_heading_cn('九、教学提示', level=2)

tips = [
    '清尾辅音是泰语语音从"开音节"迈向"闭音节"的关键跳板。这一课学扎实了，第十课浊尾辅音就会好过很多。',
    '建议在这一课多花时间做听辨训练（尤其是 -ŋ / -n / -m 三组鼻韵尾），宁可慢，不要赶。',
    '声调规则建议用"公式化"方式记忆，辅以大量例词朗读，形成肌肉记忆。',
    '课后要求学生每天至少朗读 10 分钟拼读表，语音学习没有捷径，靠的就是反复。',
    '注意纠正学生用汉语拼音类比泰语发音的习惯，-m 韵尾在普通话中已消失，学生容易遗漏。',
]
for tip in tips:
    add_bullet(tip)

# ── 保存 ──
out_path = os.path.expanduser('~/.openclaw/workspace/基础泰语1_第九课_清尾辅音_教学大纲.docx')
doc.save(out_path)
print(f'✅ 已生成：{out_path}')
