申论素材日报
这个技能做什么
为申论备考者自动整理每日素材积累:从申论常考领域中随机抽取若干领域,每个领域选取若干篇时评文章,生成带段后批注与多角度应用的 Word 文档,并同步维护 Excel 索引表和今日导读,方便长期积累与考前检索。
★ 首次使用必读:修改配置
本技能所有可变项集中在一个文件:config.yaml(与本文件同级)。
使用前请打开 config.yaml,至少修改以下两项:
| 必改项 | 说明 |
|---|---|
storage_root |
素材存储根目录,改成你自己方便查看的位置(用正斜杠 /)。不填则无法确定输出位置 |
domains |
领域池,可按你的考试方向增删 |
其余项(每天抽几个领域、每领域几篇、来源清单、主题色、输出板块等)都有合理默认值,可按需调整:
| 可选项 | 默认值 | 作用 |
|---|---|---|
domains_per_day |
2 |
每天随机抽取几个领域 |
articles_per_domain |
2 |
每个领域最多收录几篇 |
max_articles_per_day |
4 |
每天总篇数上限 |
recency_days |
3 |
只选最近 N 日内发表的文章 |
sources |
人民日报、新华时评… | 素材来源清单,名称会写进文档「来源」栏 |
output.accent_color |
#2563EB |
主题色(批注竖线、索引表表头) |
output.highlight_color |
#FEF3C7 |
批注底纹色(浅黄) |
sections |
四项全开 | 控制文章输出哪几个板块 |
> 若 storage_root 仍为示例值 D:/我的资料/申论素材每日更新,应在开始时先询问用户希望存到哪个目录,并协助其填入配置。
依赖的其他技能(缺失时提示用户决定是否安装)
本技能会用到以下能力,运行前请确认可用;缺少时告知用户,由用户决定是否安装:
| 依赖 | 用途 | 缺少时的影响 |
|---|---|---|
| tencent-docx | 把内容生成规范的 Word 文档(走 full_pipeline:doc-writer → doc-formatter → doc-converter) | 无法生成 .docx,可降级为生成 Markdown 输出 |
| xlsx(或 Python 的 openpyxl) | 生成与更新 Excel 索引表 | 无法生成索引表,其余功能不受影响 |
> 提示方式:若检测到依赖不可用,用一行说明告诉用户「本技能需要 X 能力来生成 Word/索引表,是否安装?」,由用户决定;不要擅自安装第三方技能。
工作流程
步骤 1:读取配置
读取 config.yaml,取得 storage_root、domains、domains_per_day、articles_per_domain 等参数。若 storage_root 是示例占位值,先向用户确认实际目录。
步骤 2:抽取领域
从 domains 中用随机抽样抽出 domains_per_day 个领域。如需避开昨日,先读昨日导读文件确认。
步骤 3:检索并获取原文
用联网检索定位文章,获取完整原文。要点:
- 优先官方电子版页面(如人民日报 paper.people.com.cn、opinion.people.com.cn;新华网、光明网等官方站)。
- 若抓取页只返回标题(JS 渲染),改从搜索结果中的全文或其他官方源获取。
- 禁止编造原文。抓取失败就换源,或换该领域另一篇文章。
异常兜底规则(务必遵守,避免整体中断):
- 某篇抓不到 → 换来源;仍抓不到 → 换同领域另一篇;该领域实在无合适新文 → 少收录该领域,不要用旧文充数,并在导读中注明「本领域今日无合适更新」。
- 某领域只凑齐 1 篇也照常收录,不必强行补足到 articles_per_domain。
- 整体失败(如无网络)→ 记录失败原因,不中断后续日期的任务。
步骤 4:生成 Word 文档
按 config 的 sections 决定板块,默认输出 4 个板块:
- 一、原文精读(段后批注):原文逐段保留(首行缩进),每段后紧跟批注块(浅黄底+左侧主题色竖线),批注含段落功能标签、金句解析、论证结构、可迁移句式。
- 二、全文论证结构拆解:表格(结构位置/段落/功能/可迁移手法)。
- 三、核心积累清单:(一)金句摘录(二)可迁移观点(三)对策句式(四)适用题目方向(五)可引用案例。
- 四、多角度应用(跨领域适用指南):本技能的核心价值板块——
- ① 角度表(3~7 行,列:可用角度/对应题型/切入方式);
- ② 2~3 段「【示范】」举例段落,实际写出可用于某类题目的作文段落;
- ③ 角度选用速记(题目关键词 → 启用哪个角度)。
> 一篇素材通常能提炼 5~7 个跨领域角度(如民生类素材可切入发展与民生关系、扩大内需、共同富裕、以人民为中心等多个主题)。
生成方式与排版规范见 references/docx-pipeline.md;文章内容模板见 references/article-template.md。
步骤 5:归档命名
按 config 的 naming 规则,结构为:
{storage_root}/
├── {index_file} ← Excel 索引表
├── {readme_file} ← 使用说明
├── {guide_dir}/ ← 每日导读
│ └── YYYY-MM-DD_周X_导读.md
└── {领域}/{YYYY-MM}/{YYYY-MM-DD}_{标题}.docx
标题需去除书名号、引号、空格等符号(如「"向东看"看什么」→ 向东看看什么)。领域或月份目录不存在则新建。
步骤 6:更新 Excel 索引表
维护 {index_file},两个工作表:
- 累计台账:每天追加当天每篇一行(日期/星期/领域/文章标题/来源/版次/日期/今日更新/文件路径超链接);当天行填浅黄底纹。
- 今日概览:重写为当天内容(今日领域、收录篇数、各领域更新情况表)。
脚本见 assets/build_index.py:它自动读取 config.yaml,无需改动脚本本身。用法:
python assets/build_index.py # 首次创建索引表
python assets/build_index.py --append # 之后每天追加当天文章
只需把当天每篇文章改写入脚本顶部的 TODAY_ROWS 列表(每行:日期/星期/领域/标题/来源/版次日期/今日更新/相对文件路径),再运行即可。若想指定其他配置文件,可用环境变量 SHENLUN_CONFIG=<路径> 覆盖。
步骤 7:更新每日导读
生成 {guide_dir}/YYYY-MM-DD_周X_导读.md,含:今日领域、收录一览表、核心考点速览、金句口袋、可引用案例表、多角度用法速查表、使用建议。
配置为定时任务(可选)
如需每天自动运行,可创建一个「每日定时」自动化任务,让它在指定时间执行本技能。配置要点:
- 触发时间:按你的习惯设定(如每天早上 9:30)。
- 任务提示词:写清楚「执行申论素材日报技能,读取 config.yaml,完成领域抽取→检索→生成文档→更新索引表与导读」,并把
storage_root等关键配置显式写入提示词(自动化任务看不到本次对话上下文,需自包含)。 - 工作目录:设为该技能所在项目目录。
- 失败处理:建议写入「抓取失败换源、不编造原文;整体失败记录原因不中断后续日期」。
> 提示:自动化任务是环境相关的,请按你的实际环境配置;不同人的路径与时间习惯不同,不宜照搬他人设置。
常见坑点
详见 references/docx-pipeline.md,最常遇到的是:
- html-to-docx 依赖缺失(报
No module named 'click'等):说明依赖环境未装全,需先安装该依赖(命令见 references)。 - 排版检查不通过:裸样式值、标题层级跳级等问题,改法见 references。
- 文件路径含中文时命令报错:改用字面量引号路径直接传参,避免 shell 变量展开。
参考文件
USAGE.md:面向使用者的完整使用说明(功能介绍、安装、配置、使用方式、常见问题),适合分享给不熟悉技术的使用者阅读。config.yaml:用户配置(首次使用请修改)。references/docx-pipeline.md:Word 生成管线、排版规范、依赖安装与命令。references/article-template.md:文章内容结构模板(含多角度应用写法示例)。assets/build_index.py:Excel 索引表生成脚本模板。