Novel Reading Assistant(网络小说阅读辅助)
Overview
为长篇网络小说生成一个「人物阅读辅助」工具包:在浏览器阅读正文时,自动高亮人物名,点击/划选即弹出该人物的背景、人物特点、与主角的关系;并提供标签筛选与以主角为中心的关系图谱。产出三件套:
*-helper.user.js—— Tampermonkey 用户脚本,通用版(@match *://*/*),装好即在任意小说站可用,点「扫描当前页」才对当前页高亮。*-demo.html—— 单文件离线演示页,粘贴任意章节正文即可体验,无需安装扩展。characters.json—— 可导入/备份的人物种子库。
人物库(SEED)内置可编辑,用户可在阅读中本地增删改并导入/导出,边读边补全。
When to use
- 用户说「读某本小说看不进去/人物太多记不住」「想要人物高亮/人物卡片/关系图」。
- 用户希望把已经在读的某本书(如《剑来》《凡人修仙传》等)做成阅读辅助。
- 用户已有"某书人物助手"想抽象成可复用方案时,直接复用本 skill 的模板。
Workflow
Step 1 — 收集需求与书名
向用户确认(一次问清,避免来回):
- 目标书名与主角名(用于图谱中心和卡片「与XX」)。
- 主要在哪个/哪些网站读(ujxsw、起点、笔趣阁类…)。模板已通用,但知道站点有助于验证 findContent() 选择器。
- 是否要我现在就填一份种子人物库,还是先给空模板让他自己填。
Step 2 — 复制并参数化模板
从 assets/templates/user-script-template.user.js 与 demo-template.html 复制为 outputs/<书名拼音>-helper.user.js 和 <书名拼音>-demo.html,然后仅改三处:
- const PROTAGONIST = '主角名';
- const APP_ID = '书名拼音';(不同书用不同值,localStorage 互不干扰)
- 替换 SEED = { ... } 为该书人物(字段见 references/characters-schema.md)。
> 模板已通过 node --check 与 vm.Script 语法校验,逻辑完整,无需重写引擎。
Step 3 — 构建人物种子库(SEED)
- 按
references/characters-schema.md的字段,先填核心人物 15~30 个,至少含role/bg/rel/relType/tags。 traits(人物特点)与aka(别名)强烈建议补,体验差异很大。- 用脚本批量注入
traits等可选字段时,注意正则不要锚^行首(跨环境不稳定),改用"名字":精确匹配键值行。 - 主角条目的
relType写为"self"。
Step 4 — 校验与交付
- 用户脚本:
node --check <file>通过即可。 - 演示页:用
vm.Script解析<script>块确认无语法错误(见 schema 的坑点:SVG 字体不加引号、三元用?、内嵌文案用「」而非 ASCII 双引号)。 - 用
present_files交付三件套:演示页会直接预览。 - 给出安装说明:Tampermonkey → 添加新脚本 → 粘贴 user.js → 保存;在小说正文页点「扫描当前页并高亮人物」。
Step 5 — 迭代(按用户需要)
按优先级可选增强(模板已预留接口):
- 出场阶段筛选:给人物加 stage 标签(骊珠洞天篇/剑气长城篇…),面板加筛选。
- 更多次要人物:持续扩充 SEED。
- 经典台词/名场面:加 quotes 字段并在卡片展示。
- 阵营势力树:在关系图谱外另做层级图。
Core capabilities (built into templates)
- 通用高亮:
findContent()多选择器 + 最大文本块兜底,不绑定固定 DOM;长名优先正则避免截断;跳过脚本/样式/已高亮节点。 - 人物卡片:点击高亮名或划选人名(≤8 字)弹卡,含 身份/别名、背景、人物特点、与主角关系(带 relType 色标)、备注;未收录提示「+ 添加此人」。
- 标签筛选:按
tags阵营/身份生成 chips,可多选叠加过滤人物列表与图谱。 - 关系图谱:SVG 星型图,主角居中,节点按首个标签配色,连线旁标注
relType,点节点看详情。 - 本地持久化 + 导入导出:新增/覆盖存
localStorage,导出/导入 JSON 合并。 - 安全通用:
@match *://*/*全站加载,但默认不高亮,仅「扫描当前页」按钮对当前页生效,避免污染非小说页。
Resources
assets/templates/user-script-template.user.js—— 用户脚本模板(改 PROTAGONIST/APP_ID/SEED 即用)。assets/templates/demo-template.html—— 单文件演示页模板(粘贴正文体验)。references/characters-schema.md—— 人物字段定义、建库建议、高亮算法、已知坑点、JSON 格式。
Notes / guardrails
- 种子库资料按通用整理,细节可能随剧情出入 —— 务必提示用户用「添加/编辑」边读边纠错。
- 默认不高亮、需手动扫描,是为了通用安全;若用户明确只在单一站点用,可把
@match收窄到该站/read/*并默认开启高亮。 - 涉及具体书目的人物事实,优先基于用户提供的资料或百科整理,避免编造关键关系。