Skip to content

自定义导出:如何配置 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 中,你只需要保留一行示例行,并在该行内使用循环指令:

  1. 在表格行首(第一格)输入:{% tr for item in schedule %}
  2. 在单元格内使用 item 来引用内容,如:{{ item.week }}{{ item.content }}
  3. 在行尾(最后一格内容后)输入:{% endfor %}

4. 如何更换模板文件?

  1. 本地设计:打开 template_general.docx,根据教务处要求的字体、字号、边距进行调整,并在相应位置填入上述标签。
  2. 上传同步:将修改好的 .docx 文件直接拖入你的 GitHub 仓库根目录,替换原文件。
  3. 自动生效:Cloudflare Pages 会感应到文件变化并重新构建,你的下载功能将立即输出新格式。

专家提醒: 如果在 Word 中输入的标签被断开了(例如显示为 {{ course_name }}),AI 识别会失效。建议先在记事本中写好 {{ course_name }},再整体粘贴进 Word。