Resources
5Install
npx skillscat add oo0816/japanese-exam-review-skill Install via the SkillsCat registry.
日语考试复习文档生成器
概述
为软件工程中日合作办学项目的学生,根据日语授课的 CS 专业课课件和历年试卷,自动生成复习文档 PDF。支持日语讲义 PDF 和 PPTX 两种源文件格式。用户是 CS 专业学生,用日语学习软件工程课程(计算机网络、数据库、操作系统、数据结构等)。
触发条件
本 Skill 同时满足以下两个要素时触发:
要素 A — 日语相关:提及"日语""日文""日本語""Japanese""Japan",或日本学校/教师/教材/考试/授课
要素 B — CS 专业课:提及计算机网络、数据库、操作系统、数据结构、算法、软件工程、编程语言(Java/C/Python 等)、计算机组成原理、编译原理等
"帮我把计算机网络PPT整理成复习文档" ❌(未涉及日语)
"帮我学日语语法" ❌(不是专业课)
前置确认(必须执行)
!! 强制执行 !! — 未获得用户明确答复前,禁止进行任何文件解析或内容生成。
使用 AskUserQuestion 工具依次确认三项:
第1问 — 模式选择:
- 模式一:仅课件 → 复习文档(术语表 + 知识点 + 重点图 + 对比表格)
- 模式二:课件 + 历年试卷 → 考点分析 + 高频考点精讲 + 未考重点预警
- 若
exams/目录为空,自动跳过,仅模式一可用
第2问 — 输出语言:
jp_first(推荐):日语原文在上方,中文完整翻译在下方,段落交错排列。每个知识点顶部有关键词标签。重要概念处用表格对比chinese_annotated:中文为主叙述语言,重点词汇用英文和日文标注,重要概念处用表格对比
第3问 — 其他需求:特别关注的章节/范围?需要强调的考点或易错点?输出文件名要求?
输出语言详解
jp_first(日语为主 + 中文翻译)
每个 section 包含以下元素,按顺序排列:
| 元素 | 说明 | 字号/颜色 |
|---|---|---|
| 章节概览(overview) | 日语简介 + 中文简介(用 \n\n 分隔),中文部分用灰色小字 |
8.5pt #3c1e1e / 7pt #646464 |
| 术语表(term_table) | 日语→读音→中文→说明,深色表头+交替行色 | 表头 7.5pt #fff / 表体 7pt #282828 |
| 知识点卡片(concept_card) | 标题 + Keywords标签 + 日语正文 + 中文翻译(交错排列) | 见视觉规范 |
| 对比表格(term_table) | 重要概念对比(TCP vs UDP、回線交換 vs パケット交換等) | 同上 |
| 图片(image) | 每章 2-3 张核心架构/协议图 | 8pt #b43232 图注 |
| 考试提示(highlight_box) | 红色文字,无背景框 | 8.5pt #c83232 |
概念卡片(concept_card)内部结构(从上到下):
- 章节标题 — 12pt #283c5a 加粗,带 ★ 重要度标记
- 【Keywords】标签行 — 7pt #283246 加粗,列出本知识点关键术语
- 日语原文段落 — 8.5pt #3c1e1e(深棕)
- 中文翻译段落 — 8.5pt #283c5a,浅蓝背景 #f0f4fa 填充,无边框
- 日语和中文段落按
\n\n拆分后交错排列,一段日语紧跟一段中文 - 卡片之间无分隔线
- 考试提示 — 8.5pt #c83232,紧跟对应知识点段落
chinese_annotated(中文为主 + 术语标注)
每个 section 元素同上,区别在于 concept_card 结构:
- 章节标题 — 12pt #283c5a 加粗,带 ★ 重要度标记
- 【Keywords】标签行 — 7pt #283246 加粗
- 中文正文 — 8.5pt #3c1e1e。所有关键术语必须同时标注英文和日文,格式为「中文(English / 日本語)」,英文和日文两项缺一不可。首次出现的术语用完整标注,同段落内再次出现时可仅用中文。
- 无独立翻译段落(中文即是主语言)
工作流程
模式一:课件 → 复习文档
1. 解析课件
根据 ppt/ 目录中的文件格式自动选择解析方式:
- PDF 讲义(
*.pdf):运行python scripts/parse_pdf_lecture.py - PPTX 课件(
*.pptx):运行python scripts/parse_ppt.py
结果统一写入 output/parsed_ppt.json,图片保存到 output/images/。
2. 筛选重点图片
- 仅保留有实质内容的图片:系统架构图、网络拓扑图、算法流程图、时序图、关键公式/表格截图
- 舍弃:小图标、装饰图、背景图、Logo、无意义的插图
- 如果某章节没有重点图片,则不放图片,不强制每章必须有
- 有重点图片的章节按需放入,数量不限
- 筛选完成后输出清单(图片名 → 对应章节 → 选用理由)
3. 生成内容 JSON
按内容 JSON 规范(见下文)编写。
组织要求:
- 按课件自然章节划分 section
jp_first模式:content(日语)和 translation(中文)段落数一致,用\n\n分隔chinese_annotated模式:content 写中文正文,无需 translation 字段- 每个 section 必须包含:概览、术语表、2-4 个概念卡片
- 表格按需使用——适合集中呈现的内容(对比、分类、并列、记忆点)用表格,不适合则用文字叙述
- 图片仅在有关键架构图/流程图时加入,无重点则跳过
- 每个 concept_card 必须提供
keywords数组
4. 知识点覆盖核查(必须)
运行自动检查:
python scripts/check_coverage.py output/content_mode1.json该脚本逐页比较 parsed_ppt.json 中的术语与 content JSON 中的已覆盖术语,输出:
- 覆盖率百分比
- 0 覆盖页面清单(附未覆盖术语样本)
目标覆盖率 ≥ 85%。对未覆盖页面逐条判断:非内容页(目录/测验链接等)可忽略,有实质内容的需补充对应 block。
5. 生成 PDF
python scripts/generate_pdf.py output/content_mode1.json -o output/review.pdf -l <语言选择>若 output/images/ 无对应图片,自动跳过不报错。
模式二:课件 + 试卷 → 考点复习文档
- 解析课件 + 试卷(
parse_pdf.py),读取parsed_ppt.json和parsed_exams.json - 识别题型、提取考点关键词、统计频次和分值
- 交叉分析:高频考点(≥2次)、未考重点、易错题型
- 生成 content JSON(考试情报 + 高频排行 + 逐考点精讲 + 未考预警 + 易错分析)
- 覆盖核查(同模式一步骤4)
- 生成 PDF
内容 JSON 规范
顶层结构
{
"title": "复习文档标题",
"subtitle": "副标题(可选)",
"sections": [
{
"title": "章节标题",
"overview": "章节概览。jp_first模式用\\n\\n分隔日语和中文",
"blocks": [ {块1}, {块2}, ... ]
}
]
}支持的块类型
term_table — 术语表 / 对比表格
{
"type": "term_table",
"columns": ["列1标题", "列2标题", ...],
"col_widths": [40, 60, 75],
"rows": [
["单元格", "单元格", ...],
...
]
}术语表:4列(日本語·読み方·中国語·説明)。对比表格:3-5列(对比维度 + 各方案列)。col_widths 单位 mm,可省略。
concept_card — 知识点卡片
{
"type": "concept_card",
"title": "知识点标题(中日双语)",
"content": "jp_first: 日语原文。chinese_annotated: 中文正文。段落用\\n\\n分隔。",
"translation": "仅jp_first模式。中文完整翻译。段落数与content对齐,\\n\\n分隔。",
"keywords": ["关键术语1", "关键术语2"],
"importance": 3,
"exam_tip": "考试提示(红色渲染)",
"key_point": "重点记忆内容(深蓝色渲染)",
"example": "补充说明(灰色小字,可选)"
}| 字段 | 必需 | 说明 |
|---|---|---|
title |
是 | 中日双语标题 |
content |
是 | 主语言正文,段落用 \n\n 分隔 |
translation |
jp_first 必需 | 完整中文翻译,段落数匹配 content |
keywords |
是 | 至少 3-8 个关键术语 |
importance |
否 | 1-3,渲染为 ★ |
exam_tip |
否 | 红色考试要点 |
key_point |
否 | 深蓝色重点记忆 |
example |
否 | 灰色补充说明 |
image — 图片
{
"type": "image",
"file": "slide3_img1.png",
"caption": "図1: TCPの3ウェイハンドシェイク (三次握手)"
}file: 相对于 output/images/ 的文件名。caption: 中日双语图注。
highlight_box — 高亮提示
{
"type": "highlight_box",
"box_type": "danger",
"label": "网络安全重点概念",
"content": "1. 计算机病毒·蠕虫:WannaCry...\n2. DoS/DDoS攻击:..."
}box_type: "danger"(红) / "warning"(红) / "info"(深蓝) / "tip"(灰)。label 和 content 均用红色渲染。
视觉规范
两种输出语言各有独立的视觉预设,通过 generate_pdf.py 的 -l 参数切换。
jp_first(增强可读性)
| 元素 | 色值 | 字号/样式 |
|---|---|---|
| 章节标题 | #1a3a5c |
17pt 加粗 |
| 小节标题 | #283c5a |
12pt 加粗 |
| 日语正文 | #222222 |
8.5pt |
| 中文翻译正文 | #1e5080 |
8.5pt |
| 翻译段落背景 | #edf2f8 |
浅蓝填充,无边框 |
| Keywords 标签 | #283246 |
7pt 加粗 |
| 考试提示 | #c83232 |
8.5pt |
| 图注 | #505050 |
8pt |
| 注释/概述中文 | #646464 |
7pt |
| 表格表头 | #ffffff / #283c5a 底 |
7.5pt 加粗 |
| 表格正文 | #222222 |
7pt |
| 表格交替行 | #f2f5fa / #ffffff |
— |
| 表格边框 | #d0d5e0 |
有 |
| 卡片间距 | 4pt | — |
chinese_annotated(SE 指南原版 + 宋体中文 + 标注着色)
| 元素 | 色值 | 字号/样式 | 字体 |
|---|---|---|---|
| 章节标题 | #1a3a5c |
17pt 加粗 | SimSun(宋体) |
| 小节标题 | #283c5a |
12pt 加粗 | SimSun(宋体) |
| 中文正文 | #323232 |
8.5pt | SimSun(宋体) |
术语标注 (English / 日本語) |
#1a7a5c |
8.5pt | SimSun(宋体) |
| 关键词标注 | 行内(English / 日本語)格式 | 8.5pt | — |
| Keywords 标签 | #283246 |
7pt 加粗 | NotoSansSC |
| 考试提示 | #c83232 |
8.5pt | SimSun(宋体) |
| 图注 | #505050 |
8pt | NotoSansSC |
| 注释/概述中文 | #646464 |
7pt | SimSun(宋体) |
| 概述日文 | #323232 |
8.5pt | NotoSansSC |
| 表格表头 | #ffffff / #283c5a 底 |
7.5pt 加粗 | NotoSansSC |
| 表格正文 | #282828 |
7pt | NotoSansSC |
| 表格交替行 | #f8f8fc / #ffffff(微妙) |
— | — |
| 表格边框 | 无 | — | — |
| 卡片间距 | 2pt | — | — |
字体规则:中文正文、标题使用 SimSun(宋体,衬线/学术风格);日文术语、表格、概述日文部分使用 NotoSansSC(无衬线/黑体,完整覆盖假名)。SimSun 不支持日文中点
・(U+30FB),渲染时自动替换为·(U+00B7)。
共用参数
| 参数 | 值 |
|---|---|
| 左边距 / 右边距 | 16mm / 17mm |
| 正文行高 | 6.0pt |
| 表格行高 | 5.5pt |
| 自动分页边距 | 15mm |
| 字体 | NotoSansSC |
内容质量要求
- 术语准确:日语术语与课件原文一致,中文译名使用大陆 CS 标准译名
- 英日双语标注(chinese_annotated 强制):正文中每个关键术语首次出现时必须同时标注英文和日文,格式为「中文(English / 日本語)」。英文在前、日文在后,两项缺一不可。例:「广域网(Wide Area Network / WAN)」「传输控制协议(Transmission Control Protocol / TCP)」。术语表(term_table)也须包含日文·读法·中文·英文四列
- 保留日语原表述:关键定义保留日语原文,确保学生能对应考试中的日语表述
- 翻译完整(jp_first):translation 是对 content 的完整逐段翻译,不是术语对照或摘要
- 图片精选:有重点图才放,无重点图的章节不强制。每章最多 2-3 张
- 表格使用(按需判断):
- 适合做成表格的内容:对比性概念、同类知识点并列、有规律的分类、适合集中记忆的条目
- 判断标准——用表格比用文字段落更直观、更容易记忆时,就做表;反之用文字叙述
- 表格内容必须日中双语,所有影响阅读理解的单元格(説明列、对比内容、标题行除外)必须有中文翻译紧跟日文原文
- 不要强行把所有内容都塞进表格
- 考试导向(模式二):每个考点标注"该考点出现在 20XX 年卷第 X 题"
- 不编造内容:只基于课件和试卷中实际存在的内容
- 知识点无遗漏:逐页对照、逐条确认,不得整页或整节遗漏
注意事项
- 解析脚本覆盖
output/parsed_ppt.json和output/parsed_exams.json - PDF 讲义同样适用(用 PyMuPDF 提取,非 PPTX 时跳过 parse_ppt.py)
- 图片保存到
output/images/,生成 PDF 前确认图片存在 - 生成 PDF 前确认
fonts/NotoSansSC-Regular.ttf和fonts/NotoSansSC-Bold.ttf存在 - 模式二若
exams/无试卷文件,自动降级为模式一