You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Pandoc转Markdown为ePub:实现无编号Part与连续编号Chapter

解决方案

步骤1:调整标题元数据

将书籍标题放在独立的YAML元数据块中(title.txt),避免它被识别为章节:

---
title: "Book Title"
toc-depth: 2  # 确保目录显示到二级标题层级
---

步骤2:保留现有文件格式

  • Part文件(如part1/part1.md):保持# First Part {-},{-}标记用于取消该标题的编号。
  • Chapter文件(如part1/chap1.md):保持## First chapter title,无需额外标记,后续会自动连续编号。

步骤3:执行Pandoc转换命令

使用以下命令实现需求的目录结构和编号规则:

pandoc -o draft.epub title.txt part1/*.md part2/*.md part3/*.md \
  --table-of-contents \
  --number-sections \
  --top-level-division=part \
  --number-offset=0,1
参数说明:
  • --table-of-contents:生成书籍目录。
  • --number-sections:开启标题编号功能,Part的{-}标记会跳过自身编号。
  • --top-level-division=part:将一级标题(Part)识别为ePub的Part结构,保证目录层级正确。
  • --number-offset=0,1:控制编号逻辑:
    • 第一个值0:让一级标题(Part)的编号起始为0,结合{-}实现无编号效果。
    • 第二个值1:让二级标题(Chapter)从1开始编号,且编号不随Part重置,保持全局连续递增。

备选方案(自定义CSS强化效果)

如果默认参数仍存在编号异常,可创建custom.css文件强制修正编号规则:

/* 隐藏Part的编号(若存在) */
.part .title-number {
  display: none;
}

/* 全局连续递增的章节编号 */
body {
  counter-reset: chapter;
}
.chapter {
  counter-increment: chapter;
}
.chapter .title-number::before {
  content: counter(chapter) ". ";
  counter-reset: section;
}

然后在命令中添加--css=custom.css参数即可。

内容的提问来源于stack exchange,提问作者wouldnotliketo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 11:00:06