@clawhub-makiwinster72-dd2adfcb49
文科主观题智能批改评分系统 — 支持多学科、可进化评分标准。触发词:批改作业、打分、评分标准、作业批改报告。
---
name: grading-pro
description: 文科主观题智能批改评分系统 — 支持多学科、可进化评分标准。触发词:批改作业、打分、评分标准、作业批改报告。
version: 1.0.0
---
# grading-pro — 主观题智能批改评分系统
## 核心能力
1. **智能评分** — 读取评分标准,对照学生答案逐项打分
2. **错误分析** — 指出错误类型(语言/逻辑/格式),给出改进建议
3. **优化范文生成** — 基于学生答案主题和内容,生成符合评分标准的高分范文(含亮点句型/词汇升级/结构优化)
4. **标准进化** — 支持教师随时补充新评分标准,自动存档记录
---
## 评分标准数据库
路径:`criteria/`
| 文件 | 适用场景 |
| ---------------------------------- | ------------------------------------------------------------ |
| `english_writing_junior.json` | 初中英语书面表达(满分15:内容5+语言5+结构5+印象分1) |
| `english_writing_senior.json` | 高中英语书面表达(满分25:五档评分制+官方细则/高分秘诀/九种连贯连接) |
| `english_practical_senior.json` | 高中英语应用文(满分15:六档评分制) |
| `english_continuation_senior.json` | 高中英语读后续写(满分25:五档评分制) |
| `chinese_essay_junior.json` | 初中语文作文(满分60:基础40+发展15/基准分42/阅卷特点/注意事项14条) |
| `chinese_essay_senior.json` | 高中语文作文(满分60:六档分类/议论文记叙文细则/八字方针/一类卷二类卷标准) |
| `chinese_reading_senior.json` | 高中语文阅读理解(含五类题型评分细则) |
| `chinese_reading_junior.json` | 初中语文阅读理解(含记叙文/说明文/议论文答题模板和公式) |
---
## 新增评分标准
在 `criteria/` 目录下新建 `.json` 文件,命名格式:`科目_年级.json`(如 `physics_senior.json`)。
文件需包含以下核心字段:
```json
{
"name": "学科名称",
"version": "1.0.0",
"updated_at": "YYYY-MM-DD",
"subject": "subject_key",
"grade": "初中/高中",
"full_score": 满分,
"exam_type": "题目类型",
"description": "评分标准描述",
"criteria": [
{
"id": "dimension_id",
"name": "维度名称",
"name_cn": "中文名",
"max_score": 分值,
"description": "评判说明",
"grade_rules": [
{ "range": [最高, 最低], "label": "等级", "description": "具体描述" }
]
}
]
}
```
直接添加文件即可,AI 批改时会自动读取。
---
## 评分流程
```
1. 接收题目 + 评分标准 + 学生答案
↓
2. 读取 / 创建对应评分标准
↓
3. 逐项评分(得分点 × 得分理由)
↓
4. 生成错误清单 + 改进建议
↓
5. 生成优化范文:基于学生答案的主题和内容,
用更高级的词汇/句型/结构重写,达到评分标准的高分要求
↓
6. 询问教师是否补充标准 → 更新 criteria/*.json
```
## 优化范文生成规则
- **不改变主题**:范文必须严格围绕学生答案的原始主题
- **保留可取之处**:学生答案中用得好的词汇和表达,在范文中保留并适当提升
- **逐条改正错误**:针对报告中标注的每处错误,在范文中用正确表达替换
- **符合评分标准**:范文应达到该评分标准的**高分档(12-15分)**水平
- **标注亮点**:范文中高光词汇和复杂句型用彩色标注,方便学生对照学习
---
## 输入格式
```json
{
"subject": "english_writing | chinese_essay | math_proof | custom",
"grade": "初一 | 初二 | 初三 | 高一 | 高二 | 高三",
"title": "题目名称",
"full_score": 15,
"criteria": [{ "name": "内容", "max": 8, "rules": "..." }],
"student_answer": "学生答案文本",
"question": "题目内容",
"student_name": "学生姓名(可选)"
}
```
或者直接发图片/文本,AI 自动识别并匹配套餐。
---
## 进化机制
每次批改后,教师可补充新评分标准:
```
老师说:"以后英语作文还要加一项:卷面分2分"
→ 自动追加到 criteria/english_writing.json
→ 记录更新时间:YYYY-MM-DD
→ 下次批改自动生效
```
---
**作文的报告结构:**
1. 总分卡片(各项得分一览)
2. 学生原文(错误处红色下划线标注)
3. 错误详列(编号 + 错误内容 + 正确表达)
4. 优化范文(高分范文对照,高光标注亮点词汇和句型)
5. 改进建议 + 综合评语
---
## 使用示例
```
用户:帮我批改这篇英语作文
用户:[发送作文图片]
AI:识别完成,请提供评分标准(或使用默认标准)
用户:满分15分,内容8语言8结构4
AI:[读取english_writing.json] → 开始评分 → 生成报告
```
FILE:README.md
# grading-pro — 文科主观题智能批改评分系统
智能批改初中/高中主观题作业,现在支持英语写作、语文作文等多学科,自动评分、错误分析、优化范文生成。
---
## 核心能力
1. **智能评分** — 读取评分标准,对照学生答案逐项打分
2. **错误分析** — 指出错误类型(语言/逻辑/格式),给出改进建议
3. **优化范文生成** — 基于学生答案主题和内容,生成符合评分标准的高分范文(含亮点句型/词汇升级/结构优化)
4. **标准进化** — 支持教师随时补充新评分标准,自动存档记录
---
## 评分标准数据库
路径:`criteria/`
| 文件 | 适用场景 |
| ---------------------------------- | ------------------------------------------------------------ |
| `english_writing_junior.json` | 初中英语书面表达(满分15:内容5+语言5+结构5+印象分1) |
| `english_writing_senior.json` | 高中英语书面表达(满分25:五档评分制+官方细则/高分秘诀/九种连贯连接) |
| `english_practical_senior.json` | 高中英语应用文(满分15:六档评分制) |
| `english_continuation_senior.json` | 高中英语读后续写(满分25:五档评分制) |
| `chinese_essay_junior.json` | 初中语文作文(满分60:基础40+发展15/基准分42/阅卷特点/注意事项14条) |
| `chinese_essay_senior.json` | 高中语文作文(满分60:六档分类/议论文记叙文细则/八字方针/一类卷二类卷标准) |
| `chinese_reading_senior.json` | 高中语文阅读理解(含五类题型评分细则) |
| `chinese_reading_junior.json` | 初中语文阅读理解(含记叙文/说明文/议论文答题模板和公式) |
---
## 新增评分标准
在 `criteria/` 目录下新建 `.json` 文件,命名格式:`科目_年级.json`(如 `physics_senior.json`)。
文件需包含以下核心字段:
```json
{
"name": "学科名称",
"version": "1.0.0",
"updated_at": "YYYY-MM-DD",
"subject": "subject_key",
"grade": "初中/高中",
"full_score": 满分,
"exam_type": "题目类型",
"description": "评分标准描述",
"criteria": [
{
"id": "dimension_id",
"name": "维度名称",
"name_cn": "中文名",
"max_score": 分值,
"description": "评判说明",
"grade_rules": [
{ "range": [最高, 最低], "label": "等级", "description": "具体描述" }
]
}
]
}
```
直接添加文件即可,AI 批改时会自动读取。
---
## 评分流程
```
1. 接收题目 + 评分标准 + 学生答案
↓
2. 读取 / 创建对应评分标准
↓
3. 逐项评分(得分点 × 得分理由)
↓
4. 生成错误清单 + 改进建议
↓
5. 生成优化范文:基于学生答案的主题和内容,
用更高级的词汇/句型/结构重写,达到评分标准的高分要求
↓
6. 询问教师是否补充标准 → 更新 criteria/*.json
```
## 优化范文生成规则
- **不改变主题**:范文必须严格围绕学生答案的原始主题
- **保留可取之处**:学生答案中用得好的词汇和表达,在范文中保留并适当提升
- **逐条改正错误**:针对报告中标注的每处错误,在范文中用正确表达替换
- **符合评分标准**:范文应达到该评分标准的**高分档(12-15分)**水平
- **标注亮点**:范文中高光词汇和复杂句型用彩色标注,方便学生对照学习
---
## 输入格式
```json
{
"subject": "english_writing | chinese_essay | math_proof | custom",
"grade": "初一 | 初二 | 初三 | 高一 | 高二 | 高三",
"title": "题目名称",
"full_score": 15,
"criteria": [{ "name": "内容", "max": 8, "rules": "..." }],
"student_answer": "学生答案文本",
"question": "题目内容",
"student_name": "学生姓名(可选)"
}
```
或者直接发图片/文本,AI 自动识别并匹配套餐。
---
## 进化机制
每次批改后,教师可补充新评分标准:
```
老师说:"以后英语作文还要加一项:卷面分2分"
→ 自动追加到 criteria/english_writing.json
→ 记录更新时间:YYYY-MM-DD
→ 下次批改自动生效
```
---
## 报告结构
批改完成后,生成作文的报告结构如下:
1. 总分卡片(各项得分一览)
2. 学生原文(错误处红色下划线标注)
3. 错误详列(编号 + 错误内容 + 正确表达)
4. 优化范文(高分范文对照,高光标注亮点词汇和句型)
5. 改进建议 + 综合评语
---
## 使用示例
```
用户:帮我批改这篇英语作文
用户:[发送作文图片]
AI:识别完成,请提供评分标准(或使用默认标准)
用户:满分15分,内容8语言8结构4
AI:[读取english_writing.json] → 开始评分 → 生成报告
```
FILE:criteria/chinese_reading_senior.json
{
"name": "高中语文阅读理解",
"version": "1.1.0",
"updated_at": "2026-04-21",
"subject": "chinese_reading_senior",
"grade": "高中",
"full_score_note": "阅读理解满分约60分(占高考150分中的40%),各题分值根据题目难度设定",
"exam_type": "论述类文本/文学类文本/文言文/诗歌鉴赏/语言文字运用",
"description": "高中语文阅读理解评分标准,按题型分类,每类题型有对应的评分细则、满分标准、常见失分点和优秀答案特征。",
"question_types": {
"understanding": {
"name": "理解性题目",
"description": "考查对文章内容的精准把握和深度分析能力",
"common_prompts": [
"根据文章内容,下列说法正确(错误)的一项是",
"文中提到……,其目的是什么",
"下列对材料相关内容的理解和分析,不正确的一项是"
],
"answer_technique": [
"快速浏览问题,带着问题阅读文章",
"逐字逐句精读,不放过任何细节",
"将选项与原文进行细致比对",
"结合背景信息理解语境"
],
"scoring_rules": [
{
"type": "满分(100%)",
"description": "准确把握原文内容,选项分析完全正确,能精准区分干扰项"
},
{
"type": "高分(80%-90%)",
"description": "理解基本正确,个别选项分析稍有偏差"
},
{
"type": "及格(60%-70%)",
"description": "能定位相关内容,但对选项的判断存在一定偏差"
},
{
"type": "低分(40%以下)",
"description": "未能准确理解文章内容,对干扰项识别不清"
}
],
"common_mistakes": [
"未逐字比对,凭印象选择",
"忽略文中关键限定词(最/唯一/全部等)",
"将选项与个人理解而非原文内容对比",
"未注意时态、程度等细微差异"
]
},
"inference": {
"name": "推理题",
"description": "考查根据文中已知信息进行合理推断的能力",
"common_prompts": [
"从文中可以推断出什么",
"根据文章内容,以下推断正确(错误)的是",
"根据目前某领域的发展趋势,可以推断出什么"
],
"answer_technique": [
"以原文为依据,不能主观臆断",
"关注关键词(因此/所以/然而/由于等)理清逻辑关系",
"确保推理过程有明确的文本支撑",
"不能过度推断,只能推断原文直接支持的内容"
],
"scoring_rules": [
{
"type": "满分",
"description": "推理完全基于原文,逻辑严密,结论准确,合理延伸"
},
{
"type": "高分",
"description": "推理方向正确,有文本依据,个别细节推断略有过度"
},
{
"type": "及格",
"description": "推理部分有据可查,但存在过度推断或遗漏关键信息"
},
{
"type": "低分",
"description": "推理脱离原文,主观臆断,或完全偏离文章信息"
}
],
"common_mistakes": [
"过度推断,超出原文信息范围",
"忽略了文章中的关键逻辑连接词",
"将个人常识凌驾于文本信息之上",
"推理过程跳跃,缺少文本依据"
]
},
"word_phrase": {
"name": "词语理解题",
"description": "聚焦于对文中重要词语在特定语境下的含义和用法的理解",
"common_prompts": [
"文中……一词的含义是什么",
"……词语在文中指代的是什么",
"结合语境,解释文中画线词语的含义"
],
"answer_technique": [
"先找词语的常见义项",
"结合上下文语境判断词语在文中的具体含义",
"注意词语的搭配关系",
"理解修辞义、比喻义、象征义"
],
"scoring_rules": [
{
"type": "满分",
"description": "准确写出词语在文中的具体含义,能结合语境分析深层含义"
},
{
"type": "高分",
"description": "理解基本正确,能联系上下文,但深层含义分析稍浅"
},
{
"type": "及格",
"description": "能写出字面意思,语境含义理解不完整"
},
{
"type": "低分",
"description": "仅写字面意思,未能联系语境理解深层含义"
}
],
"common_mistakes": [
"只写词语的字面意思,未分析语境含义",
"未能结合上下文推断词语的指代内容",
"忽略了修辞手法带来的特殊含义",
"混淆了本义和比喻义"
]
},
"main_idea": {
"name": "主旨大意题",
"description": "要求准确概括文章的中心思想",
"common_prompts": [
"本文的主旨是什么",
"文章主要表达了什么观点",
"给本文拟一个恰当的标题",
"文章的主题是"
],
"answer_technique": [
"总结各段落要点,串联全文框架",
"抓住关键语句(开头/结尾的中心句、段落中心句)",
"注意文章体裁特征(议论文论点、记叙文主题、说明文说明对象)",
"防止遗漏关键要素,确保涵盖主要内容和核心观点"
],
"scoring_rules": [
{
"type": "满分",
"description": "精准概括文章主旨,全面涵盖主要内容和核心观点,表达清晰"
},
{
"type": "高分",
"description": "主旨概括基本准确,主要内容完整,个别细节有遗漏"
},
{
"type": "及格",
"description": "概括部分准确,但要点遗漏较多或表述不清"
},
{
"type": "低分",
"description": "未能抓住核心主旨,概括内容偏离文章"
}
],
"common_mistakes": [
"只关注部分段落,忽略全文整体",
"将次要内容当作主旨",
"混淆论题与论点",
"标题拟制过于笼统或过于细节"
]
},
"attitude": {
"name": "观点态度题",
"description": "考查对作者在文中所表达的情感态度的分析能力",
"common_prompts": [
"作者对……的态度是",
"从文中可以看出作者的观点是",
"作者对某现象是支持还是反对",
"结合全文,分析作者的情感态度"
],
"answer_technique": [
"先整体理解文章内容、结构、主旨",
"分析作者主观态度:关注用词、语气、论述角度",
"识别含蓄态度:注意作者未直接表达但隐含的情感",
"避免将个人观点强加给作者"
],
"scoring_rules": [
{
"type": "满分",
"description": "准确判断作者的态度(支持/反对/中立),能结合文本分析依据"
},
{
"type": "高分",
"description": "态度判断基本正确,分析有一定依据,但深度稍欠"
},
{
"type": "及格",
"description": "能识别明显态度,但含蓄态度分析不准确"
},
{
"type": "低分",
"description": "判断错误,或将自身态度误认为作者态度"
}
],
"common_mistakes": [
"将自身观点当作作者观点",
"忽略了文中含蓄表达的隐性态度",
"对中性词句做过度解读",
"断章取义,以个别段落代替全文态度"
]
}
},
"prose_reading": {
"name": "散文/小说阅读",
"description": "文学类文本阅读的答题要点与评分标准",
"common_question_types": [
"景物描写作用分析",
"人物形象分析",
"艺术手法赏析",
"句子含义理解",
"情感主旨探究"
],
"scoring_key_points": [
"能准确识别艺术手法(比喻/拟人/借景抒情/托物言志等)",
"能结合文本分析手法运用的表达效果",
"结构作用:开头/中间/结尾的不同作用(铺垫/承上启下/深化主题)",
"人物形象:外貌/语言/动作/心理描写的综合分析",
"语言赏析:修辞+描写+情感效果的三位一体"
]
},
"classical_chinese": {
"name": "文言文阅读",
"description": "文言文阅读的评分要点",
"question_types": [
"实词含义推断",
"虚词意义用法",
"文言断句",
"内容理解与翻译",
"内容分析与概括"
],
"scoring_key_points": [
"实词:结合语境、字形结构、古今异义推断",
"虚词:掌握常见虚词的用法和意义",
"翻译:字字落实、意译为主、语句通顺",
"断句:结合语感、标志词、句式结构判断",
"概括:准确理解文意,不曲解、不遗漏"
],
"deduction_notes": [
"翻译错译关键词扣分(1分/处)",
"断句错误酌情扣分",
"对原文理解偏差酌情扣分"
]
},
"poetry": {
"name": "诗歌鉴赏",
"description": "古诗词鉴赏的评分要点",
"question_types": [
"意象/意境分析",
"诗歌语言赏析",
"表达技巧分析",
"思想感情理解",
"诗歌对比鉴赏"
],
"scoring_key_points": [
"意象:识别意象+分析象征意义+联系情感",
"意境:描绘画面+概括氛围+指出情感",
"语言:炼字(释义+手法+效果+情感)",
"技巧:手法识别+结合诗句分析+表达效果",
"情感:结合背景+意象+关键词综合判断"
]
},
"good_answer_markers": {
"description": "优秀答案的共同特征",
"markers": [
"紧扣文本:有明确的文本依据,不脱离原文",
"分析深入:不止于表层信息,能揭示深层含义",
"表达清晰:使用专业术语,逻辑层次分明",
"结构完整:总-分-总的答题格式,先结论后分析",
"要点完整:不遗漏重要采分点",
"语言规范:使用标准学科术语,避免口语化"
]
},
"scoring_tips": {
"description": "评分时的关键提示",
"tips": [
"阅读理解评分以「要点给分」为原则",
"言之成理即可酌情给分,不要过于严苛",
"格式不规范但内容准确的答案可正常给分",
"语言文字运用题注意卷面整洁",
"开放性试题按观点合理性和表达质量综合评分"
]
},
"contrast_notes": "【重要】高中阅读vs初中阅读核心区别:\n1. 高中阅读考查更深层的逻辑推理和批判性思维,初中偏重信息提取\n2. 高中文言文难度显著提升(虚词判断、特殊句式、长难句翻译)\n3. 高中诗歌鉴赏涉及更专业的术语和手法分析\n4. 高中阅读题往往要求结合全文和背景综合分析,不只是找原文对应\n5. 高中开放性试题更多,评分更看重思维深度而非标准答案",
"example_answers": {
"题目一_论述类文本": {
"question": "中国传统美学强调美与善的统一,注重艺术的社会教化功能。从《乐记》中乐者通伦理者也,到孔子的兴于诗立于礼成于乐,都体现了这一思想。题目:根据文章内容,下列说法正确的一项是",
"options": {
"A": "中国传统美学只强调美与善的统一,不注重艺术的审美性",
"B": "《乐记》和孔子的言论都表明艺术具有社会教化功能",
"C": "传统美学认为艺术的唯一目的是传递道德观念和社会价值",
"D": "艺术在传统美学中主要是为了修身齐家,对治国平天下作用不大"
},
"correct_answer": "B",
"analysis": {
"A": "错误。只强调不注重与原文矛盾,原文说艺术不仅仅是为了审美愉悦,也注重审美性",
"B": "正确。原文明确引用乐记和孔子言论,两者都体现艺术的社会教化功能",
"C": "错误。唯一目的与原文矛盾,艺术还有审美愉悦的目的",
"D": "错误。作用不大与原文矛盾,原文明确提到治国平天下的目的"
},
"scoring_notes": [
"论述类文本理解题关键在于逐字比对原文与选项",
"注意绝对性词汇(只/唯一/全部)往往是错误标志",
"B选项关键词是都表明,原文明确提及两者都体现社会教化功能"
]
},
"题目二_散文阅读": {
"question": "故乡的那片田野,是我童年的乐园。秋天,沉甸甸的稻穗压弯了枝头,农民们忙碌的身影在田野间穿梭,丰收的喜悦洋溢在每一个人的脸上。题目:文中沉甸甸的稻穗压弯了枝头这句话在文中的作用是什么?",
"sample_excellent_answer": "这句话运用了细节描写,生动形象地写出了稻穗饱满、丰收在望的景象,表达了作者对故乡田野丰收的喜悦之情,也为下文描写农民们的忙碌和丰收的喜悦做了铺垫。",
"analysis": {
"词语角度": "沉甸甸压弯了枝头——具体描绘稻穗状态,体现丰收在望",
"描写角度": "细节描写:生动形象地写出稻穗的饱满状态",
"情感角度": "表达作者对故乡田野丰收的喜悦之情",
"结构角度": "为下文写农民的忙碌和丰收喜悦做铺垫(承上启下)"
},
"scoring_notes": [
"散文阅读中句子作用分析要从词语/描写/情感/结构四个角度入手",
"结构作用要明确指出为下文做铺垫或总结上文等具体作用",
"优秀答案格式:手法+内容+效果+情感+结构"
]
},
"题目三_文言文": {
"question": "陈康肃公善射,当世无双,公亦以此自矜。尝射于家圃,有卖油翁释担而立,睨之久而不去。见其发矢十中八九,但微颔之。翁曰:无他,但手熟尔。康肃笑而遣之。题目:卖油翁对陈康肃公射箭的态度是怎样的?请简要分析。",
"sample_excellent_answer": "卖油翁对陈康肃公射箭的态度是轻视但又保持冷静沉稳。从睨之久而不去但微颔之可以看出卖油翁对陈康肃公射箭十中八九只是微微点头,表现出他的轻视;而在陈康肃公发怒时,卖油翁不慌不忙,通过展示倒油的高超技艺,用我亦无他惟手熟尔来回应,表现出他的冷静和沉稳。",
"analysis": {
"动作角度": "睨之久而不去但微颔之——体现轻视(不以为意)",
"态度角度": "康肃忿然时卖油翁不慌不忙——体现冷静沉稳",
"语言角度": "我亦无他惟手熟尔——以技艺回应傲慢,理性不卑",
"整体评价": "态度是轻视中带着沉稳,答题要点是动作+语言+行为综合分析"
},
"scoring_notes": [
"文言文态度分析题要先整体理解文意,再从动作/语言/行为多角度分析",
"要引用原文关键词作为依据(睨/微颔/笑而遣之等)",
"答案组织格式:观点+依据+分析"
]
}
}
}
FILE:criteria/english_continuation_senior.json
{
"name": "高中英语读后续写",
"version": "1.0.0",
"updated_at": "2026-04-21",
"subject": "english_continuation_senior",
"grade": "高中",
"full_score": 25,
"exam_type": "读后续写",
"description": "按五个档次评分,重点考察情节质量、语言表达和篇章结构。词数不足120字酌情扣分;只写一段不超过10分。",
"level_description": [
{
"level": 5,
"range": [21, 25],
"label": "第五档(优秀)",
"description": "情节新颖合理,语言流畅多样,衔接自然,结构清晰。",
"characteristics": [
"续写情节与原文融合自然,有创新",
"语言流畅,词汇丰富,句式多变",
"有效使用衔接手段,语篇连贯",
"时态、语态、拼写准确",
"续写两个段落长度适中"
],
"keywords": ["创新", "流畅", "多样", "连贯"]
},
{
"level": 4,
"range": [16, 20],
"label": "第四档(良好)",
"description": "情节较丰富合理,语言较流畅,衔接较有效。",
"characteristics": [
"续写情节与原文较融合",
"语言较流畅,有一定词汇多样性",
"衔接较有效",
"偶有语法错误但不影响理解"
],
"keywords": ["较流畅", "较合理", "较有效"]
},
{
"level": 3,
"range": [11, 15],
"label": "第三档(及格)",
"description": "情节基本完整,语言简单,衔接基本有效。",
"characteristics": [
"续写情节基本完整",
"语言较简单,句式单一",
"衔接基本有效",
"有较多语法错误"
],
"keywords": ["基本完整", "简单", "基本有效"]
},
{
"level": 2,
"range": [6, 10],
"label": "第二档(较差)",
"description": "情节逻辑问题多,语言单调错误多,衔接差。",
"characteristics": [
"情节逻辑有明显问题",
"语言单调,词汇量不足",
"语法错误多",
"衔接手段使用混乱或缺失"
],
"keywords": ["逻辑问题", "单调", "错误多", "衔接差"]
},
{
"level": 1,
"range": [1, 5],
"label": "第一档(差)",
"description": "情节严重脱节,语言错误多,无衔接。或只写一段。",
"characteristics": [
"情节严重偏离原文",
"语言错误极多,几乎无法理解",
"无任何衔接",
"字数严重不足"
],
"keywords": ["严重脱节", "错误多", "无衔接"]
},
{
"level": 0,
"range": [0, 0],
"label": "零分",
"description": "未作答或完全抄袭原文。",
"characteristics": ["空白卷", "全文抄袭原文", "完全跑题"]
}
],
"deduction_rules": [
{
"type": "word_count",
"label": "词数不足",
"threshold": 120,
"deduction": "每少10词扣0.5分,不重复计数"
},
{
"type": "single_paragraph",
"label": "只写一段",
"deduction": "只写一段者不超过10分"
},
{
"type": "spelling_punctuation",
"label": "小错(拼写、标点)",
"deduction": "酌情扣分,每两处扣0.5分"
},
{
"type": "grammar_major",
"label": "大错(时态、句式)",
"deduction": "影响档次评分,严重时态错误可降档"
},
{
"type": "plot_coherence",
"label": "情节不合逻辑",
"deduction": "酌情降档处理"
}
],
"continuation_writing_tips": {
"plot_design": "续写情节应合理承接原文,以原文线索为依据,避免突兀的转折",
"character_consistency": "人物性格、行为应与原文保持一致",
"emotional_tone": "情感基调应与原文协调(如原文温馨则续写也应温馨)",
"ending": "结尾应有意义升华或情感共鸣,避免虎头蛇尾",
"paragraph_structure": "通常续写两段,第一段承接上文,第二段达到高潮并结尾"
},
"good_expressions": [
"Without hesitation, she/he...",
"A smile spread across his/her face...",
"Tears welled up in her/his eyes...",
"The room fell into a heavy silence...",
"To her/his surprise / disappointment / joy...",
"An idea suddenly struck her/him...",
"With a heavy heart, she/he...",
"All of a sudden, ..."
],
"common_errors": [
{
"error": "情节与原文脱节,强行续写",
"reason": "未充分理解原文线索和人物性格"
},
{
"error": "时态混乱(过去时/现在时混用)",
"reason": "读后续写整体应用过去时态,偶有过去进行时/过去完成时"
},
{
"error": "句式过于简单,全文短句",
"reason": "缺乏复合句和并列句的使用,句式单一"
},
{
"error": "衔接词使用不当",
"reason": "常见:however/therefore/besides等衔接词位置或语义错误"
},
{
"error": "结尾仓促或无意义",
"reason": "结尾未能回应开头或升华主题"
}
],
"contrast_notes": "【重要】读后续写与一般写作的核心区别:\n1. 读后续写必须以原文线索为依据,不能凭空创作\n2. 情节的合理性和创新性并重\n3. 语言质量(流畅性、多样性)是高分的决定性因素\n4. 字数要求严格:一般要求120词以上\n5. 两段式结构是标准格式,只写一段不超过10分"
}
FILE:criteria/chinese_essay_senior.json
{
"name": "高中语文作文",
"version": "1.4.0",
"updated_at": "2026-04-27",
"subject": "chinese_essay_senior",
"grade": "高中",
"full_score": 60,
"exam_type": "高考议论文/记叙文/说明文",
"description": "高中语文作文评分分基础等级和发展等级两部分,总分60分。基础等级40分(内容20+表达20),发展等级20分。",
"grade_relationship": {
"name": "基础等级与发展等级的关系",
"rules": [
"基础等级包括内容分和表达分,两者级差不超过两个等级",
"发展等级分原则上随内容或表达的等次给分",
"发展等级分不能跨越基础等级的得分等级",
"发展等级一般不在内容或表达的下一等给分",
"整体体现独到、深刻的思想或丰富、典型的素材等,可获得发展等级相应高分"
]
},
"basic_grade": {
"name": "基础等级",
"total": 40,
"description": "基础等级的评分,以题意、内容、语言、文体为重点,全面衡量。",
"content": {
"name": "内容项",
"name_cn": "内容",
"max_score": 20,
"description": "重点是题意、内容。对于材料把握符合题意,但文章不好、中心基本明确、内容单薄、感情基本真实的,可以在三等上打分。论据真实性要特别注意,编造或明显错误、不能佐证观点的要适当扣分。",
"grade_rules": [
{
"range": [18, 20],
"level": "一等",
"description": "符合题意,中心突出,内容充实,感情真挚,结构完整,语言流畅"
},
{
"range": [15, 17],
"level": "二等",
"description": "符合题意,中心明确,内容较充实,感情真实,结构完整,语言通顺"
},
{
"range": [12, 14],
"level": "三等",
"description": "基本符合题意,中心基本明确,内容单薄,感情基本真实,结构基本完整,语言基本通顺"
},
{
"range": [8, 11],
"level": "四等",
"description": "不符合题意,中心不明确,内容空洞,感情不真实,结构混乱,语言不通顺"
},
{
"range": [0, 7],
"level": "五等",
"description": "严重偏离题意,空洞无物,杂乱无章"
}
]
},
"expression": {
"name": "表达项",
"name_cn": "表达",
"max_score": 20,
"description": "重点是作文的结构、语言、文体、卷面等,综合考量。在内容评等的基础上,除了在相应等级评分外,可以考虑在上一等或下一等打分。但表达项原则上不跨等级给分(如内容三等,表达不能在一等给分,只能在三等或二等或四等给分)。",
"grade_rules": [
{
"range": [18, 20],
"level": "一等",
"description": "结构严谨,语句优美,语言流畅,字体美观,文体特征鲜明"
},
{
"range": [15, 17],
"level": "二等",
"description": "结构完整,语句通顺,语言流畅,字体工整,文体特征明显"
},
{
"range": [12, 14],
"level": "三等",
"description": "结构基本完整,语句基本通顺,语言基本流畅,字体清楚,文体特征不够鲜明"
},
{
"range": [8, 11],
"level": "四等",
"description": "结构不完整,语句不通顺,语言不流畅,字体潦草,文体混乱"
},
{
"range": [0, 7],
"level": "五等",
"description": "结构混乱,语病严重,字迹难以辨认"
}
]
}
},
"expression_standards": {
"name": "表达要求细则",
"description": "结构、语言、文体、字迹的详细评判标准",
"structure": {
"name": "结构",
"rules": [
{ "level": "结构严谨", "description": "层次分明,过渡衔接紧密" },
{ "level": "结构完整", "description": "首尾完整,段落连贯" },
{ "level": "结构基本完整", "description": "字数超过400字但缺少自然结尾" },
{ "level": "结构混乱", "description": "明显拼凑或直接抄袭试卷相关文段" }
]
},
"language": {
"name": "语言",
"rules": [
{ "level": "语言流畅", "description": "没有语病" },
{ "level": "语言通顺", "description": "允许有偶发病句(2个左右),不影响阅读" },
{ "level": "基本通顺", "description": "允许有3个句子不通顺,但能表达基本意思" },
{ "level": "语言不通顺", "description": "全文有6个以上病句则视为「语言不通顺,语病多」" }
]
},
"style": {
"name": "文体",
"rules": [
{ "level": "文体不限", "description": "符合要求,最高可给满分60分" },
{ "level": "文体格式不对", "description": "总分不超过50分" },
{ "level": "文体不合要求", "description": "总分不超过30分" },
{ "level": "文体特征不明", "description": "总分不超过36分" }
]
},
"handwriting": {
"name": "字迹",
"rules": [
"全文个别文字书写不标准或有涂改的不视为「字迹潦草难辨」",
"需达到整篇字体难以辨认程度才能认定为「字迹潦草」"
]
}
},
"development_grade": {
"name": "发展等级",
"total": 20,
"description": "发展等级分原则上随内容或表达的等次给分,不求全面,可根据「特征」4项16点中若干突出点按等评分。发展等级分不能跨越基础等级的得分等级。",
"criteria": [
{
"dimension": "深刻",
"sub_points": [
{ "point": "透过现象看本质", "description": "能揭示事物深层的本质特征" },
{ "point": "揭示事物内在的因果关系", "description": "论证逻辑严密,因果清晰" },
{ "point": "观点具有启发作用", "description": "立意有深度,能引发思考" }
],
"scoring_detail": "整体体现独到、深刻的思想,特征分上给满分;部分段落、句子深刻,按评分等级给分"
},
{
"dimension": "丰富",
"sub_points": [
{ "point": "材料丰富", "description": "论据充分,材料多样" },
{ "point": "论据充足", "description": "论证有力度" },
{ "point": "形象丰满", "description": "记叙文形象生动" },
{ "point": "意境深远", "description": "营造有深意的意境" }
],
"scoring_detail": "内容丰富,使用的素材新鲜、典型,特征分上给满分;内容较丰富,部分素材典型,按评分等级给分"
},
{
"dimension": "有文采",
"sub_points": [
{ "point": "用词贴切", "description": "词汇丰富,用词精准" },
{ "point": "句式灵活", "description": "长句短句交错,整散结合" },
{ "point": "善于运用修辞手法", "description": "比喻、拟人、排比等运用得当" },
{ "point": "文句有表现力", "description": "语言有感染力" }
],
"scoring_detail": "整篇作文文采斐然,展现文笔与才思,特征分给满分;开头结尾使用修辞、化用诗句、引用名言,在原有给分基础上适度加分"
},
{
"dimension": "有创意",
"sub_points": [
{ "point": "见解新", "description": "观点有新意,不人云亦云" },
{ "point": "材料新鲜", "description": "论据新颖,与时俱进" },
{ "point": "构思精巧", "description": "结构有创意,引人入胜" },
{ "point": "推理想象有独到之处", "description": "逻辑推理或想象有特色" },
{ "point": "有个性特征", "description": "有独特的语言风格或个人特色" }
],
"scoring_detail": "在立意正确的基础上体现创意,且论据充分、叙述合理,特征分给满分;部分段落、语句有创意,视为亮点,在原有给分基础上适度加分"
}
],
"grade_rules": [
{
"range": [16, 20],
"level": "一等",
"description": "4个特征都能体现,或某一特征表现得特别突出"
},
{
"range": [11, 15],
"level": "二等",
"description": "4个特征中3个体现较好,或某一特征表现突出"
},
{
"range": [6, 10],
"level": "三等",
"description": "4个特征中2个体现较好"
},
{
"range": [1, 5],
"level": "四等",
"description": "4个特征中有1个体现"
}
]
},
"deduction_rules": {
"name": "扣分项评定",
"deductions": [
{
"type": "缺标题",
"rule": "扣2分"
},
{
"type": "错别字",
"rule": "每个错别字扣1分,重复不计,上限5分(从第3个错别字开始扣分)"
},
{
"type": "标点错误",
"rule": "标点错误多,或点实点、标题后加标点、一「逗」到底的,扣1到2分"
},
{
"type": "字数不足",
"rule": "字数不足800字,每少50字扣1分",
"limits": [
{ "condition": "字数不够600字", "limit": "总分控制在36分以内" },
{ "condition": "全文不足400字", "limit": "综合给分不能超过20分" },
{ "condition": "不足200字", "limit": "10分以下评分,不再扣字数分" }
]
},
{
"type": "不规范文字",
"rule": "使用繁体字、甲骨文或含义不清、流传不广的网络语言,酌情扣分"
}
]
},
"incomplete_essay_rules": {
"name": "残篇评定",
"rules": [
{
"condition": "只写一两句话",
"action": "给1分或2分,不评0分"
},
{
"condition": "只写标题",
"action": "给1分或2分,不评0分"
},
{
"condition": "不足200字",
"action": "10分以下评分,不再扣字数分"
},
{
"condition": "全文不足400字",
"action": "综合给分不能超过20分"
},
{
"condition": "完全空白",
"action": "评0分"
}
]
},
"special_cases": {
"name": "特殊情况处理",
"cases": [
{
"type": "套作",
"description": "确定为套作的文章,给分不超过20分"
},
{
"type": "抄袭",
"description": "抄袭的基础等级控制在四等内,发展等级不给分"
},
{
"type": "满分作文",
"description": "评定要慎重,确保满分作文高质量、耐推敲"
}
]
},
"scoring_constraints": {
"name": "评分约束",
"rules": [
"基础等级内容分和表达分的级差不超过两个等级",
"发展等级分不能跨越基础等级的得分等级",
"发展等级一般不在内容或表达的下一等给分",
"表达项原则上不跨等级给分",
"内容四等时,发展等级最多给1-2分"
]
},
"contrast_notes": "【重要】高中语文vs初中语文核心区别:\n1. 高中分基础等级(40分)+发展等级(20分),初中不分等级\n2. 高中强调「发展等级」:深刻、丰富、有文采、有创意,初中无此维度\n3. 高中评分有严格的等级约束(发展等级不能超越基础等级;内容与表达级差不超过两等)\n4. 高中对论据真实性有明确要求(不可编造),初中要求相对宽松\n5. 高中有详细的文体扣分上限(格式不对≤50分;不合要求≤30分;特征不明≤36分)\n6. 高中错别字从第3个开始扣分,初中无此细分\n7. 高中满分作文评定需慎重,初中无此要求",
"good_writing_markers": {
"深刻": "透过现象看本质、揭示因果、观点有启发性",
"丰富": "材料丰富、论据充足、形象丰满、意境深远",
"有文采": "用词贴切、句式灵活、修辞得当、文句有表现力",
"有创意": "见解新颖、材料新鲜、构思精巧、推理独到"
},
"six_category_classification": {
"name": "六档分类评分标准",
"description": "高考作文六档评分制,适用于议论文和记叙文",
"full_score": 60,
"categories": [
{
"level": "一类卷",
"range": [54, 60],
"core_requirements": "切题独到、深刻精巧、严谨"
},
{
"level": "二类卷",
"range": [48, 53],
"core_requirements": "准确、正确完整、有特点"
},
{
"level": "三类卷",
"range": [42, 47],
"core_requirements": "基本切题、基本正确、基本完整"
},
{
"level": "四类卷",
"range": [36, 41],
"core_requirements": "略有牵强"
},
{
"level": "五类卷",
"range": [30, 35],
"core_requirements": "不切题、牵强贴标签"
},
{
"level": "六类卷",
"range": [0, 29],
"core_requirements": "不正确、无章无法"
}
]
},
"argumentative_writing_criteria": {
"name": "议论文评分细则",
"criteria_by_category": [
{
"level": "一类卷(54-60)",
"features": [
"主旨与材料「神似」而有个性",
"有「灵犀」的相通之默契",
"巧妙而机智的构思",
"深入「分析」,对某一「含义」进行「分解」和「剖析」",
"多问几个「为什么」"
]
},
{
"level": "二类卷(48-53)",
"features": [
"主旨与材料「神似」,有「灵犀」相通",
"有构思,有细节,有文采",
"能够「分析」",
"能对某一「含义」进行「分解」或「剖析」或「多问几个为什么」"
]
},
{
"level": "三类卷(42-47)",
"features": [
"观点能从材料中来",
"但论证不很充分",
"虽略有「分析」,也有一定的层次或条理",
"但内在逻辑不够严谨"
]
},
{
"level": "四类卷(36-41)",
"features": [
"满足于简单「解读」材料",
"或一味「例证」,用大同小异的几个事例证明某一「含义」"
]
},
{
"level": "五类卷(30-35)",
"features": [
"立意貌似从材料中来",
"但整体论证已经越出材料或含义范围",
"且文章基本是观点加材料"
]
},
{
"level": "六类卷(29以下)",
"features": [
"观点或立意完全不与材料沾边",
"不会论证",
"没有条理或逻辑"
]
}
]
},
"narrative_writing_criteria": {
"name": "记叙文评分细则",
"criteria_by_category": [
{
"level": "一类卷(54-60)",
"features": [
"有生动传神的细节",
"有浓郁而清新的文采",
"故事有真实感和亲近感"
]
},
{
"level": "二类卷(48-53)",
"features": [
"有构思,有细节,有文采",
"故事真实,富有生活气息"
]
},
{
"level": "三类卷(42-47)",
"features": [
"所叙人和事与材料相似",
"主题基本接近材料某一含义",
"故事平淡,写人叙事能力一般"
]
},
{
"level": "四类卷(36-41)",
"features": [
"所叙人和事与材料相似",
"主题基本接近材料某一含义",
"但写人叙事能力薄弱"
]
},
{
"level": "五类卷(30-35)",
"features": [
"机械扩写,或简单续写",
"或故事虚假",
"记叙描写能力薄弱"
]
},
{
"level": "六类卷(29以下)",
"features": [
"另起炉灶,胡编乱造",
"故事低俗",
"表达能力很差"
]
}
]
},
"language_literacy_penalty": {
"name": "语文素养扣分",
"description": "以下情况一律下浮一个档次,严重者直接判入六类卷",
"conditions": [
"词汇贫乏、语言无味、面目可憎者",
"前言不搭后语、逻辑思路混乱者",
"书写潦草、错别字病句较多者"
]
},
"文体专项": {
"name": "文体专项扣分",
"rules": [
{ "condition": "文体模糊不明", "limit": "最高不超过35分" },
{ "condition": "文体不伦不类且语文素养较差者", "limit": "视为六类卷" }
]
},
"special_case_handling": {
"name": "个案处理",
"cases": [
{
"type": "抄袭",
"handling": "三分之二以上篇幅与原作相同,最高不超过20分;内容基本相同的,最高不超过10分"
},
{
"type": "诗歌写成",
"handling": "一律提交专家组处理"
},
{
"type": "完篇字数不足",
"handling": "正常评分之后,再扣字数不足分,每少50字扣1分,扣满3分为止"
},
{
"type": "明显未完篇",
"limits_by_length": [
{ "condition": "不满100字", "max_score": 5 },
{ "condition": "200字左右", "max_score": 10 },
{ "condition": "300字左右", "max_score": 18 },
{ "condition": "400字左右", "max_score": 26 },
{ "condition": "500字左右", "max_score": 34 },
{ "condition": "600字左右", "max_score": 42 }
],
"note": "未完篇的文章不再扣字数不足分"
},
{
"type": "游戏高考/游戏人生/语言格调很低的问题卷",
"limit": "最高不超过36分"
},
{
"type": "思想感情庸俗低下",
"limit": "即使切题,最高不超过20分"
},
{
"type": "内容恶俗不堪",
"limit": "最高不超过10分"
}
]
},
"scoring_reminder": {
"name": "评分提醒",
"reminders": [
"不能只从立意上简单评分",
"同一角度中的立意表达有高下之分",
"即使同一立意,也要看文章写得如何"
]
},
"evaluation_principles": {
"name": "高考作文评价原则",
"description": "开放包容灵活多元八字方针",
"principles": [
{
"keyword": "开放",
"description": "审题正确前提下,立意事先不作规定,完全根据作文实际,只要不踩思想红线,都应得到公正评价",
"red_line": "红线指与社会道德、法律相违背的观念"
},
{
"keyword": "包容",
"description": "不能因考生观点、好恶是否与自己相悖来决定分数;能自圆其说就应给相应分数;不因文章流露不够积极的思想而一概否定"
},
{
"keyword": "灵活多元",
"description": "文体不限,评价标准多元化,鼓励考生根据自身所长灵活运用不同文体和风格语言"
}
],
"specific_indicators": [
"除经查证全文抄袭外,不给零分",
"除非审题错误或尚未成文,不轻易判为不及格",
"不以成熟的创作作品标准评价考场作文(考生一般写作时间只有45分钟左右)",
"一类卷乃至满分作文都应该允许有不足甚至缺陷"
]
},
"evaluation_keywords": {
"name": "高考作文评价关键词",
"description": "两类文体评价关键词",
"argumentative_style": {
"keywords": ["思想性", "独特性", "说服力"],
"description": "议论性文体讲求"
},
"narrative_style": {
"keywords": ["形象性", "独特性", "感染力"],
"description": "记叙性文体讲求"
}
},
"encouragement_directions": {
"name": "高考作文评价导向",
"description": "四个鼓励",
"directions": [
"鼓励学生抒真情、写实感",
"鼓励学生关注社会、关注生活,通过独立思考写出有思想深度的作文",
"鼓励内容和形式的创新",
"鼓励百花齐放,各种文体、各类文风兼容,并在此前提下反对华而不实的文风"
]
},
"category_one_paper_standards": {
"name": "一类卷标准",
"description": "两类作文能够获得一类卷",
"argumentative_style": {
"description": "议论文一类卷",
"types": [
{
"type": "中规中矩思想深刻",
"requirements": "思想深刻、结构严谨、语言优美"
},
{
"type": "与众不同的创新作文",
"requirements": "观点或思考角度独特,或语言成熟老练特点鲜明(语言和结构方面也要比较优秀)"
}
],
"depth_explanation": "思想深度并非高不可攀,不要求思想深刻到别人难以企及,主要看论述是否有层次,层次是否能推进,推进是否有逻辑;或者思想是否与众不同耐人寻味,独特的思考往往本身就是深刻的体现"
},
"narrative_style": {
"description": "记叙文一类卷",
"requirements": [
"紧扣题意",
"感情真挚",
"寓意深刻、有回味",
"结构严谨",
"情节丰富生动",
"描写生动形象",
"语言畅达",
"有文采"
],
"special_requirements": [
"能够在文中形象地提出问题,引起读者的思考",
"倘若命题形式是材料作文,应该以叙述描写或水到渠成的抒情来暗示主题",
"专门用一段文字交代文章和材料的关系反而会不伦不类,影响得分"
]
}
},
"category_two_paper_standards": {
"name": "二类卷标准",
"description": "二类卷并非好作文,而是在各方面比较合格的过关作文",
"sub_categories": [
{
"level": "二类上(59-62分)",
"description": "有灵气、有新意,但在思想内容、行文结构、语言表达等某一方面有不足的"
},
{
"level": "二类中(55-58分)",
"criteria": [
"有独特的思考,但在思想内容、行文结构、语言表达等某一方面有缺陷的",
"新意不够,但平稳充实的"
]
}
],
"two_types_can_get_category_two": [
{
"type": "有灵气有新意但有缺陷",
"description": "立意、结构或语言等某一方面有明显缺陷"
},
{
"type": "思想平淡而内容充实",
"description": "在语言、结构等方面有不足但无明显缺陷"
}
]
},
"category_three_to_five": {
"name": "三至五类卷标准",
"categories": [
{
"level": "三类卷",
"description": "既无新意,又在思想内容、行文结构、或语言表达方面有明显缺陷的作文"
},
{
"level": "四类卷",
"description": "审题错误,或内容十分单薄,或中心不明,结构不完整,语言不通顺——简言之,就是不及格的作文"
},
{
"level": "五类卷",
"description": "基本属于离题且文理不通的作文,在以往考场作文中十分鲜见"
}
]
},
"argumentative_vs_narrative_key_differences": {
"name": "议论文与记叙文评价关键差异",
"differences": [
{
"aspect": "主题要求",
"argumentative": "主题鲜明",
"narrative": "紧扣题意,感情真挚,寓意深刻有回味——主题鲜明未必能得高分"
},
{
"aspect": "问题提出",
"argumentative": "既提出问题,还要分析问题甚至解决问题",
"narrative": "能够形象地提出问题,引起读者思考也能成为上乘之作"
},
{
"aspect": "材料关系",
"argumentative": "需要交代观点与材料的联系",
"narrative": "不明确必交代,以叙述描写或水到渠成的抒情来暗示主题即可"
}
]
}
}
FILE:criteria/english_writing_senior.json
{
"name": "高中英语书面表达",
"version": "1.1.0",
"updated_at": "2026-04-27",
"subject": "english_writing_senior",
"grade": "高中",
"full_score": 25,
"exam_type": "高考英语书面表达(建议信/求助信/道歉信/通知/演讲等11类常考话题)",
"description": "高考英语书面表达评分标准,满分25分。按六个档次评分,从内容要点、词汇语法、连贯性三个维度综合评判。高分关键:词汇多样性+语法复杂性+文章连贯性(不跑题是前提)。",
"four_dimensions": {
"name": "评分四个维度",
"dimensions": [
{
"name": "内容要点",
"name_en": "Content Points",
"description": "是否覆盖所有主要内容要点,有无遗漏"
},
{
"name": "词汇和语法结构数量",
"name_en": "Vocabulary & Grammar Range",
"description": "是否运用了较多的词汇和多样的语法结构"
},
{
"name": "词汇准确性与句子结构",
"name_en": "Accuracy of Vocabulary & Structures",
"description": "用词是否准确,句子结构是否正确"
},
{
"name": "上下文连贯性",
"name_en": "Coherence & Cohesion",
"description": "是否有效使用连接词,文章结构是否紧凑"
}
]
},
"level_description": [
{
"level": 1,
"range": [0, 0],
"label": "第一档(极差)",
"description": "未能传达给读者任何信息;内容太少无法评判;所写内容均与所要求的内容无关或所写内容无法看清。",
"characteristics": [
"内容极少或空白",
"与题目要求完全无关",
"字迹难以辨认"
],
"teacher_notes": "得零分极罕见,一般随便写两句靠谱的话也能给1-2分"
},
{
"level": 2,
"range": [1, 5],
"label": "第二档(差)",
"description": "未完成试题规定的任务;明显遗漏主要内容,写了一些无关内容;语法结构单调、词汇项目有限;较多语法结构或词汇方面的错误,影响理解;缺乏语句间的连接成分,内容不连贯;信息未能传达给读者。",
"characteristics": [
"未完成规定任务",
"明显遗漏主要内容",
"语法错误多",
"词汇量极其有限",
"缺乏衔接",
"内容不连贯"
],
"teacher_notes": "语法错误较多,基本词汇掌握不足;句子结构不完整,缺乏连贯性;卷面混乱。参考得分:2-4分"
},
{
"level": 3,
"range": [6, 10],
"label": "第三档(较差)",
"description": "未恰当完成试题规定的任务;漏掉或未描述清楚一些主要内容,写了一些无关内容;语法结构单调、词汇项目有限;有一些语法和词汇错误,影响了理解;较少使用语句间的连接成分,内容缺少连贯性;信息未能清楚地传达给读者。",
"characteristics": [
"未恰当完成任务",
"漏掉主要内容",
"语法结构单调",
"词汇有限",
"错误影响理解",
"较少衔接",
"内容不够连贯"
],
"teacher_notes": "能够覆盖所有信息点,能够尝试使用不同的简单句式,语言表达错误较多,但基本能够表达信息内容。参考得分:8-9分"
},
{
"level": 4,
"range": [11, 15],
"label": "第四档(适当)",
"description": "基本完成了试题规定的任务;虽漏掉一些内容,但覆盖所有主要内容;应用的语法结构和词汇能满足任务的要求;有一些语法或词汇错误,但不影响理解;应用简单的语句间的连接成分,使全文内容连贯;整体而言,基本达到了预期的写作目的。",
"characteristics": [
"基本完成任务",
"覆盖主要内容",
"语法词汇满足要求",
"有错误但不影响理解",
"简单连接词使内容连贯",
"基本达到写作目的"
],
"sub_level_notes": [
{
"range": [11, 12],
"description": "有一定语言积累,努力尝试使用一些常用句型和词汇,但表达过于冗长且意义欠准确;覆盖了所有内容但表达欠准确;语篇有连贯意识但选词欠准确"
},
{
"range": [13, 15],
"description": "字体优美,语言表达得体流畅,语言逻辑非常好;语言比较简洁;高级的句型运用准确,词汇选择丰富到位;覆盖所有内容且表达准确;语篇整体连贯,行文流畅"
}
],
"teacher_notes": "11.5-12分:有一定基础但表达欠准确;14-15分:语言流畅、逻辑好、高级句型准确、词汇丰富到位"
},
{
"level": 5,
"range": [16, 20],
"label": "第五档(好)",
"description": "完全完成了试题规定的任务;虽漏掉1、2个次重点,但覆盖所有主要内容;应用的语法结构和词汇能满足任务的要求;语法结构或词汇方面应用基本准确,些许错误主要是因尝试较复杂语法结构或词汇所致;应用简单的语句间的连接成分,使全文结构紧凑;达到了预期的写作目的。",
"characteristics": [
"完全完成任务",
"覆盖主要内容(偶有遗漏次重点)",
"语法词汇满足要求",
"基本准确",
"错误来自尝试复杂结构",
"连接词使结构紧凑",
"达到写作目的"
],
"teacher_notes": "能尝试使用复杂语法结构和高级词汇,虽然偶有错误但不影响整体表达质量"
},
{
"level": 6,
"range": [21, 25],
"label": "第六档(很好)",
"description": "完全完成了试题规定的任务;覆盖所有内容要点;应用了较多的语法结构和词汇;语法结构或词汇方面有些许错误,但为尽力使用较复杂结构或较高级词汇所致,具备较强的语言运用能力;有效地使用了语句间的连接成分,使全文结构紧凑;完全达到了预期的写作目的。",
"characteristics": [
"完全达标",
"覆盖所有要点",
"语法结构丰富多样",
"词汇较高级",
"错误源于尝试复杂表达",
"较强语言运用能力",
"连接词有效使用",
"结构紧凑",
"完全达到写作目的"
],
"teacher_notes": "最高分段,需要平时大量积累和练习才能达到"
}
],
"high_score_secrets": {
"name": "高分秘诀",
"description": "三点关键定档因素(不跑题是前提):词汇多样性、语法复杂性、文章连贯性",
"five_steps": ["审题", "遣词", "造句", "润色", "谋篇"],
"details": {
"审题": {
"name": "审题三要素",
"points": [
"审标题:确保不跑题",
"审体裁:确定文章文体(11类常考话题:建议信/求助信/感谢信/告知信/申请信/通知/邀请信/道歉信/新闻报道/咨询信/演讲)",
"审要点:踩点给分,准确把握要点是高分诀窍"
],
"key_mistakes": [
"把所有内容都写出来——只抓关键要点和衔接要点",
"要点杂乱无章——按逻辑关系(时间/因果/转折)重新安排"
]
},
"遣词": {
"name": "遣词四忌",
"points": [
"一忌语言错误(基本功)",
"二忌词语和短语搭配错误",
"三忌词语重复(用同义词/高级词/短语替代)",
"四忌不加区分地使用低级词汇"
],
"bonus_words": "适度使用加分词句:高级词、同义词、短语等替代简单词"
},
"造句": {
"name": "造句三原则",
"points": [
"表达清楚无误:具体化、细节化",
"多种表达方式:避免句式单调(简单句/并列句/复合句交替使用)",
"形象思维:用生动具体的描写代替笼统表达(如very good → melodious/pleasant)"
]
},
"谋篇": {
"name": "谋篇三要点",
"points": [
"分段:2至4段为佳,层次分明",
"详略:合理分配各段内容比重",
"连贯:善用9种连接关系(并列/递进/因果/转折/让步/列举/条件/举例/时间)"
]
}
}
},
"cohesion_devices": {
"name": "九种连贯连接关系",
"connections": [
{ "type": "并列关系", "examples": "and, also, as well, besides, what's more" },
{ "type": "递进关系", "examples": "moreover, further, in addition, besides, what's worse" },
{ "type": "因果关系", "examples": "because, since, therefore, as a result, consequently, so" },
{ "type": "转折关系", "examples": "but, however, nevertheless, yet, on the contrary, instead" },
{ "type": "让步关系", "examples": "although, though, despite, in spite of, even if" },
{ "type": "列举关系", "examples": "first, second, third, to begin with, last but not least" },
{ "type": "条件关系", "examples": "if, unless, as long as, on condition that" },
{ "type": "举例关系", "examples": "for example, for instance, such as, take...as an example" },
{ "type": "时间关系", "examples": "first, then, later, meanwhile, at last, eventually" }
]
},
"exam_topics": {
"name": "高考英语作文常考11大话题",
"topics": [
"求助信 (Letter of Request)",
"建议信 (Suggestion Letter)",
"感谢信 (Thank-you Letter)",
"告知信 (Informational Letter)",
"申请信 (Application Letter)",
"通知 (Notice/Announcement)",
"邀请信 (Invitation Letter)",
"道歉信 (Apology Letter)",
"新闻报道 (News Report)",
"咨询信 (Inquiry Letter)",
"演讲 (Speech)"
]
},
"bonus_tips": {
"name": "加分技巧",
"tips": [
"高级词汇替换:important → of vital significance / crucial, good → outstanding / remarkable",
"复杂句型:定语从句、状语从句、名词性从句、强调句、倒装句、虚拟语气",
"连接词自然穿插:使文章逻辑清晰、过渡自然",
"开头结尾出彩:首段亮观点,末段升华或发出倡议",
"字迹工整:卷面整洁在高考评分中真实影响分数档次"
]
},
"contrast_notes": "【重要】高中英语vs初中英语写作核心区别:\n1. 高中满分25分,初中满分15分;分档数量不同(高中6档,初中3档)\n2. 高中评分三维度:词汇多样性+语法复杂性+连贯性;初中评分三维度:内容+语言+结构\n3. 高中按档次给分(每一档都有具体的错误容忍度标准);初中有更细致的扣分规则\n4. 高中对复杂语法结构(从句/倒装/虚拟语气)有加分效果;初中更侧重要点覆盖\n5. 高中作文话题范围广(11类应用文体);初中以话题写作为主",
"good_writing_indicators": {
"high_score_indicators": [
"词汇丰富:not only...but also / in addition / moreover / consequently",
"句型多样:定语从句、名词性从句、状语从句、强调句、倒装句",
"连接词丰富:使文章连贯紧凑",
"表达具体:避免笼统表达,用细节支撑观点",
"字迹工整:卷面整洁"
],
"low_score_warning_signs": [
"词汇贫乏:反复使用同一简单词",
"句型单一:全篇简单句",
"缺少衔接:没有使用连接词或使用不当",
"要点遗漏:未覆盖所有主要内容",
"语法错误多:时态/主谓一致/介词等基本错误频发"
]
},
"scoring_rules_detailed": {
"name": "评分细则(官方)",
"description": "高考英语书面表达官方评分标准",
"general_principles": [
"本题总分为25分,按五个档次给分",
"评分时,先根据文章的内容和语言初步确定是否达到及格线(15分),然后确定其所属的具体档次",
"以该档次的要求来衡量,确定或调整档次,最后给分",
"词数少于80和多于120的,从总分中减去2分",
"若缺少要点,分数降一档处理",
"拼写与标点符号是语言准确性的一个方面。评分时应视其对交际的影响程度予以考虑",
"英、美拼写及词汇用法均可接受",
"书写较差以至于影响交际,将其分数降低一个档次"
],
"content_points_weight": {
"name": "内容要点权重",
"description": "评分时应注意的主要内容为:内容要点、应用词汇和语法结构的丰富性及准确性、上下文的连贯性"
},
"five_levels": [
{
"level": 5,
"label": "第五档(很好)",
"range": [21, 25],
"requirements": [
"完全完成了试题规定的任务",
"覆盖所有内容要点",
"应用了较多的语法结构和词汇",
"语法结构或词汇方面有些许错误,但为尽力使用较复杂结构或较高级词汇所致",
"具备较强的语言运用能力",
"有效地使用了语句间的连接成分,使全文结构紧凑",
"完全达到了预期的写作目的"
]
},
{
"level": 4,
"label": "第四档(好)",
"range": [16, 20],
"requirements": [
"完全完成了试题规定的任务",
"虽漏掉1、2个次重点,但覆盖所有主要内容",
"应用的语法结构和词汇能满足任务的要求",
"语法结构或词汇方面应用基本准确,些许错误主要是因尝试较复杂语法结构或词汇所致",
"应用简单的语句间的连接成分,使全文结构紧凑",
"达到了预期的写作目的"
]
},
{
"level": 3,
"label": "第三档(适当)",
"range": [11, 15],
"requirements": [
"基本完成了试题规定的任务",
"虽漏掉一些内容,但覆盖所有主要内容",
"应用的语法结构和词汇能满足任务的要求",
"有一些语法结构或词汇方面的错误,但不影响理解",
"应用简单的语句间的连接成分,使全文内容连贯",
"整体而言,基本达到了预期的写作目的"
]
},
{
"level": 2,
"label": "第二档(较差)",
"range": [6, 10],
"requirements": [
"未恰当完成试题规定的任务",
"漏掉或未描述清楚一些主要内容,写了一些无关内容",
"语法结构单调、词汇项目有限",
"有一些语法结构或词汇方面的错误,影响了对写作内容的理解",
"较少使用语句间的连接成分,内容缺少连贯性",
"信息未能清楚地传达给读者"
]
},
{
"level": 1,
"label": "第一档(差)",
"range": [1, 5],
"requirements": [
"未完成试题规定的任务",
"明显遗漏主要内容,写了一些无关内容,原因可能是未理解试题要求",
"语法结构单调、词汇项目有限",
"较多语法结构或词汇方面的错误,影响对写作内容的理解",
"缺乏语句间的连接成分,内容不连贯",
"信息未能传达给读者"
]
},
{
"level": 0,
"label": "不得分",
"range": [0, 0],
"requirements": [
"未能传达给读者任何信息",
"内容太少,无法评判",
"写的内容均与所要求内容无关或所写内容无法看清"
]
}
]
}
}
FILE:criteria/english_writing_junior.json
{
"name": "初中英语书面表达",
"version": "3.0.0",
"updated_at": "2026-04-21",
"subject": "english_writing_junior",
"grade": "初中",
"full_score": 15,
"exam_type": "初中英语书面表达(话题作文/邮件/通知等)",
"description": "初中英语书面表达评分标准,满分15分:内容6分+语言9分。内容要求完整按写作要点表述,要点详略得当,表述合理;语言要求准确连贯,允许合理运用原文句式结构,但不可照抄原文。",
"score_breakdown": {
"内容": {
"max": 6,
"description": "(1)现状2分 (2)应对压力的具体方法3分 (3)感悟1分",
"breakdown": {
"现状": { "max": 2, "description": "描述压力的现状或普遍性" },
"应对压力的具体方法": { "max": 3, "description": "给出具体可行的减压方法" },
"感悟": { "max": 1, "description": "结尾总结或升华主题" }
}
},
"语言": {
"max": 9,
"description": "评判句子语法结构、词汇运用、表达正确性;判断整篇文章所展示的语言运用能力;能使用较高级句子及词汇且运用恰当;不多于3处且不影响交际的语言错误可归第一档,相同错误不重复扣分"
}
},
"tier_scoring": {
"name": "语言分档评分细则(9分)",
"tiers": [
{
"tier": "第一档",
"range": [9, 9],
"description": "能合理使用简单句、并列句或复合句并没有句子结构错误,意思连贯,符合逻辑,全文不多于1处(含1处)不影响交际的语言错误(如名词单复数、拼写错误)",
"markers": ["无句子结构错误", "意思连贯", "≤1处语言错误"],
"note": "满分作文允许1-2处不影响交际的涂改,涂改较多的作文,不能评为满分作文"
},
{
"tier": "第一档",
"range": [8, 8],
"description": "能合理使用简单句、并列句、复合句并没有句子结构错误,意思连贯,符合逻辑,全文不多于3处(含3处)不影响交际的语言错误(如名词单复数、拼写错误)",
"markers": ["无句子结构错误", "意思连贯", "≤3处语言错误"]
},
{
"tier": "第二档",
"range": [7, 7],
"description": "表达清晰,意思连贯,符合逻辑,有3-6处(含6处)错误,无句子结构问题",
"markers": ["表达清晰", "意思连贯", "3-6处错误", "无句子结构问题"]
},
{
"tier": "第二档",
"range": [6, 6],
"description": "表达清晰,意思连贯,符合逻辑,有3-6处(含6处)错误,有1-2个句子结构问题",
"markers": ["表达清晰", "意思连贯", "3-6处错误", "1-2个句子结构问题"]
},
{
"tier": "第三档",
"range": [5, 5],
"description": "表达较为清楚、连贯,基本符合逻辑,但有多处语言表达错误,但不影响理解",
"markers": ["较为清楚", "基本连贯", "多处错误但可理解"]
},
{
"tier": "第三档",
"range": [4, 4],
"description": "表达较为清楚、连贯,基本符合逻辑,但有多处语言表达错误,句子结构问题比较多,但不影响理解",
"markers": ["较为清楚", "基本连贯", "多处错误", "句子结构问题多"]
},
{
"tier": "第四档",
"range": [1, 3],
"description": "只能写出1-2个正确句子,语言错误很多而且影响理解",
"markers": ["1-2个正确句子", "语言错误多", "影响理解"]
},
{
"tier": "第五档",
"range": [0, 0],
"description": "语法、句子结构、词汇错误很多,完全没有正确句子,意义无法理解;空白卷、整篇抄袭原文或内容完全与主题无关",
"markers": ["无正确句子", "意义无法理解", "空白或抄袭"]
}
]
},
"content_scoring": {
"name": "内容评分细则(6分)",
"levels": [
{
"range": [6, 6],
"description": "三个内容要点(现状2分+方法3分+感悟1分)全部覆盖,详略得当,表述合理连贯",
"markers": ["现状完整", "方法具体可行", "感悟恰当"]
},
{
"range": [5, 5],
"description": "三个要点均有覆盖,表述较好,仅个别要点深度稍欠",
"markers": ["要点齐全", "表述较好"]
},
{
"range": [4, 4],
"description": "三个要点基本覆盖,但有1-2个要点表述简略或深度不足",
"markers": ["要点基本齐全", "部分简略"]
},
{
"range": [3, 3],
"description": "缺1个要点,或某个要点过于简略(只有一句话)",
"markers": ["缺1个要点", "表述简略"]
},
{
"range": [1, 2],
"description": "缺2个要点,或主要内容偏离主题",
"markers": ["严重缺要点", "偏离主题"]
},
{
"range": [0, 0],
"description": "三个要点均缺失,或内容完全与主题无关",
"markers": ["完全离题", "无相关内容"]
}
]
},
"deduction_rules": {
"name": "扣分细则",
"rules": [
{
"type": "照抄原文",
"description": "不可照抄原文,若有合理运用原文句式结构可接受,但整篇照抄原文归第五档0分"
},
{
"type": "涂改扣分",
"description": "满分作文(9分档)允许1-2处不影响交际的涂改;涂改较多的作文,不能评为满分作文"
},
{
"type": "相同错误不重复扣分",
"description": "相同语言错误不重复扣分,只扣一次"
},
{
"type": "语言错误上限",
"description": "语言错误(名词单复数、拼写等)≤3处归第一档;3-6处归第二档;超过6处归第三档以下"
}
]
},
"good_structures": [
"并列句:and/but/or",
"复合句:because原因/if条件/when时间状语从句",
"宾语从句:I believe that...",
"so...that... 结果状语从句",
"not only...but also...",
"although/though 让步从句"
],
"good_expressions": [
"first and foremost / moreover / last but not least",
"as far as I am concerned / from my perspective",
"in my opinion / in conclusion",
"take action / make a difference",
"every coin has two sides"
],
"contrast_notes": "【重要】初中英语写作vs高中英语写作核心区别:\n1. 初中以话题写作为主(邮件/通知/建议信等),高中以应用文和读后续写为主\n2. 初中满分通常15分,高中满分15分(应用文)或25分(读后续写)\n3. 初中评分侧重要点覆盖(缺一项扣3分);高中更侧重语言质量和逻辑连贯性\n4. 初中最佳词数75-100词;高中应用文80-100词,读后续写150词以上\n5. 初中鼓励背模板和万能句型;高中更看重真实语言运用能力"
}
FILE:criteria/english_practical_senior.json
{
"name": "高中英语应用文",
"version": "1.0.0",
"updated_at": "2026-04-21",
"subject": "english_practical_senior",
"grade": "高中",
"full_score": 15,
"exam_type": "应用文(邮件/通知/建议信/投诉信等)",
"description": "按六个档次评分,重点考察内容要点、词汇语法、连贯性。及格线为9分。",
"level_description": [
{
"level": 6,
"range": [13, 15],
"label": "第六档",
"description": "覆盖所有要点,表达清楚,词汇语法多样且准确,衔接有效。",
"characteristics": ["要点完整无遗漏", "词汇语法丰富多样", "句式结构多变", "衔接词使用得当", "整体表达地道"]
},
{
"level": 5,
"range": [10, 12],
"label": "第五档",
"description": "覆盖所有要点,表达较清楚,词汇语法较多样,个别错误不影响理解。",
"characteristics": ["要点基本完整", "词汇语法较丰富", "有少量错误但不影响理解"]
},
{
"level": 4,
"range": [7, 9],
"label": "第四档(及格档)",
"description": "基本覆盖要点,表达基本清楚,词汇语法基本恰当,些许错误不影响理解。",
"characteristics": ["要点大部分覆盖", "表达基本清楚", "语法错误较少", "达到及格水平"]
},
{
"level": 3,
"range": [4, 6],
"label": "第三档",
"description": "遗漏或表达不清部分要点,词汇语法有限,错误较多影响理解。",
"characteristics": ["要点有明显遗漏", "词汇量有限", "错误较多", "理解受影响"]
},
{
"level": 2,
"range": [1, 3],
"label": "第二档",
"description": "遗漏大部分要点,词汇语法单调,错误严重影响理解。",
"characteristics": ["要点严重缺失", "词汇极度单调", "错误严重阻碍理解"]
},
{
"level": 1,
"range": [0, 0],
"label": "第一档",
"description": "未作答或内容完全无关。",
"characteristics": ["空白卷或完全跑题"]
}
],
"deduction_rules": [
{
"type": "tense",
"label": "时态错误",
"description": "时态错误在档内酌情扣分;重大时态错误(如全文主句使用错误时态)可降档处理"
},
{
"type": "word_count",
"label": "词数不足",
"description": "词数不足酌情扣分,一般每少10词扣0.5分"
},
{
"type": "spelling",
"label": "拼写错误",
"description": "每处拼写错误扣0.5分,同一单词拼写错误不重复扣分"
},
{
"type": "punctuation",
"label": "标点/大小写",
"description": "标点错误和大小写错误酌情扣分,总和不超过1分"
},
{
"type": "format",
"label": "格式错误",
"description": "应用文格式错误(如邮件无称呼/落款)酌情扣1-2分"
}
],
"practical_writing_types": {
"email": {
"name": "邮件",
"required_format": "称呼 + 正文 + 结束语 + 署名",
"common_mistakes": ["缺称呼或称呼错误", "缺结束语", "署名与身份不符"]
},
"notice": {
"name": "通知/启事",
"required_format": "标题 + 正文 + 日期/署名",
"common_mistakes": ["缺标题", "时间地点不明确", "正文过于简单"]
},
"letter": {
"name": "建议信/投诉信/道歉信",
"required_format": "称呼 + 正文(开头+主体+结尾)+ 结束语 + 署名",
"common_mistakes": ["三段式结构不清晰", "建议理由不充分", "缺少恰当的衔接"]
}
},
"good_expressions": [
"I am writing to express my sincere gratitude / concern / apology",
"I would highly appreciate it if you could...",
"I sincerely hope that you will take my suggestions into serious consideration",
"Firstly... Secondly... Last but not least...",
"I firmly believe that with your help / through our joint efforts...",
"Please do not hesitate to contact me if you have any further questions",
"I sincerely apologize for any inconvenience caused"
],
"contrast_notes": "【重要】高中应用文与初中写作的核心区别:\n1. 初中:侧重话题覆盖;高中:侧重要点精准+语言质量\n2. 初中:语言错误容忍度高;高中:时态/语态准确是底线\n3. 初中:结构简单;高中:需体现逻辑层次和语篇连贯性\n4. 初中:词汇量要求约80-100词;高中:约80-100词(应用文)"
}
FILE:criteria/chinese_essay_junior.json
{
"name": "初中语文作文",
"version": "1.1.0",
"updated_at": "2026-04-27",
"subject": "chinese_essay_junior",
"grade": "初中",
"full_score": 60,
"exam_type": "中考语文作文",
"description": "中考作文分为基础等级(40分)和发展等级(15分)两部分评分。程序:先整体评定基础等级,再评定发展等级。基准分定在42分。",
"basic_grade": {
"name": "基础等级",
"total": 40,
"description": "从内容、结构、表达三方面评定作文类别",
"dimensions": [
{
"id": "content",
"name": "内容",
"name_cn": "内容",
"max_score": 20,
"description": "以题意、内容为重点。审题准确,立意鲜明,内容充实,紧扣主题",
"grade_rules": [
{ "range": [18, 20], "level": "一等", "description": "审题准确,立意深刻,内容充实,主题鲜明" },
{ "range": [14, 17], "level": "二等", "description": "审题准确,立意明确,内容具体,主题清晰" },
{ "range": [10, 13], "level": "三等", "description": "审题基本准确,立意尚可,内容尚充实" },
{ "range": [5, 9], "level": "四等", "description": "审题不够准确,立意模糊,内容空泛" },
{ "range": [0, 4], "level": "五等", "description": "文不对题,内容空洞" }
]
},
{
"id": "structure",
"name": "结构",
"name_cn": "结构",
"max_score": 10,
"description": "结构完整,思路清晰,层次分明,过渡自然",
"grade_rules": [
{ "range": [9, 10], "level": "一等", "description": "结构严谨,思路清晰,层次分明,过渡自然" },
{ "range": [7, 8], "level": "二等", "description": "结构完整,思路较清晰,层次较分明" },
{ "range": [5, 6], "level": "三等", "description": "结构基本完整,思路尚清楚" },
{ "range": [3, 4], "level": "四等", "description": "结构不够完整,思路不够清楚" },
{ "range": [0, 2], "level": "五等", "description": "结构混乱,思路不清" }
]
},
{
"id": "expression",
"name": "表达",
"name_cn": "表达",
"max_score": 10,
"description": "语言流畅,用词准确,句式多变,修辞得当",
"grade_rules": [
{ "range": [9, 10], "level": "一等", "description": "语言流畅,用词准确精当,句式多变,修辞运用得当" },
{ "range": [7, 8], "level": "二等", "description": "语言流畅,用词准确,句式有变化" },
{ "range": [5, 6], "level": "三等", "description": "语言通顺,用词基本准确" },
{ "range": [3, 4], "level": "四等", "description": "语言基本通顺,用词不够准确" },
{ "range": [0, 2], "level": "五等", "description": "语言不通顺,用词不当" }
]
},
{
"id": "calligraphy",
"name": "书写",
"name_cn": "书写",
"max_score": 5,
"description": "字迹工整,卷面整洁,格式规范",
"grade_rules": [
{ "range": [5, 5], "level": "满分", "description": "字迹工整,卷面整洁,标点规范" },
{ "range": [3, 4], "level": "良好", "description": "字迹工整,卷面尚整洁" },
{ "range": [1, 2], "level": "较差", "description": "字迹潦草,卷面不整洁" },
{ "range": [0, 0], "level": "极差", "description": "字迹难以辨认,卷面脏乱" }
]
}
]
},
"development_grade": {
"name": "发展等级",
"total": 15,
"description": "只要具备下列四点之一,即可赋发展分",
"criteria": [
{ "point": "有深度", "description": "透过现象看本质,揭示事物规律或原因" },
{ "point": "有个性", "description": "有独特的思考角度或鲜明的语言风格" },
{ "point": "有文采", "description": "用词贴切,句式灵活,善用修辞,文句有表现力" },
{ "point": "有创新", "description": "立意新颖,材料新鲜,构思精巧,推理想象有独到之处" }
],
"grade_rules": [
{ "range": [13, 15], "level": "一等", "description": "四点全部体现或某一特征特别突出" },
{ "range": [9, 12], "level": "二等", "description": "四点中三点体现较好" },
{ "range": [5, 8], "level": "三等", "description": "四点中两点体现较好" },
{ "range": [1, 4], "level": "四等", "description": "四点中有一点体现" }
]
},
"scoring_procedure": {
"name": "打分程序",
"description": "综合判断,分等参照",
"steps": [
"首先从总体上综合打分,看它属于哪一档的文章",
"以内容(立意)为主先打奠基分,内容决定分数的走向",
"然后在其相邻等级中再为表达和特征打分,不跨等级打分",
"先确定内容等级分,再给表达和特征定级"
],
"category_ranges": [
{ "level": "一档", "range": [55, 49], "description": "优秀" },
{ "level": "二档", "range": [48, 42], "description": "良好(基准分42分所在档)" },
{ "level": "三档", "range": [41, 30], "description": "中等" },
{ "level": "四档", "range": [29, 15], "description": "较差" },
{ "level": "五档", "range": [14, 0], "description": "极差" }
]
},
"scoring_key_points": {
"name": "评分重点",
"description": "以题意、内容、语言和文体为重点",
"priority": "内容和语言为重点",
"flexible_requirements": [
"除了审题,文体也可以适当降低要求",
"文体不是指议论文、记叙文和说明文,而是指更广泛的文体概念"
]
},
"benchmark_score": {
"name": "基准分",
"score": 42,
"description": "达到了基本要求、基本符合题意、语言也过得去、比较平一些的文章,就可以打42分"
},
"deduction_rules": {
"name": "扣分禁忌",
"overall_requirements": [
{
"type": "错别字",
"rule": "每三个扣1分,重现的不计,最多扣2分"
},
{
"type": "标点符号错误",
"rule": "错误较严重者扣1分"
},
{
"type": "字数不足",
"rule": "每少50字扣1分,最多扣2分"
},
{
"type": "总分上限",
"rule": "作文总分不得超过55分"
}
],
"topic_deviation": {
"name": "审题偏离",
"rules": [
{ "condition": "完全离题", "limit": "给15分以下" },
{ "condition": "文章前后有适当点题文字", "limit": "在25分上下酌情给分,但不能超过30分" }
]
}
},
"problem_papers": {
"name": "问题作文",
"description": "以下四点具备之一,视为问题作文,提交组长或阅卷大组处理",
"conditions": [
"内容上有严重政治倾向性错误",
"作文雷同",
"前后笔迹不一致",
"文中有特殊记号"
]
},
"grader_characteristics": {
"name": "阅卷教师特点",
"characteristics": [
{
"trait": "工作量大,易疲劳",
"implication": "主题不清、立意不明的,直接打入低类;看得费力、主题句没找到或不好找到的,打低分",
"advice": "电脑阅卷字迹模糊会失分,必须字迹清晰"
},
{
"trait": "主观性强",
"implication": "必须想办法使阅卷老师的主观能动性向着有利于你的方面发展",
"advice": "按照评分标准写作文是作文稳中求胜的关键"
},
{
"trait": "时间是90秒",
"implication": "必须主题鲜明,必须优点突出",
"advice": "让作文适应阅卷教师的改卷需求"
}
],
"requirements": [
"必须体现积极的人生观,切忌低俗或偏激",
"不要写危险题材:校园恋情、社会黑暗、抨击高考制度",
"卷面要整洁美观:字迹不清、卷面模糊、勾画较多,会降分;字可以不漂亮,但必须好认"
]
},
"writing_guidance": {
"name": "写作指导",
"topics": [
{
"topic": "深刻与含蓄",
"guidance": "言之成理,能落到一个具体的点上,或深入本质,或抓住规律,或揭示原因,透过现象看本质。含蓄并非朦胧,更不是晦涩,它是委婉表达的一种特殊形式,作文时应该明确地表达自己的观点"
},
{
"topic": "真挚与现实",
"guidance": "多角度地观察生活,发现生活的丰富多彩。写出真情实感,感情要真挚"
},
{
"topic": "创新与文体",
"guidance": "立意创新≠大唱反调;体式创新≠追求花样;选材出新≠写社会阴暗面;语言求新≠语言异化。文体最好采用记叙文、散文、议论文三种常见样式,少采用诗歌、戏剧、寓言等体裁"
},
{
"topic": "是什么为什么怎么办",
"guidance": "关注三问:是什么、为什么、怎么办——这是文章展开的基本逻辑框架"
}
]
},
"common_mistakes": {
"name": "注意事项",
"cautions": [
{ "point": "偏题跑题", "severity": "输定了" },
{ "point": "没有题目或题目不合要求", "severity": "不只扣3分" },
{ "point": "字数不够", "severity": "损失绝对惨重" },
{ "point": "写错别字", "severity": "一定写过文章至少读上一遍" },
{ "point": "没有结尾", "severity": "不得高分;结尾一定要扣题、照应开头" },
{ "point": "材料作文抛开试题所给的材料", "severity": "直接划入四类卷" },
{ "point": "机械套用考前作文或范文", "severity": "最高进入三类卷" },
{ "point": "文体四不像", "severity": "影响得分" },
{ "point": "少从课本里找素材", "severity": "应该多从课本里找素材" },
{ "point": "写与考试无关的话", "severity": "请多给自己分、请多同情学生、手下留情之类的话不要写" },
{ "point": "写作基础不牢不要盲目创新", "severity": "" },
{ "point": "尖子生避免低级错误", "severity": "卷面草=低档;立意偏=低分;思想偏激另类文意深奥=低分" },
{ "point": "作文基础好的学生", "requirement": "以题目贯穿始终;形象具体,感情真挚,主题鲜明" },
{ "point": "作文有困难的学生", "requirement": "文通字顺,立意准;掌握技巧,制造亮点" }
]
},
"category_descriptions": {
"name": "各档作文描述",
"descriptions": [
{
"level": "一类卷(55-49分)",
"features": "审题准确,立意深刻,内容充实,结构严谨,语言流畅有文采,主题鲜明"
},
{
"level": "二类卷(48-42分)",
"features": "审题准确,立意明确,内容具体,结构完整,语言通顺,主题清晰——达到基本要求"
},
{
"level": "三类卷(41-30分)",
"features": "审题基本准确,立意尚可,内容尚充实,但平淡,语言基本通顺"
},
{
"level": "四类卷(29-15分)",
"features": "审题不够准确,立意模糊,内容空泛,结构不完整,语言不通顺——不及格"
},
{
"level": "五类卷(14分以下)",
"features": "文不对题,内容空洞,杂乱无章"
}
]
}
}
FILE:criteria/chinese_reading_junior.json
{
"name": "初中语文阅读理解",
"version": "1.0.0",
"updated_at": "2026-04-27",
"subject": "chinese_reading_junior",
"grade": "初中",
"full_score_note": "阅读理解满分约50-60分,各题分值根据题目难度设定",
"exam_type": "记叙文/说明文/议论文",
"description": "初中语文阅读理解答题模板,按文体分类。记叙文含内容概括/结构理清/线索顺序/人物形象/主题/修辞/句子含义/景物描写/开头结尾作用/写作手法。说明文含说明对象/分类/结构/说明方法/语言准确性/题目作用。议论文含论证思路/论证方法/开头结尾作用。",
"narrative_prose": {
"name": "记叙文阅读",
"description": "记叙文阅读答题模板",
"content_summary": {
"name": "文章内容要点概括",
"question_types": [
{
"type": "一句话概括主要内容",
"formula": "人物(事件)+干什么(怎么样)"
},
{
"type": "概括文章主要内容",
"formula": "人物+起因+经过+结果",
"note": "时间(季节、年代)、地点、环境如果有特定意义,应该概括在内"
}
]
},
"structure_organization": {
"name": "理清文章结构",
"question_types": [
{
"type": "补充故事情节",
"technique": "找出划分标准,仿照示例的句式作答"
},
{
"type": "思想感情的变化",
"technique": "画出表示情感的词语,按照词语出现的顺序整理出答案"
}
]
},
"clue_and_sequence": {
"name": "线索和顺序",
"clue_types": {
"types": [
"以时间的发展变化为线索",
"以地点的转移为线索",
"以人物为线索",
"以某个具体的事物为线索",
"以感情的变化为线索",
"以某个核心事件为线索"
],
"作用": "把文中的人物和事件有机地连在一起,使文章条理清晰,层次分明,推动情节的发展"
},
"narrative_sequence": {
"顺叙": {
"definition": "按事情发展先后顺序",
"作用": "叙事有头尾,条理清晰,脉络清楚、印象深刻"
},
"倒叙": {
"definition": "先写结果,后写原因",
"作用": "造成了……的悬念,使故事情节更曲折,增强了文章的可读性"
},
"插叙": {
"definition": "在叙述过程中插入另一件事",
"作用": "补充交代了……使人物形象更丰富,使中心更突出"
}
},
"formula": "顺序名称+作用"
},
"narrative_perspective": {
"name": "记叙的人称及作用",
"first_person": {
"effect": "使文章内容显得更真实,给人身临其境之感,便于直接抒发感情,增强了文章的真实性和感染力"
},
"second_person": {
"effect": "便于作者与文中的人物或读者感情交流,显得特别亲切、感人"
},
"third_person": {
"effect": "不受时间、空间限制,能够比较自由灵活的反映客观内容,有比较宽广的活动范围"
}
},
"character_image": {
"name": "人物形象分析",
"secondary_character": {
"name": "次要人物的作用",
"first_person_narrator": {
"role": "第一人称'我'是贯穿全文的人物",
"function": "线索人物,是故事的见证者,增强了文章的真实性"
}
},
"描写方法及作用": [
{
"method": "肖像(外貌、神态)描写",
"effect": "交代了人物的xx身份、xx地位、xx处境、xx经历以及xx心理状态、xx思想性格等情况"
},
{
"method": "语言描写和动作描写",
"effect": "生动形象地表现出人物的xx心理(心情),并反映人物的XX性格特征或XX精神品质,有时还推动了情节的发展"
},
{
"method": "心理描写",
"effect": "形象生动地反映出人物的XX思想,揭示了人物的XX性格或XX品质"
}
],
"formula": "描写方法+该描写方法的代表词语+效果词(生动形象、生动传神、细腻传神等)+人物的性格(心情、心理等)"
},
"theme": {
"name": "文章的主题",
"central_thought": [
{
"type": "写人为主",
"formula": "文章通过叙述主人公的······事件(内容)+表现出主人公······的思想品质(或表达了作者对主人公······的思想感情)"
},
{
"type": "记事为主",
"formula": "通过叙述······故事(内容)+告诉了我们······的道理"
},
{
"type": "写景状物",
"formula": "通过描写了······景或物(内容)+抒发了作者······的情感(或者寄托了作者······的思想感情)"
}
]
},
"rhetorical_devices": {
"name": "修辞方法及作用",
"devices": [
{ "device": "比喻", "effect": "生动形象" },
{ "device": "比拟", "effect": "生动形象" },
{ "device": "夸张", "effect": "突出事物本质,烘托气氛,加强渲染力,引起联想效果" },
{ "device": "排比", "effect": "加强语势,使文章的节奏感加强,更利于表达强烈的感情" },
{ "device": "对偶", "effect": "整齐匀称,节奏感强,高度概括,易于记忆,有音乐美" },
{ "device": "反复", "effect": "强调突出某种事物或某种感情" },
{ "device": "设问", "effect": "引起注意,引发读者思考" },
{ "device": "反问", "effect": "加强语气,发人深思,激发读者感情,加深读者印象,增强文章的气势和说服力" },
{ "device": "引用", "effect": "语言凝练,言简意赅,增强文章的诗情画意或者文化内涵,有时候也加强真实性或起印证作用" },
{ "device": "反语", "effect": "加强表达效果,产生幽默感、讽刺性或更加强烈地表示亲密有好的感情" }
],
"formula": "修辞方法+结合具体的题对修辞进行描述+效果词+写出了人或事物的XX特点+表达(抒发)了作者的XX感情等(或写出了人物的XX性格等)",
"single_sentence_formula": {
"比喻": "……采用了比喻的修辞手法,描写了……,表现了作者对……的感情,形象生动",
"拟人": "……采用了拟人的修辞手法,将……赋与人的情感与性格来写,表现了作者对……的感情,十分形象,生动(或栩栩如生,逼真)",
"夸张": "……采用了夸张的修辞手法,描写了……,表达了作者……的情感,联想奇特,富于形象感",
"排比": "……采用了排比的修辞手法,描写了……的情景,集中地表达了作者……的感情,节奏明快,增强了语言的气势",
"设问": "自问自答,引起读者思考,使文章有起伏",
"反问": "……采用了反问的修辞手法,用反问的句式把作者……的感情表达出来,语气更强烈,表达的思想也更强烈,使文章有起伏",
"对偶": "……采用了对偶的修辞手法,描写了……,抒发了作者对……的感情,节奏明快,富于音乐美",
"引用": "增强语言说服力"
},
"general_formula": "(1)点明何种表现手法 (2)表现了什么内容 (3)表达了怎样的感情。如:此句运用了……,从而生动形象表现了……,表达了……"
},
"word_phrase_meaning": {
"name": "理解重要词语的含义和作用",
"question_types": [
{
"question": "某句话中某个词换成另一个行吗?为什么?",
"answers": [
{ "word_type": "动词", "answer": "不行。因为该词准确生动具体地写出了……" },
{ "word_type": "形容词", "answer": "不行。因为该词生动形象地描写了……" },
{ "word_type": "副词", "answer": "不行。因为该词准确地说明了……的情况(表程度,表限制,表时间,表范围等),换了后就变成……,与事实不符" }
]
},
{
"question": "一句话中某两三个词的顺序能否调换?为什么?",
"answer": "不能。因为:a.与人们认识事物的(由浅入深、由表入里、由现象到本质)规律不一致;b.该词与上文是一一对应的关系;c.这些词是递进关系,环环相扣,不能互换"
},
{
"question": "理解词语在选文中的意思和在语境中的含义",
"note": "要注意两点:一这个词可能不再具有词典中的含义,而是特定语境中的特殊含义;二是要理解词语的语境含义首先必须正确理解词语所在的语境"
}
]
},
"sentence_meaning": {
"name": "理解重要句子的含义和作用",
"sentence_types": [
{
"type": "有修辞的句子",
"formula": "这句话运用了XX修辞+效果词+句子的语境义+深层含义(即文章的中心思想)"
},
{
"type": "没有修辞的句子",
"formula": "表层含义+深层含义(根据情况有时还要答出句子在全文的结构作用)"
}
],
"special_functions": {
"抒情的作用": "抒发作者真挚深沉的情感,引发读者的感情共鸣,使文章具有强大的感染力",
"议论的作用": "引发读者思考,点明人物或事件的意义,突出中心,升华主题,起到画龙点睛的作用",
"穿插议论的作用": "结构上承上启下;内容上画龙点睛"
}
},
"scenery_description": {
"name": "景物描写的作用",
"effects": [
"交代事情发生的地点或背景,增加事情的真实性",
"渲染气氛",
"烘托人物心情",
"反映人物的性格或品质",
"为下文做铺垫",
"推动情节的发展",
"深化作品的主题",
"具有象征意义"
],
"formulas": [
"……的景物描写,写出了……的景色(或环境),烘托了人物……的性格和品质",
"……的景物描写,结合人物心理活动,表现人物……的性格和精神",
"……的景物描写,反映了……的情景,为全文定下了……的感情基调"
]
},
"title_analysis": {
"name": "文章题目的理解和作用",
"effects": [
"点明故事发生的地点",
"点明作者的情感",
"概括文章的主要内容",
"点明文章的线索",
"揭示(或暗示)文章的中心",
"设置悬念,吸引读者",
"交代故事发生的环境",
"交代描写对象",
"题目中运用了修辞的,要还原它的本义后再分析作用"
],
"formula": "表层含义(句子的表面义和语境义)+深层含义(全文所要表达的中心)"
},
"paragraph_role": {
"name": "文章的开头、中间、结尾段(句)的作用",
"opening": {
"effects": [
"开篇点题",
"总领下文或统领下文",
"引出下文,为下文做铺垫",
"设置悬念,引起读者的兴趣或思考",
"奠定全文的感情基调"
]
},
"middle": {
"effect": "单独成段起承上启下的过渡作用(要指明哪句是承接上文的什么内容,哪句开启下文的什么内容)"
},
"ending": {
"effects": [
"篇末点题",
"总结全文,深化中心",
"首尾呼应,照应开头或照应题目",
"点明中心,升华中心",
"令人深思,给人警醒(启示)或留有思考余地"
]
},
"formula": "内容上(含义和思想感情),起到XX作用+结构上,起到XX(呼应、过渡、伏笔、铺垫、总领、总结等)作用"
},
"writing_techniques": {
"name": "写作手法的运用",
"techniques": [
{
"technique": "设置悬念",
"effect": "使文章有张有弛,吸引读者的阅读兴趣"
},
{
"technique": "欲扬先抑",
"formula": "作者先写人物(事物)的······(不足之处)+然后赞扬其······(美好之处)+更加突出人物(事物)的······特征或品质"
},
{
"technique": "对比",
"formula": "把······和······进行对比+突出了······特性(性格)+从而突出了文章的······的主旨"
},
{
"technique": "借景抒情",
"formula": "作者通过对······景物的描写+抒发了······的感情"
},
{
"technique": "托物言志",
"formula": "作者通过描写······事物+抒发作者······的感情(抱负,志趣、情操)"
},
{
"technique": "借物喻人",
"formula": "作者通过描写······事物+突出事物的······特点+以此比喻······(某人)+表现了······(某人)的高尚情操"
},
{
"technique": "伏笔",
"effect": "交代含蓄,使文章结构严密、紧凑,读者读到下面文章时,不至于产生突兀怀疑之感。作铺垫是对即将来临的事物的衬托"
},
{
"technique": "烘托渲染",
"effect": "浓墨重彩,营造气氛,情景相生,深化主题"
}
]
},
"reading_inspiration": {
"name": "阅读中的启示",
"formula": "通过文章我明白了······+理由(联系文章内容)+联系生活实际(看题目中是否有此要求)+总结(以后该怎么做)"
}
},
"explanatory_text": {
"name": "说明文阅读",
"description": "说明文阅读答题模板",
"object_grasping": {
"name": "把握说明对象",
"methods": [
"看标题",
"看首尾段",
"看关键词句(如:总说句/分说句/过渡句)",
"看材料(逐段分析作者介绍了有关事物的哪一方面的特征,然后归纳小结)"
]
},
"classification": {
"name": "说明文分类",
"types": [
{
"type": "事物性说明文",
"method": "一般标题就是说明的对象"
},
{
"type": "事理性说明文",
"method": "找准开头结尾的总结句"
}
],
"note": "说明对象是一篇文章所要介绍的事物或事理,一般是一个名词或名词短语。可以从两个方面入手:一看文题二看首尾段。事物说明文指出被说明事物即可。事理说明文指出说明内容,形成一个短语:介绍了……的……(对象加内容)"
},
"structure_types": {
"name": "说明结构",
"types": ["总分式", "层进式"]
},
"explanation_methods": {
"name": "说明方法及作用",
"methods": [
{
"method": "举例子",
"effect": "具体真切地说明了事物的××特点"
},
{
"method": "分类别",
"effect": "条理清楚地说明了事物的××特点。对事物的特征/事理分门别类加以说明,使说明更有条理性。使说明的内容眉目清楚,避免重复交叉的现象"
},
{
"method": "列数字",
"effect": "具体而准确地说明该事物的××特点。使说明更有说服力"
},
{
"method": "作比较",
"effect": "突出强调了被说明对象的××特点(地位、影响等)"
},
{
"method": "下定义",
"effect": "用简明科学的语言对说明的对象/科学事理加以揭示,从而更科学、更本质、更概括地揭示事物的特征/事理"
},
{
"method": "打比方",
"effect": "打比方就是修辞方法中的比喻。生动形象地说明该事物的××特点,增强了文章的趣味性"
},
{
"method": "画图表",
"effect": "使读者一目了然,非常直观形象地说明的事物的××特点"
},
{
"method": "作诠释",
"effect": "对事物的特征/事理加以具体的解释说明,使说明更通俗易懂。下定义与作诠释的区别是:定义要求完整,而诠释并不要求完整,可以颠倒"
},
{
"method": "摹状貌",
"effect": "对事物的特征/事理加以形象化的描摹,使说明更具体生动形象"
},
{
"method": "引用说明",
"effect": "能使说明的内容更具体、更充实。用引用的方法说明事物的特征,增强说服力,如引用古诗文、谚语、俗话。引用说明在文章开头,还起到引出说明对象的作用"
}
],
"formula": "说明方法+结合句子具体展开+效果词+事物的特征。事物的特征往往在本句所在段的首句或尾句"
},
"language_accuracy": {
"name": "说明文语言的准确性",
"question_types": [
{
"question": "加点字词有何作用",
"answer": "抓住了说明文语言准确这一特点答题。答:准确/生动形象/地说明了事物'……'的特征/事理",
"formula": "解释词语+带词解句(解释这个词在句中的意思)+体现了说明文语言的准确性和严密性"
},
{
"question": "能否替换为另一个词语?并说明理由",
"answer": "(1)不可以。(2)原词的意思或内容(3)所换词语的意思或内容。(4)换了后意思有何改变,与不符合实际"
},
{
"question": "限制性词语能否删去?",
"answer": "(1)表态(删还是不删)(2)定性。如:'比较''几乎''相当'等词表程度修辞;'大约''可能''左右'等表估计,'多''有余'等表数量。(3)若删去,原来什么样的意思就变成了什么样的意思了,不符合实际,太绝对了。(4)xx词体现了语言的准确性、周密性、科学性",
"formula": "不能删(或替换)+分析词语在句中的作用+带词解句+删词解句+删去后(替换后)有什么不良后果(不准确、太绝对)+不能删(不能替换)+体现了说明文语言的准确性和严密性"
}
]
},
"title_effects": {
"name": "说明文题目的作用",
"effects": [
"点明说明对象",
"概括说明对象的特征",
"概括文章的主要说明内容",
"引起读者的阅读兴趣"
]
},
"paragraph_role": {
"name": "说明文开头段、过渡段、结尾段的作用",
"opening": [
"点明说明对象",
"点明文章的说明内容",
"指出说明对象的特征",
"引起读者的阅读兴趣",
"用XX说明方法,指出说明对象的XX特征"
],
"transition": "承上启下(承接上文的xx内容,领起下文的xx内容)",
"ending": "总结全文的说明内容,再次点题,发出xx号召(或倡议)"
},
"cognition_feeling": {
"name": "认识感悟类",
"formula": "完整准确理解文章内容+联系实际印证对文章的理解+一句话总结阐述"
},
"列举分析": {
"name": "列举分析",
"formula": "把握原文+结合生活积累触类旁通"
},
"exploration_induction": {
"name": "探究归纳",
"formula": "比较文章与材料+表达观点+用事实与道理分析支撑观点+一句话总结观点"
}
},
"argumentation": {
"name": "议论文阅读",
"description": "议论文阅读答题模板",
"argumentation_analysis": {
"name": "分析文章的论证思路",
"formula": "文章(某段或某几段)先运用······的论证方法+效果词+论证了······的论点+接着······+最后······"
},
"argumentation_methods": {
"name": "论证方法",
"methods": [
{
"method": "举例论证",
"formula": "举了······的例子+具体详细地论证了······+增强了文章的说服力(或趣味性)"
},
{
"method": "对比论证",
"formula": "把······与······进行对比+鲜明地论证了······"
},
{
"method": "道理论证(引证)",
"formula": "用(资料、某人的话、俗语等)充分论证了······+增强文章的说服力"
},
{
"method": "比喻论证",
"formula": "把······比喻成······+形象生动地论证了······"
}
]
},
"paragraph_role": {
"name": "议论文开头、结尾的句子的作用",
"opening": [
{
"type": "写事举例",
"formula": "开头通过写······的事例+提出中心论点······(或引出······论题)"
},
{
"type": "引用名言",
"formula": "开头通过引用名言+提出中心论点······(或引出······论题)"
},
{
"type": "引用名人趣事",
"formula": "开头通过引用名人趣事(或······的奇闻趣事)+提出中心论点······(或引出······的论题)+起到吸引读者往下读的作用,增强了论述的趣味性"
}
],
"ending": [
{ "type": "总结全文", "effect": "点明中心论点" },
{ "type": "照应", "effect": "照应开头与题目,强化中心论点" },
{ "type": "补充论述", "effect": "使论证完备严谨,避免片面性" },
{ "type": "重复强化", "effect": "重复或强化中心论点" },
{ "type": "激励号召", "effect": "强化中心论点,激励号召人们······" }
]
}
},
"scoring_guidelines": {
"name": "阅读理解评分原则",
"principles": [
"紧扣文本:有明确的文本依据,不脱离原文",
"分析深入:不止于表层信息,能揭示深层含义",
"表达清晰:使用专业术语,逻辑层次分明",
"结构完整:总-分-总的答题格式,先结论后分析",
"要点完整:不遗漏重要采分点",
"语言规范:使用标准学科术语,避免口语化"
],
"formula_summary": {
"记叙文": "手法+内容+效果+情感+结构作用",
"说明文": "说明方法+具体内容+事物特征+表达效果",
"议论文": "论证方法+论据+论点+说服力"
},
"common_deductions": [
"遗漏重要采分点",
"只写手法不分析效果",
"表述模糊或不准确",
"结构混乱,逻辑不清",
"语言口语化,缺乏专业术语"
]
}
}
教科书目录读取。用户问「这学期要学哪些古诗词」「《朝花夕拾》在哪个单元」时,直接读取对应 JSON 文件回答。
---
name: textbook
description: 教科书目录读取。用户问「这学期要学哪些古诗词」「《朝花夕拾》在哪个单元」时,直接读取对应 JSON 文件回答。
---
# 教科书目录 (Textbook Reader)
## 文件位置
```
actives_skills/textbook-reader/textbooks/
├── 七年级语文上册.json
├── 七年级语文下册.json
├── 高一数学必修一.json
└── ...
```
每本书一个 JSON,文件名即书名。
## JSON 格式
```json
{
"name": "七年级语文上册",
"units": [
{
"name": "第一单元",
"阅读": [
{ "Title": "春", "Author": "朱自清", "Type": "精读", "Sub": [] },
{
"Title": "古代诗歌四首",
"Author": "",
"Type": "精读",
"Sub": [
{ "Title": "观沧海", "Author": "曹操" },
{ "Title": "次北固山下", "Author": "王湾" }
]
}
],
"写作": ["热爱写作,学会观察"],
"综合性学习": [],
"整本书阅读": ["《朝花夕拾》"],
"课外古诗词": [{ "Title": "峨眉山月歌", "Author": "李白" }]
}
]
}
```
## 使用方式
当用户问及以下类型问题时,直接读取对应 JSON 文件并回答:
| 用户问 | 回答内容 |
| ------------------------------ | --------------------------------------------------- |
| 「七年级语文上册有哪些古诗词」 | 遍历所有单元的 `课外古诗词` + 阅读中的 `Sub` 子条目 |
| 「《朝花夕拾》在哪个单元」 | 在各单元 `整本书阅读` 中搜索 |
| 「第一单元有哪些课文」 | 读取对应册的 JSON,列出该单元 `阅读` 列表 |
| 「这学期要学哪些必读篇目」 | 列出所有 `Type: "精读"` 的篇目 |
| 「某首诗的作者是谁」 | 在 `阅读.Sub` 和 `课外古诗词` 中搜索 |
| 「某册有哪些单元」 | 直接列 `units` 中的 `name` |
## 执行方式
直接用 `read` 工具读取文件:
```
read: actives_skills/textbook-reader/textbooks/七年级语文上册.json
```
读取后根据用户问题解析 JSON 内容并回答。
## 添加新书
用户发送新课本目录时:
1. 接收文本(文字或图片)
2. 手动整理成 JSON 格式
3. 写入 `textbooks/书名.json`
回复:「✅ 已收录《书名》,共 X 个单元、Y 篇精读篇目、Z 首古诗词」
FILE:README.md
# Textbook Reader
教科书目录读取技能。根据 JSON 文件存储的课本目录信息,回答用户关于教材篇目、古诗词、必读篇目等查询。
## 数据文件
```
textbooks/
├── 七年级语文上册.json
├── 七年级语文下册.json
├── 八年级上册语文.json
├── 八年级语文下册.json
├── 九年级上册语文.json
├── 九年级语文下册.json
├── 七年级数学上册.json
├── 七年级数学下册.json
├── 八年级数学上册.json
├── 八年级数学下册.json
├── 九年级数学上册.json
├── 九年级数学下册.json
├── 七年级英语上册.json
├── 八年级上册物理.json
├── 八年级下册物理.json
├── 九年级物理全一册.json
├── 九年级上册化学.json
└── 九年级下册化学.json
```
## JSON 数据格式
```json
{
"name": "七年级语文上册",
"units": [
{
"name": "第一单元",
"阅读": [
{ "title": "春", "author": "朱自清", "type": "精读" },
{
"title": "古代诗歌四首",
"type": "精读",
"sub": [
{ "title": "观沧海", "author": "曹操", "type": "精读" },
{ "title": "次北固山下", "author": "王湾", "type": "精读" }
]
}
],
"写作": [{ "title": "热爱写作,学会观察", "type": "精读" }],
"综合性学习": [],
"整本书阅读": [{ "title": "《朝花夕拾》", "type": "精读" }],
"课外古诗词": [{ "title": "峨眉山月歌", "author": "李白", "type": "精读" }]
}
]
}
```
字段说明:
| 字段 | 说明 |
|------|------|
| `name` | 课本名称 |
| `units[].name` | 单元名称 |
| `阅读` | 该单元的阅读篇目,含 `精读`/`自读` |
| `阅读.sub` | 组合篇目下的子篇目(如《古代诗歌四首》包含四首古诗) |
| `写作` | 写作训练题目 |
| `综合性学习` | 综合性学习活动 |
| `整本书阅读` | 该单元要求的整本书阅读篇目 |
| `课外古诗词` | 该单元的课外古诗词背诵篇目 |
## 使用方式
当用户提问时,直接读取对应 JSON 文件回答:
| 用户问 | 回答内容 |
|--------|----------|
| 「七年级语文上册有哪些古诗词」 | 遍历 `课外古诗词` + `阅读` 中的 `sub` 子条目 |
| 「《朝花夕拾》在哪个单元」 | 在各单元 `整本书阅读` 中搜索 |
| 「第一单元有哪些课文」 | 读取对应册的 JSON,列出该单元 `阅读` 列表 |
| 「这学期要学哪些必读篇目」 | 列出所有 `type: "精读"` 的篇目 |
| 「某首诗的作者是谁」 | 在 `阅读.sub` 和 `课外古诗词` 中搜索 |
| 「某册有哪些单元」 | 直接列出 `units` 中的 `name` |
## 添加新书
1. 接收文本(文字或图片)
2. 整理成 JSON 格式
3. 写入 `textbooks/书名.json`
回复格式:「已收录《书名》,共 X 个单元、Y 篇精读篇目、Z 首古诗词」
FILE:textbooks/九年级物理全一册.json
{
"name": "九年级物理全一册",
"chapters": [
{
"name": "第十章 机械能,内能及其转化",
"sections": [
{"title": "第一节 机械能", "page": "2"},
{"title": "第二节 内能", "page": "9"},
{"title": "第三节 比热容", "page": "15"},
{"title": "第四节 热机", "page": "21"},
{"title": "第五节 调查燃料的利用及其对环境的影响", "page": "28"},
{"title": "第六节 能量转化与守恒", "page": "33"},
{"title": "整理与复习", "page": "38"}
]
},
{
"name": "第十一章 电路、电流和电压",
"sections": [
{"title": "第一节 认识电路", "page": "40"},
{"title": "第二节 电路的连接", "page": "46"},
{"title": "第三节 电荷", "page": "51"},
{"title": "第四节 电流及其测量", "page": "58"},
{"title": "第五节 电压及其测量", "page": "65"},
{"title": "整理与复习", "page": "72"}
]
},
{
"name": "第十二章 欧姆定律",
"sections": [
{"title": "第一节 不同物质的导电性能", "page": "74"},
{"title": "第二节 影响导体电阻大小的因素", "page": "79"},
{"title": "第三节 变阻器", "page": "83"},
{"title": "第四节 欧姆定律", "page": "89"},
{"title": "第五节 测量导体的电阻", "page": "94"},
{"title": "第六节 设计恒温电热杯", "page": "99"},
{"title": "整理与复习", "page": "105"}
]
},
{
"name": "第十三章 电功和电功率",
"sections": [
{"title": "第一节 电能和电功", "page": "107"},
{"title": "第二节 电功率", "page": "113"},
{"title": "第三节 电流的热效应", "page": "119"},
{"title": "第四节 家庭电路", "page": "125"},
{"title": "第五节 安全用电科普行", "page": "131"},
{"title": "整理与复习", "page": "138"}
]
},
{
"name": "第十四章 电与磁",
"sections": [
{"title": "第一节 简单磁现象", "page": "140"},
{"title": "第二节 磁场", "page": "146"},
{"title": "第三节 电流的磁场", "page": "152"},
{"title": "第四节 电磁铁及其应用", "page": "157"},
{"title": "第五节 磁场对通电导线的作用力", "page": "164"},
{"title": "第六节 探究产生感应电流的条件", "page": "171"},
{"title": "整理与复习", "page": "177"}
]
},
{
"name": "第十五章 电磁波与通信技术",
"sections": [
{"title": "第一节 电磁波", "page": "179"},
{"title": "第二节 广播和电视", "page": "185"},
{"title": "第三节 现代通信技术及其发展前景", "page": "194"},
{"title": "第四节 探寻移动通信技术的变迁", "page": "201"},
{"title": "整理与复习", "page": "206"}
]
},
{
"name": "第十六章 永恒的探索:宇宙和粒子",
"sections": [
{"title": "第一节 浩瀚的宇宙", "page": "208"},
{"title": "第二节 探索微观世界的历程", "page": "216"},
{"title": "第三节 核能的开发与利用", "page": "224"},
{"title": "第四节 设计节能环保小屋", "page": "232"},
{"title": "整理与复习", "page": "238"}
]
}
]
}
FILE:textbooks/八年级上册物理.json
{
"name": "八年级上册物理",
"chapters": [
{
"name": "第一章 物态及其变化",
"sections": [
{"title": "第一节 物态变化 温度", "page": "7"},
{"title": "第二节 熔化和凝固", "page": "15"},
{"title": "第三节 汽化和液化", "page": "21"},
{"title": "第四节 升华和凝华", "page": "28"},
{"title": "第五节 设计海水淡化装置", "page": "31"},
{"title": "整理与复习", "page": "35"}
]
},
{
"name": "第二章 机械运动",
"sections": [
{"title": "第一节 运动与静止", "page": "37"},
{"title": "第二节 长度及其测量", "page": "41"},
{"title": "第三节 比较物体运动的快慢", "page": "48"},
{"title": "第四节 平均速度", "page": "54"},
{"title": "第五节 平均速度的测量", "page": "60"},
{"title": "整理与复习", "page": "66"}
]
},
{
"name": "第三章 声现象",
"sections": [
{"title": "第一节 声音的产生与传播", "page": "68"},
{"title": "第二节 声音的特性", "page": "75"},
{"title": "第三节 制作隔音箱", "page": "80"},
{"title": "第四节 声波的应用", "page": "85"},
{"title": "整理与复习", "page": "89"}
]
},
{
"name": "第四章 光现象",
"sections": [
{"title": "第一节 光的传播", "page": "91"},
{"title": "第二节 光的反射", "page": "97"},
{"title": "第三节 平面镜成像的特点", "page": "102"},
{"title": "第四节 光的折射", "page": "108"},
{"title": "第五节 设计舞台灯光秀", "page": "114"},
{"title": "整理与复习", "page": "120"}
]
},
{
"name": "第五章 透镜及其应用",
"sections": [
{"title": "第一节 透镜", "page": "122"},
{"title": "第二节 凸透镜成像的规律", "page": "126"},
{"title": "第三节 生活中的透镜", "page": "132"},
{"title": "第四节 爱眼宣传公益行", "page": "139"},
{"title": "整理与复习", "page": "145"}
]
}
]
}
FILE:textbooks/九年级数学上册.json
{
"name": "九年级数学上册",
"chapters": [
{
"name": "第二十一章 一元二次方程",
"sections": [
{"title": "21.1 一元二次方程"},
{"title": "21.2 解一元二次方程", "extra": ["阅读与思考:黄金分割数"]},
{"title": "21.3 实际问题与一元二次方程"},
{"title": "数学活动"},
{"title": "小结"},
{"title": "复习题21"}
]
},
{
"name": "第二十二章 二次函数",
"sections": [
{"title": "22.1 二次函数的图象和性质"},
{"title": "22.2 二次函数与一元二次方程", "extra": ["信息技术应用:探索二次函数的性质"]},
{"title": "22.3 实际问题与二次函数", "extra": ["阅读与思考:推测滑行距离与滑行时间的关系"]},
{"title": "数学活动"},
{"title": "小结"},
{"title": "复习题22"}
]
},
{
"name": "第二十三章 旋转",
"sections": [
{"title": "23.1 图形的旋转"},
{"title": "23.2 中心对称", "extra": ["信息技术应用:探索旋转的性质"]},
{"title": "23.3 课题学习·图案设计", "extra": ["阅读与思考:旋转对称"]},
{"title": "数学活动"},
{"title": "小结"},
{"title": "复习题23"}
]
},
{
"name": "第二十四章 圆",
"sections": [
{"title": "24.1 圆的有关性质"},
{"title": "24.2 点和圆、直线和圆的位置关系", "extra": ["实验与探究:圆和圆的位置关系"]},
{"title": "24.3 正多边形和圆", "extra": ["阅读与思考:圆周率π"]},
{"title": "24.4 弧长和扇形面积", "extra": ["实验与探究:设计跑道"]},
{"title": "数学活动"},
{"title": "小结"},
{"title": "复习题24"}
]
},
{
"name": "第二十五章 概率初步",
"sections": [
{"title": "25.1 随机事件与概率"},
{"title": "25.2 用列举法求概率", "extra": ["阅读与思考:概率与中奖"]},
{"title": "25.3 用频率估计概率", "extra": ["实验与探究:π的估计"]},
{"title": "数学活动"},
{"title": "小结"},
{"title": "复习题25"}
]
}
]
}
FILE:textbooks/九年级下册化学.json
{
"name": "九年级下册化学",
"chapters": [
{
"name": "第八单元 金属和金属材料",
"sections": [
{"title": "课题1 金属材料", "type": "课题"},
{"title": "课题2 金属的化学性质", "type": "课题"},
{"title": "课题3 金属资源的利用和保护", "type": "课题"},
{"title": "整理与提升", "type": "整理"},
{"title": "复习与提高", "type": "复习"},
{"title": "实验活动5 常见金属的物理性质和化学性质", "type": "实验"},
{"title": "跨学科实践活动7 垃圾的分类与回收利用", "type": "实践"}
]
},
{
"name": "第九单元 溶液",
"sections": [
{"title": "课题1 溶液及其应用", "type": "课题"},
{"title": "课题2 溶解度", "type": "课题"},
{"title": "课题3 溶质的质量分数", "type": "课题"},
{"title": "整理与提升", "type": "整理"},
{"title": "复习与提高", "type": "复习"},
{"title": "实验活动6 一定溶质质量分数的氯化钠溶液的配制", "type": "实验"},
{"title": "实验活动7 粗盐中难溶性杂质的去除", "type": "实验"},
{"title": "跨学科实践活动8 海洋资源的综合利用与制盐", "type": "实践"}
]
},
{
"name": "第十单元 常见的酸、碱、盐",
"sections": [
{"title": "课题1 溶液的酸碱性", "type": "课题"},
{"title": "课题2 常见的酸和碱", "type": "课题"},
{"title": "课题3 常见的盐", "type": "课题"},
{"title": "整理与提升", "type": "整理"},
{"title": "复习与提高", "type": "复习"},
{"title": "实验活动8 常见酸、碱的化学性质", "type": "实验"},
{"title": "跨学科实践活动9 探究土壤酸碱性对植物生长的影响", "type": "实践"}
]
},
{
"name": "第十一单元 化学与社会",
"sections": [
{"title": "课题1 化学与人体健康", "type": "课题"},
{"title": "课题2 化学与可持续发展", "type": "课题"},
{"title": "整理与提升", "type": "整理"},
{"title": "复习与提高", "type": "复习"},
{"title": "跨学科实践活动10 调查我国航天科技领域中新型材料、新型能源的应用", "type": "实践"}
]
}
]
}
FILE:textbooks/九年级语文下册.json
{
"name": "九年级语文下册",
"units": [
{
"name": "第一单元",
"阅读": [
{"Title": "祖国啊,我亲爱的祖国", "Author": "舒婷", "Type": "精读", "Sub": []},
{"Title": "梅岭三章", "Author": "陈毅", "Type": "自读", "Sub": []},
{"Title": "短诗五首", "Author": "", "Type": "自读", "Sub": [
{"Title": "月夜", "Author": "沈尹默"},
{"Title": "萧红墓畔口占", "Author": "戴望舒"},
{"Title": "断章", "Author": "卞之琳"},
{"Title": "风雨吟", "Author": "芦荻"},
{"Title": "统一", "Author": "聂鲁达"}
]},
{"Title": "海燕", "Author": "高尔基", "Type": "精读", "Sub": []}
],
"写作": ["学习扩写"],
"综合性学习": [],
"整本书阅读": [],
"课外古诗词": []
},
{
"name": "第二单元",
"阅读": [
{"Title": "孔乙己", "Author": "鲁迅", "Type": "精读", "Sub": []},
{"Title": "变色龙", "Author": "契诃夫", "Type": "精读", "Sub": []},
{"Title": "溜索", "Author": "阿城", "Type": "自读", "Sub": []},
{"Title": "蒲柳人家(节选)", "Author": "刘绍棠", "Type": "自读", "Sub": []}
],
"写作": ["审题立意"],
"综合性学习": ["岁月如歌——我们的初中生活"],
"整本书阅读": [],
"课外古诗词": []
},
{
"name": "第三单元",
"阅读": [
{"Title": "鱼我所欲也", "Author": "《孟子》", "Type": "精读", "Sub": []},
{"Title": "唐雎不辱使命", "Author": "《战国策》", "Type": "自读", "Sub": []},
{"Title": "送东阳马生序", "Author": "宋濂", "Type": "精读", "Sub": []},
{"Title": "渔家傲·秋思", "Author": "范仲淹", "Type": "精读", "Sub": []},
{"Title": "江城子·密州出猎", "Author": "苏轼", "Type": "精读", "Sub": []},
{"Title": "破阵子·为陈同甫赋壮词以寄之", "Author": "辛弃疾", "Type": "精读", "Sub": []},
{"Title": "满江红(小住京华)", "Author": "秋瑾", "Type": "精读", "Sub": []}
],
"写作": ["布局谋篇"],
"综合性学习": [],
"整本书阅读": ["《儒林外史》"],
"课外古诗词": [
{"Title": "定风波(莫听穿林打叶声)", "Author": "苏轼"},
{"Title": "临江仙·夜登小阁,忆洛中旧游", "Author": "陈与义"},
{"Title": "太常引·建康中秋夜为吕叔潜赋", "Author": "辛弃疾"},
{"Title": "浣溪沙(身向云山那畔行)", "Author": "纳兰性德"}
]
},
{
"name": "第四单元",
"阅读": [
{"Title": "谈读书", "Author": "弗朗西斯·培根", "Type": "精读", "Sub": []},
{"Title": "不求甚解", "Author": "马南邨", "Type": "精读", "Sub": []},
{"Title": "山水画的意境", "Author": "李可染", "Type": "精读", "Sub": []},
{"Title": "无言之美", "Author": "朱光潜", "Type": "自读", "Sub": []},
{"Title": "驱遣我们的想象", "Author": "叶圣陶", "Type": "自读", "Sub": []}
],
"写作": ["修改润色"],
"综合性学习": ["辩论"],
"整本书阅读": [],
"课外古诗词": []
},
{
"name": "第五单元",
"阅读": [
{"Title": "屈原(节选)", "Author": "郭沫若", "Type": "精读", "Sub": []},
{"Title": "天下第一楼(节选)", "Author": "何冀平", "Type": "精读", "Sub": []},
{"Title": "枣儿", "Author": "孙鸿", "Type": "精读", "Sub": []}
],
"写作": [],
"综合性学习": ["演出与评议"],
"整本书阅读": [],
"课外古诗词": []
},
{
"name": "第六单元",
"阅读": [
{"Title": "曹刿论战", "Author": "《左传》", "Type": "精读", "Sub": []},
{"Title": "邹忌讽齐王纳谏", "Author": "《战国策》", "Type": "自读", "Sub": []},
{"Title": "陈涉世家", "Author": "司马迁", "Type": "自读", "Sub": []},
{"Title": "出师表", "Author": "诸葛亮", "Type": "精读", "Sub": []},
{"Title": "十五从军征", "Author": "", "Type": "精读", "Sub": []},
{"Title": "白雪歌送武判官归京", "Author": "岑参", "Type": "精读", "Sub": []},
{"Title": "南乡子·登京口北固亭有怀", "Author": "辛弃疾", "Type": "精读", "Sub": []},
{"Title": "过零丁洋", "Author": "文天祥", "Type": "精读", "Sub": []},
{"Title": "山坡羊·潼关怀古", "Author": "张养浩", "Type": "精读", "Sub": []}
],
"写作": ["有创意地表达"],
"综合性学习": [],
"整本书阅读": ["《简·爱》"],
"课外古诗词": [
{"Title": "南安军", "Author": "文天祥"},
{"Title": "别云间", "Author": "夏完淳"},
{"Title": "山坡羊·骊山怀古", "Author": "张养浩"},
{"Title": "朝天子·咏喇叭", "Author": "王磐"}
]
}
]
}
FILE:textbooks/八年级数学上册.json
{
"name": "八年级数学上册",
"chapters": [
{
"name": "第十三章 三角形",
"sections": [
{"title": "13.1 三角形的概念"},
{"title": "13.2 与三角形有关的线段"},
{"title": "13.3 三角形的内角与外角", "extra": ["阅读与思考:为什么要证明"]},
{"title": "数学活动"},
{"title": "小结", "extra": ["综合与实践:确定匀质薄板的重心位置"]}
]
},
{
"name": "第十四章 全等三角形",
"sections": [
{"title": "14.1 全等三角形及其性质"},
{"title": "14.2 三角形全等的判定", "extra": ["信息技术应用:探究三角形全等的条件"]},
{"title": "14.3 角的平分线", "extra": ["图说数学史:公理化方法"]},
{"title": "数学活动"},
{"title": "小结"}
]
},
{
"name": "第十五章 轴对称",
"sections": [
{"title": "15.1 图形的轴对称"},
{"title": "15.2 画轴对称的图形"},
{"title": "15.3 等腰三角形", "extra": ["探究与发现:三角形中边与角之间的不等关系"]},
{"title": "数学活动"},
{"title": "小结", "extra": ["综合与实践:最短路径问题"]}
]
},
{
"name": "第十六章 整式的乘法与因式分解",
"sections": [
{"title": "16.1 幂的运算"},
{"title": "16.2 整式的乘法"},
{"title": "16.3 乘法公式", "extra": ["阅读与思考:杨辉三角"]},
{"title": "17.1 用提公因式法分解因式"},
{"title": "17.2 用公式法分解因式", "extra": ["阅读与思考:x²+(p+q)x+pq型式子的因式分解"]},
{"title": "数学活动"},
{"title": "小结"}
]
},
{
"name": "第十八章 分式",
"sections": [
{"title": "18.1 分式及其基本性质"},
{"title": "18.2 分式的乘法与除法"},
{"title": "18.3 分式的加法与减法"},
{"title": "18.4 整数指数幂"},
{"title": "18.5 分式方程", "extra": ["阅读与思考:容器中的水能倒完吗"]},
{"title": "数学活动"},
{"title": "小结"}
]
}
]
}
FILE:textbooks/七年级数学上册.json
{
"name": "七年级数学上册",
"chapters": [
{
"name": "第一章 有理数",
"sections": [
{"title": "1.1 正数和负数", "extra": ["阅读与思考:用正负数表示允许偏差"]},
{"title": "1.2 有理数及其大小比较", "extra": ["图说数学史:漫漫长路识负数"]},
{"title": "数学活动"},
{"title": "小结"}
]
},
{
"name": "第二章 有理数的运算",
"sections": [
{"title": "2.1 有理数的加法与减法", "extra": ["阅读与思考:我国古代的正负数加减运算法则——正负术"]},
{"title": "2.2 有理数的乘法与除法", "extra": ["探究与发现:从数系扩充看有理数乘法法则"]},
{"title": "2.3 有理数的乘方"},
{"title": "数学活动"},
{"title": "小结"}
]
},
{
"name": "第三章 代数式",
"sections": [
{"title": "3.1 列代数式表示数量关系", "extra": ["阅读与思考:数字1与字母Ⅹ的对话"]},
{"title": "3.2 代数式的值"},
{"title": "数学活动"},
{"title": "小结"}
]
},
{
"name": "第四章 整式的加减",
"sections": [
{"title": "4.1 整式"},
{"title": "4.2 整式的加法与减法", "extra": ["信息技术应用:用电子表格进行数据计算"]},
{"title": "数学活动"},
{"title": "小结"}
]
},
{
"name": "第五章 一元一次方程",
"sections": [
{"title": "5.1 方程"},
{"title": "5.2 解一元一次方程", "extra": ["探究与发现:无限循环小数化分数"]},
{"title": "5.3 实际问题与一元一次方程", "extra": ["阅读与思考:初步认识数学模型"]},
{"title": "数学活动"},
{"title": "小结"}
]
},
{
"name": "第六章 几何图形初步",
"sections": [
{"title": "6.1 几何图形", "extra": ["图说数学史:几何的起源"]},
{"title": "6.2 直线、射线、线段", "extra": ["阅读与思考:长度的测量"]},
{"title": "6.3 角", "extra": ["阅读与思考:角的度量"]},
{"title": "数学活动"},
{"title": "小结"}
]
}
]
}
FILE:textbooks/八年级下册物理.json
{
"name": "八年级下册物理",
"chapters": [
{
"name": "第六章 质量和密度",
"sections": [
{"title": "第一节 物体的质量及其测量", "page": "2"},
{"title": "第二节 物质的密度", "page": "8"},
{"title": "第三节 密度的测量与应用", "page": "13"},
{"title": "第四节 探索新材料", "page": "18"},
{"title": "整理与复习", "page": "23"}
]
},
{
"name": "第七章 运动和力",
"sections": [
{"title": "第一节 力", "page": "25"},
{"title": "第二节 力的测量 弹力", "page": "29"},
{"title": "第三节 重力", "page": "36"},
{"title": "第四节 同一直线上二力的合成", "page": "41"},
{"title": "第五节 二力平衡", "page": "45"},
{"title": "第六节 摩擦力", "page": "49"},
{"title": "第七节 牛顿第一定律", "page": "54"},
{"title": "整理与复习", "page": "59"}
]
},
{
"name": "第八章 压强和浮力",
"sections": [
{"title": "第一节 压强", "page": "61"},
{"title": "第二节 液体压强", "page": "67"},
{"title": "第三节 探寻连通器", "page": "73"},
{"title": "第四节 大气压强", "page": "79"},
{"title": "第五节 流体压强与流速的关系", "page": "86"},
{"title": "第六节 浮力", "page": "91"},
{"title": "第七节 物体的浮沉条件及其应用", "page": "97"},
{"title": "整理与复习", "page": "101"}
]
},
{
"name": "第九章 机械和功",
"sections": [
{"title": "第一节 杠杆", "page": "103"},
{"title": "第二节 滑轮", "page": "110"},
{"title": "第三节 功", "page": "115"},
{"title": "第四节 比较做功的快慢", "page": "120"},
{"title": "第五节 探究使用机械是否省功", "page": "125"},
{"title": "第六节 制作简易升降机", "page": "131"},
{"title": "整理与复习", "page": "138"}
]
}
]
}
FILE:textbooks/八年级上册语文.json
{
"name": "八年级上册语文",
"units": [
{
"name": "第一单元",
"阅读": [
{"Title": "消息二则·我三十万大军胜利南渡长江", "Author": "毛泽东", "Type": "精读", "Sub": []},
{"Title": "消息二则·人民解放军百万大军横渡长江", "Author": "毛泽东", "Type": "精读", "Sub": []},
{"Title": "中国人首次进入自己的空间站", "Author": "余建斌、吴月辉、刘诗瑶", "Type": "精读", "Sub": []},
{"Title": "首届诺贝尔奖颁发", "Author": "", "Type": "精读", "Sub": []},
{"Title": ""飞天"凌空——跳水姑娘吕伟夺魁记", "Author": "夏浩然、樊云芳", "Type": "精读", "Sub": []},
{"Title": "一着惊海天——目击我国航母舰载战斗机首架次成功着舰", "Author": "蔡年迟、蒲海洋", "Type": "精读", "Sub": []},
{"Title": "国行公祭,为佑世界和平", "Author": "钟声", "Type": "精读", "Sub": []}
],
"写作": [],
"综合性学习": ["新闻采访", "新闻写作"],
"整本书阅读": [],
"课外古诗词": []
},
{
"name": "第二单元",
"阅读": [
{"Title": "藤野先生", "Author": "鲁迅", "Type": "精读", "Sub": []},
{"Title": "回忆鲁迅先生(节选)", "Author": "萧红", "Type": "精读", "Sub": []},
{"Title": "天上有颗"南仁东星"", "Author": "王宏甲", "Type": "自读", "Sub": []},
{"Title": "美丽的颜色", "Author": "艾芙·居里", "Type": "自读", "Sub": []}
],
"写作": ["学写传记"],
"综合性学习": [],
"整本书阅读": ["《红星照耀中国》"],
"课外古诗词": []
},
{
"name": "第三单元",
"阅读": [
{"Title": "三峡", "Author": "郦道元", "Type": "精读", "Sub": []},
{"Title": "答谢中书书", "Author": "陶弘景", "Type": "精读", "Sub": []},
{"Title": "记承天寺夜游", "Author": "苏轼", "Type": "精读", "Sub": []},
{"Title": "与朱元思书", "Author": "吴均", "Type": "自读", "Sub": []},
{"Title": "唐诗五首", "Author": "", "Type": "精读", "Sub": [
{"Title": "野望", "Author": "王绩"},
{"Title": "黄鹤楼", "Author": "崔颢"},
{"Title": "使至塞上", "Author": "王维"},
{"Title": "渡荆门送别", "Author": "李白"},
{"Title": "钱塘湖春行", "Author": "白居易"}
]}
],
"写作": ["学习描写景物"],
"综合性学习": ["人无信不立"],
"整本书阅读": [],
"课外古诗词": [
{"Title": "庭中有奇树", "Author": "《古诗十九首》"},
{"Title": "龟虽寿", "Author": "曹操"},
{"Title": "赠从弟(其二)", "Author": "刘桢"},
{"Title": "梁甫行", "Author": "曹植"}
]
},
{
"name": "第四单元",
"阅读": [
{"Title": "背影", "Author": "朱自清", "Type": "精读", "Sub": []},
{"Title": "白杨礼赞", "Author": "茅盾", "Type": "精读", "Sub": []},
{"Title": "永久的生命", "Author": "严文井", "Type": "自读", "Sub": []},
{"Title": "我为什么而活着", "Author": "罗素", "Type": "自读", "Sub": []},
{"Title": "昆明的雨", "Author": "汪曾祺", "Type": "自读", "Sub": []}
],
"写作": ["语言要连贯"],
"综合性学习": [],
"整本书阅读": ["《红岩》"],
"课外古诗词": []
},
{
"name": "第五单元",
"阅读": [
{"Title": "中国石拱桥", "Author": "茅以昇", "Type": "精读", "Sub": []},
{"Title": "苏州园林", "Author": "叶圣陶", "Type": "精读", "Sub": []},
{"Title": "人民英雄永垂不朽——瞻仰首都人民英雄纪念碑", "Author": "周定舫", "Type": "自读", "Sub": []},
{"Title": "梦回繁华", "Author": "毛宁", "Type": "自读", "Sub": []}
],
"写作": ["说明事物要抓住特征"],
"综合性学习": ["身边的文化遗产"],
"整本书阅读": [],
"课外古诗词": []
},
{
"name": "第六单元",
"阅读": [
{"Title": "得道多助,失道寡助", "Author": "《孟子》", "Type": "精读", "Sub": []},
{"Title": "富贵不能淫", "Author": "《孟子》", "Type": "精读", "Sub": []},
{"Title": "生于忧患,死于安乐", "Author": "《孟子》", "Type": "精读", "Sub": []},
{"Title": "愚公移山", "Author": "《列子》", "Type": "精读", "Sub": []},
{"Title": "周亚夫军细柳", "Author": "司马迁", "Type": "自读", "Sub": []},
{"Title": "诗词五首", "Author": "", "Type": "精读", "Sub": [
{"Title": "饮酒(其五)", "Author": "陶渊明"},
{"Title": "春望", "Author": "杜甫"},
{"Title": "雁门太守行", "Author": "李贺"},
{"Title": "赤壁", "Author": "杜牧"},
{"Title": "渔家傲(天接云涛连晓雾)", "Author": "李清照"}
]}
],
"写作": ["表达要得体"],
"综合性学习": [],
"整本书阅读": [],
"课外古诗词": [
{"Title": "浣溪沙(一曲新词酒一杯)", "Author": "晏殊"},
{"Title": "采桑子(轻舟短棹西湖好)", "Author": "欧阳修"},
{"Title": "相见欢(金陵城上西楼)", "Author": "朱敦儒"},
{"Title": "如梦令(常记溪亭日暮)", "Author": "李清照"}
]
}
]
}
FILE:textbooks/七年级语文下册.json
{
"name": "七年级语文下册",
"units": [
{
"name": "第一单元",
"阅读": [
{"Title": "邓稼先", "Author": "杨振宁", "Type": "精读", "Sub": []},
{"Title": "说和做——记闻一多先生言行片段", "Author": "臧克家", "Type": "精读", "Sub": []},
{"Title": "列夫·托尔斯泰", "Author": "茨威格", "Type": "自读", "Sub": []},
{"Title": "孙权劝学", "Author": "《资治通鉴》", "Type": "精读", "Sub": []}
],
"写作": ["写出人物特点"],
"综合性学习": [],
"整本书阅读": [],
"课外古诗词": []
},
{
"name": "第二单元",
"阅读": [
{"Title": "黄河颂", "Author": "光未然", "Type": "精读", "Sub": []},
{"Title": "老山界", "Author": "陆定一", "Type": "精读", "Sub": []},
{"Title": "谁是最可爱的人", "Author": "魏巍", "Type": "精读", "Sub": []},
{"Title": "土地的誓言", "Author": "端木蕻良", "Type": "自读", "Sub": []},
{"Title": "木兰诗", "Author": "", "Type": "精读", "Sub": []}
],
"写作": ["学习抒情"],
"综合性学习": ["我的语文生活"],
"整本书阅读": [],
"课外古诗词": []
},
{
"name": "第三单元",
"阅读": [
{"Title": "阿长与《山海经》", "Author": "鲁迅", "Type": "精读", "Sub": []},
{"Title": "山地回忆", "Author": "孙犁", "Type": "精读", "Sub": []},
{"Title": "台阶", "Author": "李森祥", "Type": "自读", "Sub": []},
{"Title": "卖油翁", "Author": "欧阳修", "Type": "精读", "Sub": []}
],
"写作": ["抓住细节"],
"综合性学习": [],
"整本书阅读": ["《骆驼祥子》"],
"课外古诗词": [
{"Title": "竹里馆", "Author": "王维"},
{"Title": "春夜洛城闻笛", "Author": "李白"},
{"Title": "逢入京使", "Author": "岑参"},
{"Title": "晚春", "Author": "韩愈"}
]
},
{
"name": "第四单元",
"阅读": [
{"Title": "驿路梨花", "Author": "彭荆风", "Type": "精读", "Sub": []},
{"Title": "青春之歌", "Author": "祝红蕾", "Type": "精读", "Sub": []},
{"Title": "有为有不为", "Author": "季羡林", "Type": "自读", "Sub": []},
{"Title": "短文两篇", "Author": "", "Type": "精读", "Sub": [
{"Title": "陋室铭", "Author": "刘禹锡"},
{"Title": "爱莲说", "Author": "周敦颐"}
]}
],
"写作": ["怎样选材"],
"综合性学习": ["孝亲敬老,传承家风"],
"整本书阅读": [],
"课外古诗词": []
},
{
"name": "第五单元",
"阅读": [
{"Title": "井冈翠竹", "Author": "袁鹰", "Type": "精读", "Sub": []},
{"Title": "紫藤萝瀑布", "Author": "宗璞", "Type": "精读", "Sub": []},
{"Title": "外国诗二首", "Author": "", "Type": "自读", "Sub": [
{"Title": "假如生活欺骗了你", "Author": "普希金"},
{"Title": "未选择的路", "Author": "弗罗斯特"}
]},
{"Title": "古代诗歌五首", "Author": "", "Type": "精读", "Sub": [
{"Title": "登幽州台歌", "Author": "陈子昂"},
{"Title": "望岳", "Author": "杜甫"},
{"Title": "登飞来峰", "Author": "王安石"},
{"Title": "游山西村", "Author": "陆游"},
{"Title": "已亥杂诗(其五)", "Author": "龚自珍"}
]}
],
"写作": ["语言要简明"],
"综合性学习": [],
"整本书阅读": ["《钢铁是怎样炼成的》"],
"课外古诗词": []
},
{
"name": "第六单元",
"阅读": [
{"Title": "太空一日", "Author": "杨利伟", "Type": "精读", "Sub": []},
{"Title": ""蛟龙"探海", "Author": "许晨", "Type": "精读", "Sub": []},
{"Title": "带上她的眼睛", "Author": "刘慈欣", "Type": "精读", "Sub": []},
{"Title": "活板", "Author": "沈括", "Type": "精读", "Sub": []}
],
"写作": [],
"综合性学习": [],
"整本书阅读": [],
"课外古诗词": [
{"Title": "泊秦淮", "Author": "杜牧"},
{"Title": "贾生", "Author": "李商隐"},
{"Title": "过松源晨炊漆公店(其五)", "Author": "杨万里"},
{"Title": "约客", "Author": "赵师秀"}
]
}
]
}
FILE:textbooks/九年级上册语文.json
{
"name": "九年级上册语文",
"units": [
{
"name": "第一单元",
"阅读": [
{"Title": "沁园春·雪", "Author": "毛泽东", "Type": "精读", "Sub": []},
{"Title": "周总理,你在哪里", "Author": "柯岩", "Type": "精读", "Sub": []},
{"Title": "我爱这土地", "Author": "艾青", "Type": "精读", "Sub": []},
{"Title": "乡愁", "Author": "余光中", "Type": "精读", "Sub": []},
{"Title": "你是人间的四月天——一句爱的赞颂", "Author": "林徽因", "Type": "精读", "Sub": []},
{"Title": "我看", "Author": "穆旦", "Type": "精读", "Sub": []}
],
"写作": [],
"综合性学习": ["诗歌朗诵", "尝试创作"],
"整本书阅读": ["《艾青诗选》"],
"课外古诗词": []
},
{
"name": "第二单元",
"阅读": [
{"Title": "敬业与乐业", "Author": "梁启超", "Type": "精读", "Sub": []},
{"Title": "就英法联军远征中国致巴特勒上尉的信", "Author": "雨果", "Type": "精读", "Sub": []},
{"Title": "论教养", "Author": "利哈乔夫", "Type": "自读", "Sub": []},
{"Title": "精神的三间小屋", "Author": "毕淑敏", "Type": "自读", "Sub": []}
],
"写作": ["观点要明确"],
"综合性学习": ["君子自强不息"],
"整本书阅读": [],
"课外古诗词": []
},
{
"name": "第三单元",
"阅读": [
{"Title": "岳阳楼记", "Author": "范仲淹", "Type": "精读", "Sub": []},
{"Title": "醉翁亭记", "Author": "欧阳修", "Type": "精读", "Sub": []},
{"Title": "湖心亭看雪", "Author": "张岱", "Type": "自读", "Sub": []},
{"Title": "行路难(其一)", "Author": "李白", "Type": "精读", "Sub": []},
{"Title": "酬乐天扬州初逢席上见赠", "Author": "刘禹锡", "Type": "精读", "Sub": []},
{"Title": "水调歌头(明月几时有)", "Author": "苏轼", "Type": "精读", "Sub": []}
],
"写作": ["议论要言之有据"],
"综合性学习": [],
"整本书阅读": [],
"课外古诗词": [
{"Title": "月夜忆舍弟", "Author": "杜甫"},
{"Title": "长沙过贾谊宅", "Author": "刘长卿"},
{"Title": "左迁至蓝关示侄孙湘", "Author": "韩愈"},
{"Title": "商山早行", "Author": "温庭筠"}
]
},
{
"name": "第四单元",
"阅读": [
{"Title": "故乡", "Author": "鲁迅", "Type": "精读", "Sub": []},
{"Title": "我的叔叔于勒", "Author": "莫泊桑", "Type": "精读", "Sub": []},
{"Title": "孤独之旅", "Author": "曹文轩", "Type": "自读", "Sub": []}
],
"写作": ["学习缩写"],
"综合性学习": ["走进小说天地"],
"整本书阅读": [],
"课外古诗词": []
},
{
"name": "第五单元",
"阅读": [
{"Title": "中国人失掉自信力了吗", "Author": "鲁迅", "Type": "精读", "Sub": []},
{"Title": "怀疑与学问", "Author": "顾颉刚", "Type": "精读", "Sub": []},
{"Title": "谈创造性思维", "Author": "罗迦·费·因格", "Type": "自读", "Sub": []},
{"Title": "创造宣言", "Author": "陶行知", "Type": "自读", "Sub": []}
],
"写作": ["论证要合理"],
"综合性学习": ["讨论"],
"整本书阅读": [],
"课外古诗词": []
},
{
"name": "第六单元",
"阅读": [
{"Title": "智取生辰纲", "Author": "施耐庵", "Type": "精读", "Sub": []},
{"Title": "范进中举", "Author": "吴敬梓", "Type": "精读", "Sub": []},
{"Title": "三顾茅庐", "Author": "罗贯中", "Type": "自读", "Sub": []},
{"Title": "刘姥姥进大观园", "Author": "曹雪芹", "Type": "自读", "Sub": []}
],
"写作": ["学习改写"],
"综合性学习": [],
"整本书阅读": ["《水浒传》"],
"课外古诗词": [
{"Title": "咸阳城东楼", "Author": "许浑"},
{"Title": "无题", "Author": "李商隐"},
{"Title": "行香子(树绕村庄)", "Author": "秦观"},
{"Title": "丑奴儿·书博山道中壁", "Author": "辛弃疾"}
]
}
]
}
FILE:textbooks/七年级语文上册.json
{
"name": "七年级语文上册",
"units": [
{
"name": "第一单元",
"阅读": [
{
"title": "春",
"author": "朱自清",
"type": "精读"
},
{
"title": "济南的冬天",
"author": "老舍",
"type": "精读"
},
{
"title": "雨的四季",
"author": "刘湛秋",
"type": "自读"
},
{
"title": "古代诗歌四首",
"author": "",
"type": "精读",
"sub": [
{
"title": "观沧海",
"author": "曹操",
"type": "精读"
},
{
"title": "次北固山下",
"author": "王湾",
"type": "精读"
},
{
"title": "闻王昌龄左迁龙标遥有此寄",
"author": "李白",
"type": "精读"
},
{
"title": "天净沙·秋思",
"author": "马致远",
"type": "精读"
}
]
}
],
"写作": [
{
"title": "热爱写作,学会观察",
"author": "",
"type": "精读"
}
],
"综合性学习": [],
"整本书阅读": [],
"课外古诗词": []
},
{
"name": "第二单元",
"阅读": [
{
"title": "秋天的怀念",
"author": "史铁生",
"type": "精读"
},
{
"title": "散步",
"author": "莫怀戚",
"type": "精读"
},
{
"title": "散文诗二首",
"author": "",
"type": "自读",
"sub": [
{
"title": "金色花",
"author": "泰戈尔",
"type": "精读"
},
{
"title": "荷叶·母亲",
"author": "冰心",
"type": "精读"
}
]
},
{
"title": "《世说新语》二则",
"author": "",
"type": "精读",
"sub": [
{
"title": "咏雪",
"author": "",
"type": "精读"
},
{
"title": "陈太丘与友期行",
"author": "",
"type": "精读"
}
]
}
],
"写作": [
{
"title": "学会记事",
"author": "",
"type": "精读"
},
{
"title": "专题学习活动",
"author": "",
"type": "精读"
},
{
"title": "有朋自远方来",
"author": "",
"type": "精读"
}
],
"综合性学习": [],
"整本书阅读": [],
"课外古诗词": []
},
{
"name": "第三单元",
"阅读": [
{
"title": "从百草园到三味书屋",
"author": "鲁迅",
"type": "精读"
},
{
"title": "往事依依",
"author": "于漪",
"type": "精读"
},
{
"title": "再塑生命的人",
"author": "海伦·凯勒",
"type": "自读"
},
{
"title": "《论语》十二章",
"author": "",
"type": "精读"
}
],
"写作": [
{
"title": "如何突出中心",
"author": "",
"type": "精读"
}
],
"综合性学习": [],
"整本书阅读": [
{
"title": "《朝花夕拾》",
"author": "",
"type": "精读"
}
],
"课外古诗词": [
{
"title": "峨眉山月歌",
"author": "李白",
"type": "精读"
},
{
"title": "江南逢李龟年",
"author": "杜甫",
"type": "精读"
},
{
"title": "行军九日思长安故园",
"author": "岑参",
"type": "精读"
},
{
"title": "夜上受降城闻笛",
"author": "李益",
"type": "精读"
}
]
},
{
"name": "第四单元",
"阅读": [
{
"title": "纪念白求恩",
"author": "毛泽东",
"type": "精读"
},
{
"title": "回忆我的母亲",
"author": "朱德",
"type": "精读"
},
{
"title": "梅岭三章",
"author": "陈毅",
"type": "自读"
},
{
"title": "诫子书",
"author": "诸葛亮",
"type": "精读"
}
],
"写作": [
{
"title": "思路要清晰",
"author": "",
"type": "精读"
},
{
"title": "专题学习活动",
"author": "",
"type": "精读"
},
{
"title": "少年正是读书时",
"author": "",
"type": "精读"
}
],
"综合性学习": [],
"整本书阅读": [],
"课外古诗词": []
},
{
"name": "第五单元",
"阅读": [],
"写作": [],
"综合性学习": [],
"整本书阅读": [],
"课外古诗词": []
},
{
"name": "第六单元",
"阅读": [
{
"title": "小圣施威降大圣",
"author": "吴承恩",
"type": "精读"
},
{
"title": "皇帝的新装",
"author": "安徒生",
"type": "精读"
},
{
"title": "女娲造人",
"author": "袁珂",
"type": "自读"
},
{
"title": "寓言四则",
"author": "",
"type": "精读",
"sub": [
{
"title": "赫耳墨斯和雕像者",
"author": "伊索寓言",
"type": "精读"
},
{
"title": "蚊子和狮子",
"author": "伊索寓言",
"type": "精读"
},
{
"title": "穿井得一人",
"author": "吕氏春秋",
"type": "精读"
},
{
"title": "杞人忧天",
"author": "列子",
"type": "精读"
}
]
}
],
"写作": [
{
"title": "发挥联想和想象",
"author": "",
"type": "精读"
}
],
"综合性学习": [],
"整本书阅读": [
{
"title": "《西游记》",
"author": "",
"type": "精读"
}
],
"课外古诗词": [
{
"title": "秋词(其一)",
"author": "刘禹锡",
"type": "精读"
},
{
"title": "夜雨寄北",
"author": "李商隐",
"type": "精读"
},
{
"title": "十一月四日风雨大作(其二)",
"author": "陆游",
"type": "精读"
},
{
"title": "潼关",
"author": "谭嗣同",
"type": "精读"
}
]
}
]
}
FILE:textbooks/七年级数学下册.json
{
"name": "七年级数学下册",
"chapters": [
{
"name": "第七章 相交线与平行线",
"sections": [
{"title": "7.1 相交线", "extra": ["观察与猜想:看图时的错觉"]},
{"title": "7.2 平行线"},
{"title": "7.3 定义、命题、定理"},
{"title": "7.4 平移", "extra": ["探究与发现:利用平移设计图案"]},
{"title": "数学活动"},
{"title": "小结"}
]
},
{
"name": "第八章 实数",
"sections": [
{"title": "8.1 平方根"},
{"title": "8.2 立方根"},
{"title": "8.3 实数及其简单运算", "extra": ["阅读与思考:为什么√2不是有理数"]},
{"title": "数学活动"},
{"title": "小结"}
]
},
{
"name": "第九章 平面直角坐标系",
"sections": [
{"title": "9.1 用坐标描述平面内点的位置", "extra": ["阅读与思考:用经纬度表示地理位置"]},
{"title": "9.2 坐标方法的简单应用"},
{"title": "数学活动"},
{"title": "小结"}
]
},
{
"name": "第十章 二元一次方程组",
"sections": [
{"title": "10.1 二元一次方程组的概念"},
{"title": "10.2 消元——解二元一次方程组"},
{"title": "10.3 实际问题与二元一次方程组"},
{"title": "10.4 三元一次方程组的解法*"},
{"title": "数学活动", "extra": ["图说数学史:中国古代数学的光辉成就——解多元一次方程组", "阅读与思考:中国古代著名的一次不定方程组问题"]}
]
},
{
"name": "第十一章 不等式与不等式组",
"sections": [
{"title": "11.1 不等式", "extra": ["阅读与思考:用求差法比较大小"]},
{"title": "11.2 一元一次不等式"},
{"title": "11.3 一元一次不等式组"},
{"title": "数学活动"},
{"title": "小结", "extra": ["综合与实践:低碳生活"]}
]
},
{
"name": "第十二章 数据的收集、整理与描述",
"sections": [
{"title": "12.1 统计调查", "extra": ["探究与发现:瓶子中有多少粒豆子"]},
{"title": "12.2 用统计图描述数据", "extra": ["信息技术应用:利用信息技术工具画统计图", "图说数学史:统计学点滴"]},
{"title": "数学活动"},
{"title": "小结"}
]
}
]
}
FILE:textbooks/八年级语文下册.json
{
"name": "八年级语文下册",
"units": [
{
"name": "第一单元",
"阅读": [
{"Title": "社戏", "Author": "鲁迅", "Type": "精读", "Sub": []},
{"Title": "回延安", "Author": "贺敬之", "Type": "精读", "Sub": []},
{"Title": "安塞腰鼓", "Author": "刘成章", "Type": "自读", "Sub": []},
{"Title": "灯笼", "Author": "吴伯箫", "Type": "自读", "Sub": []}
],
"写作": ["考虑目的和对象"],
"综合性学习": [],
"整本书阅读": [],
"课外古诗词": []
},
{
"name": "第二单元",
"阅读": [
{"Title": "大自然的语言", "Author": "竺可桢、宛敏渭", "Type": "精读", "Sub": []},
{"Title": "阿西莫夫短文两篇·恐龙无处不有", "Author": "阿西莫夫", "Type": "精读", "Sub": []},
{"Title": "阿西莫夫短文两篇·被压扁的沙子", "Author": "阿西莫夫", "Type": "精读", "Sub": []},
{"Title": "月亮是从哪里来的", "Author": "卞毓麟", "Type": "自读", "Sub": []},
{"Title": "时间的脚印", "Author": "陶世龙", "Type": "自读", "Sub": []}
],
"写作": ["说明的顺序"],
"综合性学习": ["绿水青山,低碳生活"],
"整本书阅读": [],
"课外古诗词": []
},
{
"name": "第三单元",
"阅读": [
{"Title": "桃花源记", "Author": "陶渊明", "Type": "精读", "Sub": []},
{"Title": "小石潭记", "Author": "柳宗元", "Type": "精读", "Sub": []},
{"Title": "核舟记", "Author": "魏学洢", "Type": "自读", "Sub": []},
{"Title": "关雎", "Author": "《诗经》", "Type": "精读", "Sub": []},
{"Title": "蒹葭", "Author": "《诗经》", "Type": "精读", "Sub": []}
],
"写作": ["学写读后感"],
"综合性学习": [],
"整本书阅读": ["《经典常谈》"],
"课外古诗词": [
{"Title": "式微", "Author": "《诗经·邶风》"},
{"Title": "子衿", "Author": "《诗经·郑风》"},
{"Title": "送杜少府之任蜀州", "Author": "王勃"},
{"Title": "望洞庭湖上张丞相", "Author": "孟浩然"}
]
},
{
"name": "第四单元",
"阅读": [
{"Title": "最后一次讲演", "Author": "闻一多", "Type": "精读", "Sub": []},
{"Title": "敬业与乐业", "Author": "梁启超", "Type": "精读", "Sub": []},
{"Title": "应有格物致知精神", "Author": "丁肇中", "Type": "精读", "Sub": []},
{"Title": "我一生中的重要抉择", "Author": "王选", "Type": "精读", "Sub": []}
],
"写作": ["撰写演讲稿"],
"综合性学习": ["演讲比赛"],
"整本书阅读": [],
"课外古诗词": []
},
{
"name": "第五单元",
"阅读": [
{"Title": "壶口瀑布", "Author": "梁衡", "Type": "精读", "Sub": []},
{"Title": "在长江源头各拉丹冬", "Author": "马丽华", "Type": "精读", "Sub": []},
{"Title": "登勃朗峰", "Author": "马克·吐温", "Type": "自读", "Sub": []},
{"Title": "一滴水经过丽江", "Author": "阿来", "Type": "自读", "Sub": []}
],
"写作": ["学写游记"],
"综合性学习": [],
"整本书阅读": ["《昆虫记》"],
"课外古诗词": []
},
{
"name": "第六单元",
"阅读": [
{"Title": "北冥有鱼", "Author": "《庄子》", "Type": "精读", "Sub": []},
{"Title": "庄子与惠子游于濠梁之上", "Author": "《庄子》", "Type": "精读", "Sub": []},
{"Title": "虽有嘉肴", "Author": "《礼记》", "Type": "精读", "Sub": []},
{"Title": "大道之行也", "Author": "《礼记》", "Type": "精读", "Sub": []},
{"Title": "马说", "Author": "韩愈", "Type": "自读", "Sub": []},
{"Title": "石壕吏", "Author": "杜甫", "Type": "精读", "Sub": []},
{"Title": "茅屋为秋风所破歌", "Author": "杜甫", "Type": "精读", "Sub": []},
{"Title": "卖炭翁", "Author": "白居易", "Type": "精读", "Sub": []}
],
"写作": ["负责任地表达"],
"综合性学习": ["以和为贵"],
"整本书阅读": [],
"课外古诗词": [
{"Title": "题破山寺后禅院", "Author": "常建"},
{"Title": "送友人", "Author": "李白"},
{"Title": "卜算子·黄州定慧院寓居作", "Author": "苏轼"},
{"Title": "卜算子·咏梅", "Author": "陆游"}
]
}
]
}
FILE:textbooks/七年级英语上册.json
{
"name": "七年级英语上册",
"units": [
{
"name": "Starter Unit 1",
"sections": [
{"title": "Hello! How do you greet people?", "type": "听说", "extra": ["Pronunciation: 26 letters", "p.1"]},
{"title": "Keep Tidy! What do you have?", "type": "听说", "extra": ["Pronunciation: a, e, i, o, u (1)", "p.7"]},
{"title": "Welcome! What is fun in a yard?", "type": "听说", "extra": ["Pronunciation: a, e, i, o, u (2)", "p.13"]}
]
},
{
"name": "Starter Unit 2",
"sections": [
{"title": "You and Me: How do we get to know each other?", "type": "听说", "extra": ["Pronunciation: /i:/, /i/; /e/, /æ/", "Contractions", "p.19"]},
{"title": "We're Family: What is your family like?", "type": "听说", "extra": ["Pronunciation: /ɜ:/, /e/; /ʌ/, /ɑː/", "Word stress (1)", "p.27"]}
]
},
{
"name": "Starter Unit 3",
"sections": [
{"title": "My School: What is your school like?", "type": "听说", "extra": ["Pronunciation: /θ:/, /ð/; /u:/, /u/", "Word stress (2)", "p.35"]},
{"title": "My Favourite Subject: Why do you like this subject?", "type": "听说", "extra": ["Pronunciation: /eɪ/, /aɪ/, /ɔɪ/; /əʊ/, /aʊ/; /ɪə/, /eə/, /ʊə/", "Linking", "p.43"]},
{"title": "Fun Clubs: How do you choose a school club?", "type": "听说", "extra": ["Pronunciation: /p/, /b/; /t/, /d/; /k/, /g/; /f/, /v/", "Incomplete plosion", "p.51"]},
{"title": "A Day in the Life: How do you spend your school day?", "type": "听说", "extra": ["Pronunciation: /s/, /z/; /ʃ/, /ʒ/; /tʃ/, /dʒ/; /θ/, /ð/", "Sentence stress", "p.59"]},
{"title": "Happy Birthday: How do we celebrate birthdays?", "type": "听说", "extra": ["Pronunciation: /h/, /r/, /l/, /m/, /n/, /ŋ/, /w/, /j/", "Intonation", "p.67"]}
]
},
{
"name": "Unit 1 Section A",
"sections": [
{"title": "How do we make new friends?", "type": "听说读", "extra": ["Listening: Conversations with new people at school", "Speaking: Introduce oneself and others", "p.19"]}
]
},
{
"name": "Unit 1 Section B",
"sections": [
{"title": "How do you start a conversation?", "type": "读写", "extra": ["Reading and Writing: Start a conversation"]},
{"title": "Where do you put your things?", "type": "读写", "extra": ["Reading and Writing: Describe things around you"]},
{"title": "What is fun on a farm?", "type": "读写", "extra": ["Reading and Writing: Describe a farm"]},
{"title": "What do we need to know about a new friend?", "type": "项目", "extra": ["Make your own personal profile", "p.27"]}
]
},
{
"name": "Unit 2 Section A",
"sections": [
{"title": "What do you like about your school?", "type": "听说", "extra": ["Listening: Conversations about places in the new school", "Speaking: Talk about the classroom"]}
]
},
{
"name": "Unit 2 Section B",
"sections": [
{"title": "What fun things do you do at school?", "type": "读写", "extra": ["Reading: An email to a friend about the new school", "Writing: Email a friend to describe your school", "Grammar: There be structure"]},
{"title": "What can you learn from different subjects?", "type": "读写", "extra": ["Reading: Two posts about school subjects", "Writing: Write a post about your subjects", "Grammar: Conjunctions"]},
{"title": "What can you learn in a school club?", "type": "读写", "extra": ["Reading: School club ads", "Writing: Email a club leader to join the club", "Grammar: Modal verb can"]},
{"title": "How different are people's daily routines?", "type": "项目", "extra": ["Interview people about their daily routines", "Grammar: Time expressions, Wh-questions"]}
]
},
{
"name": "Unit 3 Section A",
"sections": [
{"title": "Why do we learn different subjects?", "type": "听说", "extra": ["Listening: Conversations about today's subjects", "Speaking: Talk about the subjects you like and why", "p.43"]}
]
},
{
"name": "Unit 3 Section B",
"sections": [
{"title": "How do you make your birthday meaningful?", "type": "项目", "extra": ["Celebrate your birthdays together", "Grammar: Ordinal numbers, Wh-questions review", "p.67"]}
]
},
{
"name": "Appendices",
"sections": [
{"title": "Reading Plus", "extra": ["p.75"]},
{"title": "Pronunciation", "extra": ["p.92"]},
{"title": "Listening Scripts", "extra": ["p.82"]},
{"title": "Grammar", "extra": ["p.95"]}
]
}
]
}
FILE:textbooks/九年级数学下册.json
{
"name": "九年级数学下册",
"chapters": [
{
"name": "第二十六章 反比例函数",
"sections": [
{"title": "26.1 反比例函数", "extra": ["信息技术应用:探索反比例函数的性质"]},
{"title": "26.2 实际问题与反比例函数", "extra": ["阅读与思考:生活中的反比例关系"]},
{"title": "数学活动"},
{"title": "小结"},
{"title": "复习题26"}
]
},
{
"name": "第二十七章 相似",
"sections": [
{"title": "27.1 图形的相似"},
{"title": "27.2 相似三角形", "extra": ["观察与猜想:奇妙的分形图形"]},
{"title": "27.3 位似", "extra": ["信息技术应用:探索位似的性质"]},
{"title": "数学活动"},
{"title": "小结"},
{"title": "复习题27"}
]
},
{
"name": "第二十八章 锐角三角函数",
"sections": [
{"title": "28.1 锐角三角函数", "extra": ["阅读与思考:一张古老的三角函数表"]},
{"title": "28.2 解直角三角形及其应用", "extra": ["阅读与思考:山坡的高度"]},
{"title": "数学活动"},
{"title": "小结"},
{"title": "复习题28"}
]
},
{
"name": "第二十九章 投影与视图",
"sections": [
{"title": "29.1 投影"},
{"title": "29.2 三视图", "extra": ["阅读与思考:视图的产生与应用"]},
{"title": "29.3 课题学习·制作立体模型"},
{"title": "数学活动"},
{"title": "小结"},
{"title": "复习题29"}
]
}
]
}
FILE:textbooks/八年级数学下册.json
{
"name": "八年级数学下册",
"chapters": [
{
"name": "第十九章 二次根式",
"sections": [
{"title": "19.1 二次根式及其性质"},
{"title": "19.2 二次根式的乘法与除法"},
{"title": "19.3 二次根式的加法与减法", "extra": ["阅读与思考:海伦-秦九韶公式"]},
{"title": "数学活动"},
{"title": "小结"}
]
},
{
"name": "第二十章 勾股定理",
"sections": [
{"title": "20.1 勾股定理及其应用", "extra": ["阅读与思考:勾股定理的证明"]},
{"title": "20.2 勾股定理的逆定理及其应用", "extra": ["图说数学史:数学瑰宝——勾股定理"]},
{"title": "数学活动"},
{"title": "小结"}
]
},
{
"name": "第二十一章 四边形",
"sections": [
{"title": "21.1 四边形及多边形", "extra": ["探究与发现:用多边形镶嵌平面"]},
{"title": "21.2 平行四边形"},
{"title": "21.3 特殊的平行四边形", "extra": ["探究与发现:利用菱形的性质和判定尺规作图"]},
{"title": "数学活动"},
{"title": "小结"}
]
},
{
"name": "第二十二章 函数",
"sections": [
{"title": "22.1 函数的概念", "extra": ["图说数学史:函数概念的探索之路"]},
{"title": "22.2 函数的表示"},
{"title": "数学活动"},
{"title": "小结"}
]
},
{
"name": "第二十三章 一次函数",
"sections": [
{"title": "23.1 一次函数的概念"},
{"title": "23.2 一次函数的图象和性质", "extra": ["信息技术应用:探究函数的图象和性质"]},
{"title": "23.3 一次函数与方程(组)、不等式"},
{"title": "23.4 实际问题与一次函数", "extra": ["综合与实践:音乐与数学"]},
{"title": "数学活动"},
{"title": "小结"}
]
},
{
"name": "第二十四章 数据的分析",
"sections": [
{"title": "24.1 数据的集中趋势", "extra": ["信息技术应用:利用统计软件求统计量"]},
{"title": "24.2 数据的离散程度"},
{"title": "24.3 数据的四分位数"},
{"title": "24.4 数据的分组", "extra": ["阅读与思考:大数据及其应用", "综合与实践:学生体质健康调查与分析"]},
{"title": "数学活动"},
{"title": "小结"}
]
}
]
}
FILE:textbooks/九年级上册化学.json
{
"name": "九年级上册化学",
"chapters": [
{
"name": "绪论",
"sections": [
{"title": "化学使世界变得更加绚丽多彩", "type": "绪论"}
]
},
{
"name": "第一单元 走进化学世界",
"sections": [
{"title": "课题1 物质的变化和性质", "type": "课题"},
{"title": "课题2 化学实验与科学探究", "type": "课题"},
{"title": "整理与提升", "type": "整理"},
{"title": "复习与提高", "type": "复习"}
]
},
{
"name": "第二单元 空气和氧气",
"sections": [
{"title": "课题1 我们周围的空气", "type": "课题"},
{"title": "课题2 氧气", "type": "课题"},
{"title": "课题3 制取氧气", "type": "课题"},
{"title": "整理与提升", "type": "整理"},
{"title": "复习与提高", "type": "复习"},
{"title": "实验活动1 氧气的实验室制取与性质", "type": "实验"},
{"title": "跨学科实践活动1 微型空气质量检测站的组装与使用", "type": "实践"}
]
},
{
"name": "第三单元 物质构成的奥秘",
"sections": [
{"title": "课题1 分子和原子", "type": "课题"},
{"title": "课题2 原子结构", "type": "课题"},
{"title": "课题3 元素", "type": "课题"},
{"title": "整理与提升", "type": "整理"},
{"title": "复习与提高", "type": "复习"},
{"title": "跨学科实践活动2 制作模型并展示科学家探索物质组成与结构的历程", "type": "实践"}
]
},
{
"name": "第四单元 自然界的水",
"sections": [
{"title": "课题1 水资源及其利用", "type": "课题"},
{"title": "课题2 水的组成", "type": "课题"},
{"title": "课题3 物质组成的表示", "type": "课题"},
{"title": "整理与提升", "type": "整理"},
{"title": "复习与提高", "type": "复习"},
{"title": "实验活动2 水的组成及变化的探究", "type": "实验"},
{"title": "跨学科实践活动3 水质检测及自制净水器", "type": "实践"}
]
},
{
"name": "第五单元 化学反应的定量关系",
"sections": [
{"title": "课题1 质量守恒定律", "type": "课题"},
{"title": "课题2 化学方程式", "type": "课题"},
{"title": "整理与提升", "type": "整理"},
{"title": "复习与提高", "type": "复习"},
{"title": "跨学科实践活动4 基于特定需求设计和制作简易供氧器", "type": "实践"}
]
},
{
"name": "第六单元 碳和碳的氧化物",
"sections": [
{"title": "课题1 碳单质的多样性", "type": "课题"},
{"title": "课题2 碳的氧化物", "type": "课题"},
{"title": "课题3 二氧化碳的实验室制取", "type": "课题"},
{"title": "整理与提升", "type": "整理"},
{"title": "复习与提高", "type": "复习"},
{"title": "实验活动3 二氧化碳的实验室制取与性质", "type": "实验"},
{"title": "跨学科实践活动5 基于碳中和理念设计低碳行动方案", "type": "实践"}
]
},
{
"name": "第七单元 能源的合理利用与开发",
"sections": [
{"title": "课题1 燃料的燃烧", "type": "课题"},
{"title": "课题2 化石能源的合理利用", "type": "课题"},
{"title": "整理与提升", "type": "整理"},
{"title": "复习与提高", "type": "复习"},
{"title": "实验活动4 燃烧条件的探究", "type": "实验"},
{"title": "跨学科实践活动6 调查家用燃料的变迁与合理使用", "type": "实践"}
]
}
]
}
VitePress static site generator toolkit. Use when working with VitePress configuration, theming, routing, markdown, Vue in markdown, data loading, custom the...
---
name: vitepress
description: 'VitePress static site generator toolkit. Use when working with VitePress configuration, theming, routing, markdown, Vue in markdown, data loading, custom themes, SSR, i18n, or deployment. Triggers: vitepress config, site-config, theme config, .vitepress/config, frontmatter, vitepress dev/build/preview, markdown extensions, custom theme, data loader.'
---
# VitePress
Vue-powered static site generator for documentation, blogs, and marketing sites.
## Quick Start
```sh
npm add -D vitepress@next
npx vitepress init
npm run docs:dev
```
## Core Config
```typescript
import { defineConfig } from 'vitepress'
export default defineConfig({
title: 'My Site',
description: 'Site description',
base: '/docs/', // for sub-path deployment
srcDir: './src', // markdown source directory
cleanUrls: true, // remove .html
appearance: 'dark', // dark mode
lastUpdated: true, // Git-based timestamps
themeConfig: {
logo: '/logo.svg',
nav: [
{ text: 'Guide', link: '/guide/' },
{ text: 'Config', link: '/reference/site-config' }
],
sidebar: [
{ text: 'Section', items: [{ text: 'Page', link: '/page' }] }
],
search: { provider: 'local' }
}
})
```
## Frontmatter
```yaml
---
title: Page Title
layout: doc # doc | home | page
navbar: true
sidebar: true
outline: [2, 3] # show h2-h3 in aside
lastUpdated: true
editLink: true
footer: true
---
```
Home page hero:
```yaml
---
layout: home
hero:
name: VitePress
text: Static site generator
actions:
- theme: brand
text: Get Started
link: /guide/getting-started
features:
- icon: 🛠️
title: Fast
details: Built with Vite
---
```
## Markdown Extensions
```md
## Custom anchor {#custom}
::: info
Info box
:::
```js{2}
const x = 1 // highlight line 2
:::
<<< @/snippets/file.js{1}
[[toc]]
```
```
## Routing
```
index.md --> /
guide/start.md --> /guide/start/
```
Dynamic routes: `packages/[pkg].md` + `packages/[pkg].paths.js`
## Custom Theme
```javascript
// .vitepress/theme/index.js
import Layout from './Layout.vue'
export default { Layout }
```
```vue
<!-- Layout.vue -->
<template>
<h1>Custom Layout!</h1>
<Content />
</template>
```
Extend default theme:
```javascript
import DefaultTheme from 'vitepress/theme'
export default { extends: DefaultTheme }
```
## Data Loading
```javascript
// .vitepress/posts.data.js
import { createContentLoader } from 'vitepress'
export default createContentLoader('posts/*.md', {
transform: (data) => data.sort(/* ... */)
})
```
```vue
<script setup>
import { data } from './posts.data.js'
</script>
```
## SSR
```vue
<ClientOnly>
<BrowserOnlyComponent />
</ClientOnly>
```
## CLI
```sh
vitepress dev docs # start dev server
vitepress build docs # build for production
vitepress preview docs # preview production build
```
## Reference Files
Detailed docs in `references/` directory:
### Guide Pages
- `what-is-vitepress.md` - What is VitePress, use cases, performance
- `getting-started.md` - Installation and setup
- `routing.md` - File routing, clean URLs, rewrites, dynamic routes
- `markdown.md` - Markdown extensions syntax
- `asset-handling.md` - Static assets, public directory, base URL
- `using-vue.md` - Using Vue in markdown, components, directives
- `extending-default-theme.md` - CSS customization, layout slots, view transitions
- `custom-theme.md` - Building custom themes
- `data-loading-ssr-i18n.md` - Data loaders, SSR, i18n
- `mpa-mode.md` - MPA mode for zero-JS sites
- `sitemap-generation.md` - Sitemap generation
- `cms.md` - Connecting to CMS
- `deploy.md` - Deployment guides for various platforms
### Reference Pages
- `site-config.md` - All config options and build hooks
- `frontmatter.md` - Page frontmatter options
- `runtime-api.md` - useData, useRoute, useRouter, withBase
- `cli.md` - Command line options
- `default-theme-config.md` - Nav, sidebar, search, footer options
- `default-theme-components.md` - Hero, features, badge, team page
## Links
- [Official Docs](https://vitepress.dev/)
- [Guide](https://vitepress.dev/guide/)
- [Reference](https://vitepress.dev/reference/site-config)
- [GitHub](https://github.com/vuejs/vitepress)
FILE:references/routing.md
# Routing Reference
> Source: https://vitepress.dev/guide/routing
## File-Based Routing
```
index.md --> /index.html (accessible as /)
prologue.md --> /prologue.html
guide/index.md --> /guide/index.html (accessible as /guide/)
guide/getting-started.md --> /guide/getting-started.html
```
## Root and Source Directory
**Project Root:** Where `.vitepress/` directory lives.
**Source Directory:** Where Markdown files live (default: same as root, configured via `srcDir`).
## Linking
```md
<!-- Relative, recommended -->
[Getting Started](./getting-started)
[Guide](../guide/getting-started)
<!-- Avoid -->
[Getting Started](./getting-started.md)
```
## Clean URLs
Enable in config: `cleanUrls: true`
Requires server support to serve `/foo.html` when visiting `/foo`.
Server configurations:
- **Netlify/GitHub Pages:** Support by default
- **Vercel:** Enable in `vercel.json`
## Rewrites
```typescript
export default {
rewrites: {
'packages/:pkg/src/:slug*': ':pkg/:slug*'
}
}
```
Or use function:
```typescript
rewrites(id) {
return id.replace(/^packages\/([^/]+)\/src\//, '$1/')
}
```
## Dynamic Routes
### File Structure
```
packages/
├─ [pkg].md # route template
└─ [pkg].paths.js # paths loader
```
### paths.js
```javascript
export default {
paths() {
return [
{ params: { pkg: 'foo' }},
{ params: { pkg: 'bar' }}
]
}
}
```
### TypeScript with defineRoutes
```typescript
import { defineRoutes } from 'vitepress'
export default defineRoutes({
watch: ['../data/**/*.json'],
async paths() {
return [{ params: { pkg: 'foo' }}]
},
async transformPageData(pageData) {
pageData.title = `pageData.title · Packages`
}
})
```
### Multiple Params
```javascript
// [pkg]-[version].md + [pkg]-[version].paths.js
paths: () => [
{ params: { pkg: 'foo', version: '1.0.0' }},
{ params: { pkg: 'foo', version: '2.0.0' }}
]
```
### Dynamic Paths from Data
```javascript
import fs from 'fs'
export default {
watch: ['./data/*.json'],
paths(watchedFiles) {
return watchedFiles.map(file => ({
params: { slug: parseFile(file).slug }
}))
}
}
```
### Accessing Params
```md
# {{ $params.pkg }}
```
```vue
<script setup>
import { useData } from 'vitepress'
const { params } = useData()
</script>
```
### Raw Content
```javascript
return {
params: { id: post.id },
content: post.content // raw Markdown/HTML
}
```
```md
<!-- @content -->
```
FILE:references/extending-default-theme.md
# Extending Default Theme
> Source: https://vitepress.dev/guide/extending-default-theme
## Customizing CSS
```javascript
// theme/index.js
import DefaultTheme from 'vitepress/theme'
import './custom.css'
export default DefaultTheme
```
```css
/* custom.css */
:root {
--vp-c-brand-1: #646cff;
--vp-c-brand-2: #747bff;
}
```
## Using Different Fonts
```javascript
import DefaultTheme from 'vitepress/theme-without-fonts'
import './my-fonts.css'
```
```css
:root {
--vp-font-family-base: /* main font */
--vp-font-family-mono: /* code font */
}
```
## Registering Global Components
```javascript
// theme/index.js
export default {
extends: DefaultTheme,
enhanceApp({ app }) {
app.component('MyGlobalComponent', MyGlobalComponent)
}
}
```
## Layout Slots
```vue
<!-- MyLayout.vue -->
<template>
<Layout>
<template #aside-outline-before>
My custom sidebar top content
</template>
</Layout>
</template>
```
Or with render functions:
```javascript
import { h } from 'vue'
import DefaultTheme from 'vitepress/theme'
export default {
Layout() {
return h(DefaultTheme.Layout, null, {
'aside-outline-before': () => h(MyComponent)
})
}
}
```
### Slot Locations
**doc layout:**
- `doc-top`, `doc-bottom`
- `doc-footer-before`, `doc-before`, `doc-after`
- `sidebar-nav-before`, `sidebar-nav-after`
- `aside-top`, `aside-bottom`
- `aside-outline-before`, `aside-outline-after`
- `aside-ads-before`, `aside-ads-after`
**home layout:**
- `home-hero-before`, `home-hero-info`, `home-hero-info-after`
- `home-hero-actions-before`, `home-hero-actions-after`
- `home-hero-image`, `home-hero-after`
- `home-features-before`, `home-features-after`
**page layout:**
- `page-top`, `page-bottom`
**Always:**
- `layout-top`, `layout-bottom`
- `nav-bar-title-before`, `nav-bar-title-after`
- `nav-bar-content-before`, `nav-bar-content-after`
- `not-found`
## View Transitions
```vue
<script setup>
import { useData } from 'vitepress'
import DefaultTheme from 'vitepress/theme'
import { nextTick, provide } from 'vue'
const { isDark } = useData()
provide('toggle-appearance', async ({ clientX: x, clientY: y }) => {
if (!('startViewTransition' in document)) {
isDark.value = !isDark.value
return
}
// ... view transition implementation
})
</script>
<template>
<DefaultTheme.Layout />
</template>
```
## Overriding Internal Components
```typescript
import { fileURLToPath, URL } from 'node:url'
export default {
vite: {
resolve: {
alias: [{ find: /^.*\/VPNavBar\.vue$/, replacement: './theme/components/CustomNavBar.vue' }]
}
}
}
```
FILE:references/mpa-mode.md
# MPA Mode
> Source: https://vitepress.dev/guide/mpa-mode
MPA (Multi-Page Application) mode: no JavaScript by default.
## Enable
CLI: `vitepress build --mpa`
Config: `mpa: true` in site config
## Trade-offs
**Pros:**
- Better initial visit performance scores
- Simpler deployment
**Cons:**
- Full page reloads on navigation
- No client-side interactivity by default
## Client Scripts
Use `<script client>` for interactivity:
```html
<script client>
document.querySelector('h1').addEventListener('click', () => {
console.log('clicked!')
})
</script>
# Hello
```
`<script client>` is VitePress-only, works in `.md` and `.vue` files, only in MPA mode.
Client scripts in theme components are bundled together. Page-specific scripts are split for that page.
Note: `<script client>` is not evaluated as Vue component code - it's a plain JavaScript module.
## When to Use
MPA mode is best when:
- Site requires absolutely minimal client-side interactivity
- You want maximum simplicity and performance
- Most content is static
For most documentation sites, default SPA mode is recommended.
FILE:references/markdown.md
# Markdown Extensions Reference
> Source: https://vitepress.dev/guide/markdown
## Header Anchors
Headers auto-get anchors. Custom anchor:
```md
# Custom anchors {#my-anchor}
```
## Links
### Internal Links
```md
[Home](/)
[foo heading](./#heading)
```
### External Links
Auto get `target="_blank" rel="noreferrer"`.
## Containers
### Info/Tip/Warning/Danger/Details
```md
::: info
This is an info box.
:::
::: tip
This is a tip.
:::
::: warning
This is a warning.
:::
::: danger
This is a dangerous warning.
:::
::: details
This is a details block.
:::
```
### Custom Title
```md
::: danger STOP
Danger zone, do not proceed
:::
```
### Details Open
```md
::: details Click me {open}
Content here
:::
```
## GitHub Alerts
```md
> [!NOTE]
> Note content here.
> [!TIP]
> Tip content here.
> [!IMPORTANT]
> Important content here.
> [!WARNING]
> Warning content here.
> [!CAUTION]
> Caution content here.
```
## Code Blocks
### Syntax Highlighting
````md
```js
const x = 1
```
````
Supported languages from Shiki.
### Line Highlighting
````md
```js{4}
export default {
data() {
return { msg: 'highlighted' }
}
}
```
````
Ranges: `{5-8}`, single: `{4}`, mixed: `{4,7-10}`
### Focus
```md
```js
export default {
data() {
return { msg: 'Focused!' } // [!code focus]
}
}
```
```
### Colored Diffs
```md
```js
return {
msg: 'Removed' // [!code --]
msg: 'Added' // [!code ++]
}
```
```
### Errors/Warnings
```md
```js
msg: 'Error' // [!code error]
msg: 'Warning' // [!code warning]
```
```
### Line Numbers
Config: `markdown: { lineNumbers: true }`
````md
```ts:line-numbers
const x = 1
```
````
Start from N: `ts:line-numbers=2`
## Import Code Snippets
```md
<<< @/snippets/file.js{2}
<!-- With VS Code region -->
<<< @/snippets/file.js#region-name
<!-- With language -->
<<< @/snippets/file.ts{c#}
```
## Code Groups
```md
::: code-group
```js [config.js]
const config = {}
```
```ts [config.ts]
const config: Config = {}
```
:::
```
## File Inclusion
```md
<!--@include: ./parts/basics.md-->
```
Line range: `{3,}`, `{,10}`, `{1,10}`
With header anchor: `<!--@include: ./file.md#section-name-->`
## Tables
```md
| Tables | Are | Cool |
|-------------|:-------------:|------:|
| col 3 is | right-aligned | $1600 |
```
## Emoji
```md
:tada: :100:
```
## Table of Contents
```md
[[toc]]
```
## Math Equations
```bash
npm add -D markdown-it-mathjax3@^4
```
```typescript
markdown: { math: true }
```
```md
When $a \ne 0$, there are two solutions...
$$
x = {-b \pm \sqrt{b^2-4ac} \over 2a}
$$
```
## Image Lazy Loading
```typescript
markdown: { image: { lazyLoading: true } }
```
## raw Container
```md
::: raw
Wraps content in vp-raw class
:::
```
## Advanced Config
```typescript
markdown: {
anchor: { permalink: markdownItAnchor.permalink.headerLink() },
toc: { level: [1, 2] },
config: (md) => { md.use(plugin) }
}
```
FILE:references/cms.md
# Connecting to CMS
> Source: https://vitepress.dev/guide/cms
## General Workflow
1. Load environment variables for API tokens:
```javascript
import { loadEnv } from 'vitepress'
const env = loadEnv('', process.cwd())
```
2. Fetch CMS data and format into paths:
```javascript
export default {
async paths() {
const data = await fetch('https://my-cms-api', {
headers: { /* token */ }
}).then(r => r.json())
return data.map(entry => ({
params: { id: entry.id },
content: entry.content
}))
}
}
```
3. Render content in page:
```md
# {{ $params.title }}
- by {{ $params.author }}
<!-- @content -->
```
## Key Points
- Uses [Dynamic Routes](routing.md) feature
- Each CMS integration is different - adapt workflow
- Content can be raw Markdown or HTML via `<!-- @content -->`
## Integration Guides
VitePress documentation accepts community-contributed CMS integration guides. Consider submitting your integration!
FILE:references/frontmatter.md
# Frontmatter Config Reference
> Source: https://vitepress.dev/reference/frontmatter-config
Frontmatter enables page-based configuration. Access via `$frontmatter` global in Vue expressions.
## Basic Options
| Option | Type | Overrides |
|--------|------|-----------|
| `title` | `string` | `config.title` |
| `titleTemplate` | `string \| boolean` | `config.titleTemplate` |
| `description` | `string` | `config.description` |
| `head` | `HeadConfig[]` | Appended after site-level |
## Default Theme Options
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| `layout` | `doc \| home \| page` | `doc` | Page layout |
| `navbar` | `boolean` | `true` | Show navbar |
| `sidebar` | `boolean` | `true` | Show sidebar |
| `aside` | `boolean \| 'left'` | `true` | Aside position |
| `outline` | `number \| [n,n] \| 'deep' \| false` | `2` | Outline levels |
| `lastUpdated` | `boolean \| Date` | `true` | Show last updated |
| `editLink` | `boolean` | `true` | Show edit link |
| `footer` | `boolean` | `true` | Show footer |
| `pageClass` | `string` | - | Custom page class |
## Layouts
- **`doc`** - Default documentation styling with aside, edit link, prev/next
- **`home`** - Homepage layout with hero and features sections
- **`page`** - Blank page, no default styles
- **`false`** - No layout at all
## Examples
### Basic
```yaml
---
title: My Page
description: Page description
---
```
### Home Page
```yaml
---
layout: home
hero:
name: VitePress
text: Vite & Vue powered static site generator.
tagline: Build fast docs sites
image:
src: /logo.png
alt: Logo
actions:
- theme: brand
text: Get Started
link: /guide/getting-started
- theme: alt
text: View on GitHub
link: https://github.com/vuejs/vitepress
features:
- icon: 🛠️
title: Simple and minimal
details: Lorem ipsum dolor sit amet
- icon:
src: /feature-icon.svg
title: Another feature
details: More description here
---
```
### Custom Page Class
```yaml
---
pageClass: custom-layout
---
```
Then in CSS:
```css
.custom-layout {
/* page-specific styles */
}
```
## Accessing Frontmatter
In Markdown:
```md
# {{ $frontmatter.title }}
```
In Vue:
```vue
<script setup>
import { useData } from 'vitepress'
const { frontmatter } = useData()
</script>
```
## Alternative Formats
JSON frontmatter:
```json
---
{
"title": "Blogging Like a Hacker",
"editLink": true
}
---
```
FILE:references/README.md
# VitePress References Index
This directory contains detailed reference documentation for VitePress.
## Guide Pages
| File | Description |
|------|-------------|
| `what-is-vitepress.md` | What is VitePress, use cases, performance |
| `getting-started.md` | Installation and setup |
| `routing.md` | File routing, clean URLs, rewrites, dynamic routes |
| `markdown.md` | Markdown extensions syntax |
| `asset-handling.md` | Static assets, public directory, base URL |
| `using-vue.md` | Using Vue in markdown, components, directives |
| `extending-default-theme.md` | CSS customization, layout slots, view transitions |
| `custom-theme.md` | Building custom themes |
| `data-loading-ssr-i18n.md` | Data loaders, SSR, i18n |
| `mpa-mode.md` | MPA mode for zero-JS sites |
| `sitemap-generation.md` | Sitemap generation |
| `cms.md` | Connecting to CMS |
| `deploy.md` | Deployment guides |
## Reference Pages
| File | Description |
|------|-------------|
| `site-config.md` | All config options and build hooks |
| `frontmatter.md` | Page-level frontmatter options |
| `runtime-api.md` | useData, useRoute, useRouter, withBase |
| `cli.md` | Command line interface options |
| `default-theme-config.md` | Nav, sidebar, search, footer options |
| `default-theme-components.md` | Hero, features, badge, team page |
## Source
All content derived from https://vitepress.dev/
FILE:references/deploy.md
# Deployment Reference
> Source: https://vitepress.dev/guide/deploy
## Build
```sh
npm run docs:build
npm run docs:preview # http://localhost:4173
```
## Public Base Path
```typescript
// for https://mywebsite.com/blog/
export default {
base: '/blog/'
}
```
## HTTP Cache Headers
For hashed assets in `/assets/`:
```
Cache-Control: max-age=31536000,immutable
```
### Netlify
Create `docs/public/_headers`:
```
/assets/*
cache-control: max-age=31536000
cache-control: immutable
```
### Vercel
Create `vercel.json`:
```json
{
"headers": [
{
"source": "/assets/(.*)",
"headers": [{ "key": "Cache-Control", "value": "max-age=31536000, immutable" }]
}
]
}
```
## GitHub Pages
### deploy.yml
```yaml
name: Deploy VitePress site to Pages
on:
push:
branches: [main]
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: pages
cancel-in-progress: false
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Setup Node
uses: actions/setup-node@v6
with:
node-version: 24
cache: npm
- name: Setup Pages
uses: actions/configure-pages@v4
- name: Install
run: npm ci
- name: Build
run: npm run docs:build
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: docs/.vitepress/dist
deploy:
environment:
name: github-pages
url: { steps.deployment.outputs.page_url}
needs: build
runs-on: ubuntu-latest
steps:
- name: Deploy
uses: actions/deploy-pages@v4
```
Then in repo settings → Pages → Source: GitHub Actions
## Generic (Netlify/Vercel/Cloudflare/AWS/Render)
- Build Command: `npm run docs:build`
- Output Directory: `docs/.vitepress/dist`
- Node Version: `20`
## GitLab Pages
Set `outDir: '../public'` in config.
```yaml
image: node:24
pages:
script:
- npm install
- npm run docs:build
artifacts:
paths:
- public
only:
- main
```
## Azure
```json
{
"app_location": "/",
"output_location": "docs/.vitepress/dist",
"app_build_command": "npm run docs:build"
}
```
## Firebase
```json
{
"hosting": {
"public": "docs/.vitepress/dist",
"ignore": []
}
}
```
## Heroku
```json
{ "root": "docs/.vitepress/dist" }
```
## Nginx
```nginx
server {
gzip on;
gzip_types text/plain text/css application/json application/javascript;
listen 80;
server_name _;
index index.html;
location / {
root /app;
try_files $uri $uri.html $uri/ =404;
error_page 404 /404.html;
location ~* ^/assets/ {
expires 1y;
add_header Cache-Control "public, immutable";
}
}
}
```
Note: Don't default to `index.html`.
## Surge
```sh
npx surge docs/.vitepress/dist
```
FILE:references/getting-started.md
# Getting Started Reference
> Source: https://vitepress.dev/guide/getting-started
## Installation
```sh
npm add -D vitepress@next
# or
pnpm add -D vitepress@next
# or
yarn add -D vitepress@next vue
# or
bun add -D vitepress@next
```
**Requirements:** Node.js 20+, terminal, text editor (VSCode + Vue extension recommended)
## Setup Wizard
```sh
npx vitepress init
```
Questions:
1. Config location (e.g., `./docs`)
2. Markdown files location (e.g., `./docs`)
3. Site title
4. Site description
5. Theme (Default Theme)
6. Use TypeScript? (Yes/No)
7. Add npm scripts? (Yes)
8. Prefix for scripts? (e.g., `docs`)
## File Structure
```
docs/
├─ .vitepress/
│ └─ config.js
├─ api-examples.md
├─ markdown-examples.md
└─ index.md
```
## Config File
```javascript
// .vitepress/config.js
import { defineConfig } from 'vitepress'
export default defineConfig({
title: 'VitePress',
description: 'Just playing around.',
themeConfig: {
// theme-level options
}
})
```
## NPM Scripts
```json
{
"scripts": {
"docs:dev": "vitepress dev docs",
"docs:build": "vitepress build docs",
"docs:preview": "vitepress preview docs"
}
}
```
## Development
```sh
npm run docs:dev
# or
npx vitepress dev docs
```
Visit http://localhost:5173
## Build
```sh
npm run docs:build
npm run docs:preview # preview at http://localhost:4173
```
## Next Steps
1. Read [Routing Guide](https://vitepress.dev/guide/routing) - understand file-based routing
2. Read [Markdown Extensions](https://vitepress.dev/guide/markdown) - learn markdown features
3. Read [Default Theme Config](https://vitepress.dev/reference/default-theme-config) - customize nav, sidebar, etc.
4. Read [Custom Theme](https://vitepress.dev/guide/custom-theme) - build custom themes
5. Read [Deployment Guide](https://vitepress.dev/guide/deploy) - deploy your site
FILE:references/default-theme-config.md
# Default Theme Config Reference
> Source: https://vitepress.dev/reference/default-theme-config
Theme config via `themeConfig` option.
## Basic Options
### i18nRouting
- **Type:** `boolean`
- Changes locale URL from `/foo` to `/zh/foo`
### logo
```typescript
type ThemeableImage =
| string
| { src: string; alt?: string }
| { light: string; dark: string; alt?: string }
// Examples:
logo: '/logo.svg'
logo: { light: '/logo-light.svg', dark: '/logo-dark.svg' }
```
### siteTitle
- **Type:** `string | false`
- Replace default site title in navbar
## Navigation
### nav
```typescript
type NavItem = NavItemWithLink | NavItemWithChildren
interface NavItemWithLink {
text: string
link: string | ((payload: PageData) => string)
activeMatch?: string // regex string for active state
target?: string
rel?: string
noIcon?: boolean
}
interface NavItemWithChildren {
text?: string
items: (NavItemChildren | NavItemWithLink)[]
activeMatch?: string
}
```
### socialLinks
```typescript
interface SocialLink {
icon: string | { svg: string }
link: string
ariaLabel?: string
}
// Icons from simple-icons.org
socialLinks: [
{ icon: 'github', link: 'https://github.com/vuejs/vitepress' },
{ icon: 'twitter', link: 'https://twitter.com/evanyou' }
]
```
## Sidebar
### sidebar
```typescript
export type Sidebar = SidebarItem[] | SidebarMulti
export interface SidebarMulti {
[path: string]: SidebarItem[] | { items: SidebarItem[]; base: string }
}
export type SidebarItem = {
text?: string
link?: string
items?: SidebarItem[]
collapsed?: boolean // true = collapsed by default
base?: string
docFooterText?: string
rel?: string
target?: string
}
```
## Page Layout
### aside
- **Type:** `boolean | 'left'`
- **Default:** `true`
- Position of outline aside
### outline
```typescript
interface Outline {
level?: number | [number, number] | 'deep' // default: 2
label?: string // default: 'On this page'
}
```
## Content Footer
### footer
```typescript
interface Footer {
message?: string // e.g., 'Released under the MIT License'
copyright?: string // e.g., 'Copyright © 2019-present Evan You'
}
```
### docFooter
```typescript
interface DocFooter {
prev?: string | false
next?: string | false
}
```
## Features
### editLink
```typescript
interface EditLink {
pattern: string | ((pageData: PageData) => string)
text?: string
}
// Pattern example:
pattern: 'https://github.com/vuejs/vitepress/edit/main/:path'
```
### lastUpdated
```typescript
interface LastUpdatedOptions {
text?: string // default: 'Last updated'
formatOptions?: Intl.DateTimeFormatOptions
}
```
### carbonAds
```typescript
interface CarbonAdsOptions {
code: string
placement: string
}
```
## Search
### algolia
```typescript
interface AlgoliaSearchOptions extends DocSearchProps {
locales?: Record<string, Partial<DocSearchProps>>
}
```
## Labels
| Option | Type | Default |
|--------|------|---------|
| `darkModeSwitchLabel` | `string` | `Appearance` |
| `lightModeSwitchTitle` | `string` | `Switch to light theme` |
| `darkModeSwitchTitle` | `string` | `Switch to dark theme` |
| `sidebarMenuLabel` | `string` | `Menu` |
| `returnToTopLabel` | `string` | `Return to top` |
| `langMenuLabel` | `string` | `Change language` |
| `skipToContentLabel` | `string` | `Skip to content` |
### externalLinkIcon
- **Type:** `boolean`
- **Default:** `false`
- Show icon next to external links
## useLayout Composable
```typescript
const {
isHome: ComputedRef<boolean>
sidebar: Readonly<ShallowRef<SidebarItem[]>>
sidebarGroups: ComputedRef<SidebarItem[]>
hasSidebar: ComputedRef<boolean>
isSidebarEnabled: ComputedRef<boolean>
hasAside: ComputedRef<boolean>
leftAside: ComputedRef<boolean>
headers: Readonly<ShallowRef<OutlineItem[]>>
hasLocalNav: ComputedRef<boolean>
} = useLayout()
```
FILE:references/cli.md
# CLI Reference
> Source: https://vitepress.dev/reference/cli
## vitepress dev
Start dev server.
```sh
vitepress [root]
vitepress dev [root]
```
| Option | Type | Description |
|--------|------|-------------|
| `--open` | `boolean \| string` | Open browser on startup |
| `--port` | `number` | Specify port |
| `--base` | `string` | Public base path (default: `/`) |
| `--cors` | - | Enable CORS |
| `--strictPort` | `boolean` | Exit if port is in use |
| `--force` | `boolean` | Force re-bundle ignoring cache |
**Example:**
```sh
vitepress dev docs --port 3000 --open
```
## vitepress build
Build for production.
```sh
vitepress build [root]
```
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| `--mpa` | `boolean` | - | Build in MPA mode |
| `--base` | `string` | `/` | Public base path |
| `--target` | `string` | `modules` | Transpile target |
| `--outDir` | `string` | `<root>/.vitepress/dist` | Output directory |
| `--assetsInlineLimit` | `number` | `4096` | Inline threshold (bytes) |
**Example:**
```sh
vitepress build docs --outDir ../dist
```
## vitepress preview
Preview production build locally.
```sh
vitepress preview [root]
```
| Option | Type | Description |
|--------|------|-------------|
| `--base` | `string` | Public base path |
| `--port` | `number` | Specify port |
**Example:**
```sh
vitepress preview docs --port 8080
```
## vitepress init
Start setup wizard.
```sh
vitepress init
```
Questions asked:
- Config location
- Markdown files location
- Site title / description
- Theme selection
- TypeScript usage
- npm scripts addition
FILE:references/data-loading-ssr-i18n.md
# Data Loading, SSR & i18n Reference
> Source: https://vitepress.dev/guide/data-loading, ssr-compat, i18n
## Build-Time Data Loading
Data loaders execute only at build time, serialized as JSON in bundle.
### Basic Loader
```javascript
// example.data.js
export default {
load() {
return { hello: 'world' }
}
}
```
```vue
<script setup>
import { data } from './example.data.js'
</script>
```
### Async Loader
```javascript
export default {
async load() {
return await fetch('https://api.example.com/data').then(r => r.json())
}
}
```
### Watch Local Files
```javascript
export default {
watch: ['./data/*.csv'],
load(watchedFiles) {
return watchedFiles.map(file => parseFile(file))
}
}
```
## createContentLoader
```javascript
import { createContentLoader } from 'vitepress'
export default createContentLoader('posts/*.md', {
includeSrc: true,
render: true,
excerpt: true,
transform(rawData) {
return rawData
.sort((a, b) => +new Date(b.frontmatter.date) - +new Date(a.frontmatter.date))
.map(page => ({
title: page.frontmatter.title,
url: page.url,
date: page.frontmatter.date
}))
}
})
```
Returns:
```typescript
interface ContentData {
url: string
frontmatter: Record<string, any>
src?: string
html?: string
excerpt?: string
}
```
## Typed Data Loaders
```typescript
import { defineLoader } from 'vitepress'
export interface Data { posts: Post[] }
declare const data: Data
export { data }
export default defineLoader({
watch: ['./posts/*.md'],
async load(): Promise<Data> {
return { posts: [] }
}
})
```
## SSR Compatibility
### ClientOnly
```vue
<ClientOnly>
<NonSSRFriendlyComponent />
</ClientOnly>
```
### Browser API on Import
**In mounted hook:**
```vue
onMounted(() => {
import('./lib-browser-only').then(module => { /* ... */ })
})
```
**Conditional import:**
```javascript
if (!import.meta.env.SSR) {
import('./lib-browser-only')
}
```
**In enhanceApp:**
```javascript
async enhanceApp({ app }) {
if (!import.meta.env.SSR) {
const plugin = await import('plugin-browser-only')
app.use(plugin.default)
}
}
```
### defineClientComponent
```vue
<script setup>
import { defineClientComponent } from 'vitepress'
const ClientComp = defineClientComponent(() => {
return import('component-browser-only')
})
</script>
<template>
<ClientComp />
</template>
```
## Internationalization (i18n)
### Directory Structure
```
docs/
├─ en/
│ ├─ foo.md
├─ fr/
│ ├─ foo.md
├─ foo.md # default/root
```
### Config
```typescript
export default {
locales: {
root: {
label: 'English',
lang: 'en'
},
fr: {
label: 'French',
lang: 'fr',
link: '/fr/guide'
// other locale-specific options...
}
}
}
```
### Locale-Specific Properties
```typescript
interface LocaleSpecificConfig<ThemeConfig> {
lang?: string
dir?: string
title?: string
titleTemplate?: string | boolean
description?: string
head?: HeadConfig[]
themeConfig?: ThemeConfig
}
```
### RTL Support (Experimental)
```typescript
dir: 'rtl' // in locale config
```
### Redirects
```
/* /fr/:splat 302 Language=fr
/* /en/:splat 302
```
Or with cookie persistence:
```vue
<script setup>
import { useData, inBrowser } from 'vitepress'
import { watchEffect } from 'vue'
const { lang } = useData()
watchEffect(() => {
if (inBrowser) {
document.cookie = `nf_lang=lang.value; expires=...; path=/`
}
})
</script>
```
### Search i18n
```typescript
search: {
provider: 'local',
options: {
locales: {
zh: {
translations: {
button: { buttonText: '搜索', buttonAriaLabel: '搜索' },
modal: { noResultsText: '没有结果', /* ... */ }
}
}
}
}
}
```
FILE:references/sitemap-generation.md
# Sitemap Generation
> Source: https://vitepress.dev/guide/sitemap-generation
VitePress has built-in sitemap generation.
## Enable
```typescript
export default {
sitemap: {
hostname: 'https://example.com'
}
}
```
Enable `lastUpdated` for `<lastmod>` tags.
## Options
Powered by [`sitemap`](https://www.npmjs.com/package/sitemap) package:
```typescript
export default {
sitemap: {
hostname: 'https://example.com',
lastmodDateOnly: false,
// ... other sitemap package options
}
}
```
## With base
```typescript
export default {
base: '/my-site/',
sitemap: {
hostname: 'https://example.com/my-site/'
}
}
```
## transformItems Hook
```typescript
export default {
sitemap: {
hostname: 'https://example.com',
transformItems: (items) => {
items.push({
url: '/extra-page',
changefreq: 'monthly',
priority: 0.8
})
return items
}
}
}
```
FILE:references/default-theme-components.md
# Default Theme Components Reference
> Source: https://vitepress.dev/reference/default-theme-config
Components available from `vitepress/theme`.
## Nav
### Site Title and Logo
```typescript
themeConfig: {
siteTitle: 'My Custom Title',
logo: '/my-logo.svg',
logo: { light: '/logo-light.svg', dark: '/logo-dark.svg', alt: 'Logo' }
}
```
### Navigation Links
```typescript
nav: [
{ text: 'Guide', link: '/guide' },
{ text: 'Config', link: '/config' },
{ text: 'GitHub', link: 'https://github.com/...', target: '_self', rel: 'sponsored' },
{
text: 'Dropdown',
items: [
{ text: 'Item A', link: '/item-1' },
{ text: 'Item B', link: '/item-2' }
]
},
{
text: 'Sections',
items: [
{
text: 'Section Title',
items: [
{ text: 'Item A', link: '/a' },
{ text: 'Item B', link: '/b' }
]
}
]
}
]
```
### activeMatch
```typescript
{ text: 'Guide', link: '/guide', activeMatch: '/config/' }
```
### Custom Components
```typescript
// config.js
themeConfig: {
nav: [
{
text: 'My Menu',
items: [{ component: 'MyComponent', props: { title: 'Hi' } }]
}
]
}
// theme/index.js
app.component('MyComponent', MyComponent)
```
## Sidebar
### Basic
```typescript
sidebar: [
{
text: 'Section Title',
items: [
{ text: 'Item A', link: '/item-a' },
{ text: 'Item B', link: '/item-b' }
]
}
]
```
### Multiple Sidebars
```typescript
sidebar: {
'/guide/': [
{ text: 'Guide', items: [{ text: 'Index', link: '/guide/' }] }
],
'/config/': [
{ text: 'Config', items: [{ text: 'Index', link: '/config/' }] }
]
}
```
### Collapsible
```typescript
{
text: 'Section',
collapsed: true, // closed by default
items: [...]
}
```
## Home Page
### Hero
```typescript
hero: {
name?: string // top text with brand color
text: string // main h1 text
tagline?: string // below text
image?: ThemeableImage // next to text
actions?: HeroAction[]
}
interface HeroAction {
theme?: 'brand' | 'alt'
text: string
link: string
target?: string
rel?: string
}
// Custom name color:
:root { --vp-home-hero-name-color: blue; }
:root { --vp-home-hero-name-background: -webkit-linear-gradient(120deg, #bd34fe, #41d1ff); }
```
### Features
```typescript
features: [
{
icon: '🛠️', // or { src: '/icon.svg' } or { light: '/a.svg', dark: '/b.svg' }
title: string,
details: string,
link?: string,
linkText?: string,
rel?: string,
target?: string
}
]
```
## Badge
```vue
### Title <Badge type="info" text="default" />
### Title <Badge type="tip" text="^1.9.0" />
### Title <Badge type="warning" text="beta" />
### Title <Badge type="danger" text="caution" />
<!-- Custom children -->
<Badge type="info">custom</Badge>
```
Props: `text?: string`, `type?: 'info' | 'tip' | 'warning' | 'danger'`
## Search
### Local
```typescript
search: {
provider: 'local',
options: {
locales: { zh: { translations: { button: { buttonText: '搜索' } } } },
miniSearch: {
options: { /* MiniSearch options */ },
searchOptions: { fuzzy: 0.2, prefix: true, boost: { title: 4 } }
}
}
}
```
### Algolia
```typescript
search: {
provider: 'algolia',
options: {
appId: '...',
apiKey: '...',
indexName: '...',
locales: { /* translations */ },
askAi?: {
assistantId: 'XXX',
sidePanel?: { /* panel options */ }
}
}
}
```
## Team Page
### VPTeamMembers
```vue
<script setup>
import { VPTeamMembers } from 'vitepress/theme'
const members = [
{
avatar: 'https://www.github.com/yyx990803.png',
name: 'Evan You',
title: 'Creator',
links: [{ icon: 'github', link: 'https://github.com/yyx990803' }]
}
]
</script>
<VPTeamMembers size="small" :members />
```
### Full Team Page
```vue
<script setup>
import { VPTeamPage, VPTeamPageTitle, VPTeamMembers } from 'vitepress/theme'
</script>
<VPTeamPage>
<VPTeamPageTitle>
<template #title>Our Team</template>
<template #lead>Development guided by...</template>
</VPTeamPageTitle>
<VPTeamMembers :members />
</VPTeamPage>
```
### With Sections
```vue
<VPTeamPage>
<VPTeamPageTitle>...</VPTeamPageTitle>
<VPTeamMembers :members="coreMembers" />
<VPTeamPageSection>
<template #title>Partners</template>
<template #lead>...</template>
<template #members>
<VPTeamMembers :members="partners" />
</template>
</VPTeamPageSection>
</VPTeamPage>
```
## Layout Slots
### doc Layout
```
doc-top, doc-bottom
doc-footer-before, doc-before, doc-after
sidebar-nav-before, sidebar-nav-after
aside-top, aside-bottom
aside-outline-before, aside-outline-after
aside-ads-before, aside-ads-after
```
### home Layout
```
home-hero-before, home-hero-info, home-hero-info-after
home-hero-actions-before, home-hero-actions-after
home-hero-image, home-hero-after
home-features-before, home-features-after
```
### page Layout
```
page-top, page-bottom
```
### Always Available
```
layout-top, layout-bottom
nav-bar-title-before, nav-bar-title-after
nav-bar-content-before, nav-bar-content-after
nav-screen-content-before, nav-screen-content-after
not-found
```
### Example
```vue
<template>
<Layout>
<template #aside-outline-before>
My custom sidebar content
</template>
</Layout>
</template>
```
FILE:references/custom-theme.md
# Custom Theme Reference
> Source: https://vitepress.dev/guide/custom-theme
## Theme Resolving
Create `.vitepress/theme/index.js`:
```
docs/
├─ .vitepress/
│ ├─ theme/
│ │ └─ index.js # theme entry
│ └─ config.js
└─ index.md
```
VitePress uses custom theme when `theme/index.js` exists.
## Theme Interface
```typescript
interface Theme {
Layout: Component // required
enhanceApp?: (ctx) => Awaitable<void> // optional
extends?: Theme // optional
}
interface EnhanceAppContext {
app: App
router: Router
siteData: Ref<SiteData>
}
```
## Basic Layout
```vue
<!-- .vitepress/theme/Layout.vue -->
<template>
<h1>Custom Layout!</h1>
<Content />
</template>
```
### Handle 404
```vue
<script setup>
import { useData } from 'vitepress'
const { page } = useData()
</script>
<template>
<div v-if="page.isNotFound">Custom 404!</div>
<Content v-else />
</template>
```
### Handle Layout Types
```vue
<script setup>
import { useData } from 'vitepress'
const { page, frontmatter } = useData()
</script>
<template>
<div v-if="frontmatter.layout === 'home'">Home layout</div>
<Content v-else />
</template>
```
## Enhancing App
```javascript
// theme/index.js
import Layout from './Layout.vue'
import MyComponent from './MyComponent.vue'
export default {
Layout,
enhanceApp({ app, router, siteData }) {
app.component('MyComponent', MyComponent)
}
}
```
## Extending Themes
```javascript
import BaseTheme from 'awesome-vitepress-theme'
export default {
extends: BaseTheme,
enhanceApp({ app }) {
// extend the base theme
}
}
```
## Distributing Themes
### As npm Package
1. Export theme as default
2. Export `ThemeConfig` type
3. Export config at `my-theme/config` for special configs
4. Document usage
```javascript
// package.json entry
export default Theme
// types
export interface ThemeConfig { ... }
// optional special config
export const config = { ... }
```
### As Template Repository
Create GitHub template repository.
## TypeScript
```typescript
// theme/index.ts
import type { Theme } from 'vitepress'
import DefaultTheme from 'vitepress/theme'
export default {
extends: DefaultTheme,
Layout: MyLayout
} satisfies Theme
```
FILE:references/runtime-api.md
# Runtime API Reference
> Source: https://vitepress.dev/reference/runtime-api
Import from `vitepress`. Methods starting with `use*` are Vue Composition API composables.
## useData
```typescript
const {
site, // Ref<SiteData<T>>
theme, // Ref<T> (themeConfig)
page, // Ref<PageData>
frontmatter, // Ref<PageData['frontmatter']>
params, // Ref<PageData['params']>
title, // Ref<string>
description, // Ref<string>
lang, // Ref<string>
isDark, // Ref<boolean>
dir, // Ref<string>
localeIndex, // Ref<string>
hash // Ref<string>
} = useData()
```
### PageData Type
```typescript
interface PageData {
title: string
titleTemplate?: string | boolean
description: string
relativePath: string
filePath: string
headers: Header[]
frontmatter: Record<string, any>
params?: Record<string, any>
isNotFound?: boolean
lastUpdated?: number
}
```
## useRoute
```typescript
const { path, data, component } = useRoute()
```
## useRouter
```typescript
const router = useRouter()
router.go(to) // Navigate
router.onBeforeRouteChange((to) => ...) // Before navigation
router.onBeforePageLoad((to) => ...) // Before page loads
router.onAfterPageLoad((to) => ...) // After page loads
router.onAfterRouteChange((to) => ...) // After route changes
```
## withBase
```typescript
withBase(path: string): string
```
Appends configured `base` to URL path. Use for dynamic asset paths:
```vue
<img :src="withBase(theme.logoPath)" />
```
## Components
### Content
Renders markdown content:
```vue
<template>
<h1>Custom Layout!</h1>
<Content />
</template>
```
### ClientOnly
Renders slot only at client side (SSR safety):
```vue
<ClientOnly>
<NonSSRFriendlyComponent />
</ClientOnly>
```
## Template Globals
### $frontmatter
Access current page's frontmatter:
```md
# {{ $frontmatter.title }}
```
### $params
Access dynamic route params:
```md
- package: {{ $params.pkg }}
- version: {{ $params.version }}
```
## Full Example
```vue
<script setup>
import { useData, useRoute, useRouter, withBase, Content, ClientOnly } from 'vitepress'
const { site, theme, page, frontmatter, params, title, isDark } = useData()
const { path } = useRoute()
const router = useRouter()
function navigate() {
router.go('/guide/')
}
</script>
<template>
<h1>{{ title }}</h1>
<Content />
<div v-if="frontmatter.showWidget">
<ClientOnly>
<SomeWidget />
</ClientOnly>
</div>
<img :src="withBase('/logo.png')" />
</template>
```
FILE:references/site-config.md
# Site Config Reference
> Source: https://vitepress.dev/reference/site-config
## Config Resolution
Config file: `<root>/.vitepress/config.[ext]` (.js, .ts, .mjs, .mts)
```typescript
import { defineConfig } from 'vitepress'
export default defineConfig({
lang: 'en-US',
title: 'VitePress',
description: 'Vite & Vue powered static site generator.',
})
```
### Dynamic Config
```typescript
export default async () => {
const posts = await fetch('https://my-cms.com/blog-posts').then(r => r.json())
return defineConfig({
themeConfig: { sidebar: posts.map(p => ({ text: p.name, link: `/posts/p.name` })) }
})
}
```
### Typed Theme Config
```typescript
import { defineConfigWithTheme } from 'vitepress'
import type { ThemeConfig } from 'your-theme'
export default defineConfigWithTheme<ThemeConfig>({ themeConfig: {} })
```
## Config Options
### Basic
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| `title` | `string` | `VitePress` | Site title |
| `titleTemplate` | `string \| boolean` | - | Title suffix. Use `:title` to inject page's `<h1>` |
| `description` | `string` | `A VitePress site` | Meta description |
| `head` | `HeadConfig[]` | `[]` | Extra head tags |
| `lang` | `string` | `en-US` | HTML lang attribute |
| `base` | `string` | `/` | Base URL for deployment |
### Routing
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| `cleanUrls` | `boolean` | `false` | Remove `.html` from URLs |
| `rewrites` | `Record<string, string>` | - | Custom directory <-> URL mappings |
### Build
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| `srcDir` | `string` | `.` | Markdown source directory |
| `srcExclude` | `string[]` | - | Glob patterns to exclude |
| `outDir` | `string` | `./.vitepress/dist` | Build output |
| `assetsDir` | `string` | `assets` | Asset subdirectory |
| `cacheDir` | `string` | `./.vitepress/cache` | Cache directory |
| `ignoreDeadLinks` | `boolean \| 'localhostLinks' \| (string \| RegExp \| fn)[]` | `false` | Dead link handling |
| `metaChunk` | `boolean` | `false` | (experimental) Extract metadata to separate chunk |
| `mpa` | `boolean` | `false` | (experimental) MPA mode |
### Theming
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| `appearance` | `boolean \| 'dark' \| 'force-dark' \| 'force-auto'` | `true` | Dark mode behavior |
| `lastUpdated` | `boolean` | `false` | Show Git-based last updated |
### Customization
| Option | Type | Description |
|--------|------|-------------|
| `markdown` | `MarkdownOption` | Markdown-it and Shiki config |
| `vite` | `UserConfig` | Raw Vite config |
| `vue` | `@vitejs/plugin-vue` options | Vue plugin options |
## head Config Type
```typescript
type HeadConfig =
| [string, Record<string, string>]
| [string, Record<string, string>, string]
// Examples:
head: [['link', { rel: 'icon', href: '/favicon.ico' }]]
head: [
['script', { async: '', src: 'https://ga.com/gtag.js' }],
['script', {}, `window.dataLayer = ...`]
]
```
## Build Hooks
### buildEnd
```typescript
async buildEnd(siteConfig: SiteConfig)
```
Runs after SSG build finishes, before CLI exits.
### postRender
```typescript
async postRender(context: SSGContext)
interface SSGContext {
content: string
teleports?: Record<string, string>
}
```
### transformHead
```typescript
async transformHead(context: TransformContext): HeadConfig[]
interface TransformContext {
page: string
assets: string[]
siteConfig: SiteConfig
siteData: SiteData
pageData: PageData
title: string
description: string
head: HeadConfig[]
content: string
}
```
### transformHtml
```typescript
async transformHtml(code: string, id: string, context: TransformContext): string | void
```
### transformPageData
```typescript
async transformPageData(
pageData: PageData,
context: TransformPageContext
): Partial<PageData> | void
interface TransformPageContext {
siteConfig: SiteConfig
}
```
## Markdown Config
```typescript
markdown: {
// markdown-it-anchor options
anchor: { permalink: markdownItAnchor.permalink.headerLink() },
// @mdit-vue/plugin-toc options
toc: { level: [1, 2] },
// Custom markdown-it plugins
config: (md) => { md.use(plugin) }
}
```
## Full Example
```typescript
import { defineConfig } from 'vitepress'
export default defineConfig({
title: 'My Site',
description: 'A VitePress site',
base: '/docs/',
srcDir: './src',
cleanUrls: true,
appearance: 'dark',
lastUpdated: true,
themeConfig: {
logo: '/logo.svg',
nav: [
{ text: 'Guide', link: '/guide/' },
{ text: 'Config', link: '/reference/site-config' }
],
sidebar: [
{
text: 'Guide',
items: [
{ text: 'Getting Started', link: '/guide/getting-started' },
{ text: 'Routing', link: '/guide/routing' }
]
}
]
},
markdown: {
lineNumbers: true
},
async buildEnd(siteConfig) {
// Generate sitemap, etc.
}
})
```
FILE:references/using-vue.md
# Using Vue in Markdown
> Source: https://vitepress.dev/guide/using-vue
Each Markdown file is compiled into a Vue SFC. Use Vue features for dynamic content.
## Interpolation
```md
{{ 1 + 1 }} <!-- outputs: 2 -->
```
## Directives
```md
`<span v-for="i in 3">{{ i }}</span>` <!-- outputs: 1 2 3 -->
```
## Script and Style
```html
---
hello: world
---
<script setup>
import { ref } from 'vue'
const count = ref(0)
</script>
## Count: {{ count }}
<button @click="count++">Increment</button>
<style module>
.button { color: red; }
</style>
```
Avoid `<style scoped>` in markdown - it bloats page size. Use `<style module>` instead.
## Using Components
### Import in Markdown
```vue
<script setup>
import CustomComponent from '../components/CustomComponent.vue'
</script>
<CustomComponent />
```
### Register Globally
```javascript
// theme/index.js
export default {
extends: DefaultTheme,
enhanceApp({ app }) {
app.component('MyGlobalComponent', MyGlobalComponent)
}
}
```
## Components in Headers
| Markdown | Output | Parsed |
|---------|--------|--------|
| `# text <Tag/>` | `<h1>text <Tag/></h1>` | text |
| `# text `<Tag/>`` | `<h1>text <code><Tag/></code></h1>` | text `<Tag/>` |
## Escaping
```md
This <span v-pre>{{ will be displayed as-is }}</span>
```
Or use container: `::: v-pre\n{{ raw }}\n:::`
## CSS Pre-processors
```bash
npm install -D sass # .scss, .sass
npm install -D less # .less
npm install -D stylus # .styl, .stylus
```
## Teleports
```vue
<ClientOnly>
<Teleport to="#modal">
<div>Modal content</div>
</Teleport>
</ClientOnly>
```
## VS Code IntelliSense
```json
// tsconfig.json
{
"include": ["docs/**/*.ts", "docs/**/*.vue", "docs/**/*.md"],
"vueCompilerOptions": {
"vitePressExtensions": [".md"]
}
}
```
```json
// .vscode/settings.json
{
"vue.server.includeLanguages": ["vue", "markdown"]
}
```
FILE:references/asset-handling.md
# Asset Handling
> Source: https://vitepress.dev/guide/asset-handling
## Referencing Static Assets
Reference assets using relative URLs:
```md

```
Assets are:
- Copied to output with hashed filenames
- Images <4kb base64 inlined
- Linked files (PDF, etc.) must go in `public` directory
## The Public Directory
Place files that don't need processing (robots.txt, favicons, PWA icons) in `<srcDir>/public/`:
```
docs/
├─ public/
│ ├─ robots.txt
│ └─ favicon.ico
└─ index.md
```
Reference with root absolute path: `/robots.txt`
## Base URL
```typescript
export default {
base: '/bar/' // for https://foo.github.io/bar/
}
```
Static references in markdown don't need updates. For dynamic paths in theme components:
```vue
<script setup>
import { withBase, useData } from 'vitepress'
const { theme } = useData()
</script>
<template>
<img :src="withBase(theme.logoPath)" />
</template>
```
## withBase Helper
```typescript
withBase(path: string): string
```
Appends configured `base` to any URL path.
FILE:references/what-is-vitepress.md
# What is VitePress
> Source: https://vitepress.dev/guide/what-is-vitepress
VitePress is a Static Site Generator (SSG) designed for building fast, content-centric websites. It takes your source content written in Markdown, applies a theme, and generates static HTML pages.
## Use Cases
- **Documentation** - Default theme designed for technical docs. Powers Vue, Vite, Rollup, Pinia, VueUse, Vitest, D3, UnoCSS docs.
- **Blogs, Portfolios, Marketing Sites** - Fully custom themes with Vite + Vue developer experience.
## Developer Experience
- **Vite-Powered** - Instant server start, edits reflected <100ms without reload
- **Built-in Markdown Extensions** - Frontmatter, tables, syntax highlighting, code blocks
- **Vue-Enhanced Markdown** - Markdown files become Vue SFCs
## Performance
- Initial visit: static HTML + Vue SPA hydration
- Post-load navigation: SPA-style, no full page reload
- Automatic prefetching for links in viewport
- Static/dynamic parts optimized by Vue compiler
## VitePress vs VuePress
VitePress is the spiritual successor of VuePress 1 (Vue 2 + webpack). With Vue 3 and Vite, VitePress provides:
- Better DX
- Better production performance
- More polished default theme
- More flexible customization API
VuePress 1 is deprecated. VuePress 2 is maintained by the community.