跳转到内容
GitHub

章节解析规则

TRNovel 在打开本地 .txt 小说时,会用一套目录规则集自动识别章节标题与分卷(卷/部/篇),生成可折叠的「卷 → 章」目录树。内置规则覆盖绝大多数常见格式;你也可以通过配置文件自定义规则以适配特殊排版。

  • 章节第N章 / 第N节 / 第N回 / 第N话,N 支持阿拉伯数字与中文数字(含 〇 零 两壹贰…仟)。
  • 英文章节Chapter N / Section N / Part N / Episode N
  • 特殊章节:楔子、引子、序章、序言、前言、后记、尾声、终章、番外、外传、附录等。
  • 分卷第N卷 / 第N部 / 第N篇上/中/下卷 等。
  • 抗误报:标题需独占一行(顶格或仅 ASCII 缩进;全角空格   缩进视为正文段落)、长度受限、排除「第三部分 / 第三节课」等计数词歧义、忽略以句号结尾的行。

在配置目录下新建 ~/.novel/toc_rules.json。该文件存在时,其规则会追加到内置默认规则之上;文件缺失或格式错误时,自动回退到内置默认(不影响阅读)。

字段对齐 LegadoTxtTocRule,正则采用 fancy-regex 语法(支持前后向断言,可直接粘贴 Legado 社区规则)。

{
  "maxTitleLen": 35,
  "rules": [
    {
      "name": "卷",
      "rule": "^第[0-9一二三四五六七八九十百千]{1,8}卷",
      "isVolume": true,
      "enable": true,
      "example": "第一卷 魔性不改"
    },
    {
      "name": "章/节/回",
      "rule": "^第[0-9〇零一二两三四五六七八九十百千万]{1,12}[章节回话](?:[  \\t、,,::..\\-—]).{0,30}$",
      "isVolume": false,
      "enable": true,
      "example": "第1章 罗峰"
    },
    {
      "name": "排除:计数词歧义",
      "rule": "^第?[0-9一二三四五六七八九十百千]{1,8}(?:部门|部队|部分|节课|集合)",
      "isExclude": true,
      "enable": true
    }
  ]
}
字段类型说明
maxTitleLennumber标题最大字符数,超过视为正文(默认 35)。
rules[].namestring规则名称(仅展示/调试用)。
rules[].rulestring正则字符串(fancy-regex 语法)。
rules[].isVolumebool是否为规则(卷优先于章匹配)。默认 false
rules[].isExcludebool是否为排除规则(命中即丢弃该行,优先级最高)。默认 false
rules[].enablebool是否启用。默认 true
rules[].examplestring示例标题(可选)。
rules[].serialNumbernumber排序号(可选)。
  • 当存在多条章节规则时,TRNovel 会按「有效命中数」自动择优,能自适应「章 / 节 / 回」等不同计数词的书。
  • 写规则时建议锚定行首 ^限制标题长度、用显式数字字符类而非 .+,以降低误报。
  • 章节标题约定独占一行;正文段落若以全角空格    缩进,则不会被误判为标题。