自定义导出:如何配置 Word 模板以符合本校教务处的要求?
前言: 每个学校的教学日历和教学大纲格式各不相同。为了避免“下载后还要手动排版”的尴尬,我们的系统采用了强大的 docxtpl 引擎。这意味着你可以直接在 Microsoft Word 中像写“填空题”一样设计模板,系统会自动将 AI 生成的内容填入指定位置。
1. 核心原理:Jinja2 标签
在 Word 模板中,任何被双大括号包围的内容(如 {{ course_name }})都会被系统识别为一个“变量槽”。
- 简单文本:直接输入
{{ 变量名 }}。 - 手写签名:直接在需要签名的地方输入
{{ teacher_sign_img }},系统会自动插入上传的图片。
2. 变量清单(直接复制到 Word 使用)
下表列出了系统目前支持的所有变量名,请确保在 Word 模板中拼写完全一致:
| 功能模块 | Word 中的标签名 (需带 {{ }}) | 说明 |
|---|---|---|
| 基础信息 | school_name / course_name | 学校名称 / 课程名称 |
| 教师信息 | teacher_name / teacher_title | 教师姓名 / 职称 |
| 学时分配 | total_hours / lecture_hours | 总学时 / 讲课学时 |
| 进度表内容 | schedule (见下方特殊说明) | 整个教学进度表格 |
| 多级审批 | head_opinion / dean_opinion | 系主任意见 / 院长意见 |
| 手写签名 | teacher_sign_img / head_sign_img | 自动插入手写签名图片 |
3. 高级进阶:如何处理教学进度表?
教学日历中的“进度安排”通常是一个多行表格。在 Word 中,你只需要保留一行示例行,并在该行内使用循环指令:
- 在表格行首(第一格)输入:
{% tr for item in schedule %}。 - 在单元格内使用
item来引用内容,如:{{ item.week }}、{{ item.content }}。 - 在行尾(最后一格内容后)输入:
{% endfor %}。
4. 如何更换模板文件?
- 本地设计:打开
template_general.docx,根据教务处要求的字体、字号、边距进行调整,并在相应位置填入上述标签。 - 上传同步:将修改好的
.docx文件直接拖入你的 GitHub 仓库根目录,替换原文件。 - 自动生效:Cloudflare Pages 会感应到文件变化并重新构建,你的下载功能将立即输出新格式。
专家提醒: 如果在 Word 中输入的标签被断开了(例如显示为 {{ course_ 和 name }}),AI 识别会失效。建议先在记事本中写好 {{ course_name }},再整体粘贴进 Word。