我有一本书由几个有序的 Markdown 文件组成。我正在使用 Pandoc 将它们转换为 epub 文件,并且一切正常。我可以嵌入我喜欢的字体并提供我自己的 CSS 等。问题是输出文件包含一个 Markdown 中不存在的元素(作为“#”标题元素)。这个元素然后被 ToC 函数选取并插入到目录中。我没有要求该元素存在,也找不到关闭它的选项。
这是如何重现,使用比我的实际案例简单得多的案例,但足以证明问题。我有以下文件结构:
- pandoctest/
- src/
- file1.md
- file2.md
- epub.yml
内容如下:
file1.md:
Here is some text.
file2.md:
# Chapter one
The chapter goes here.
epub.yml:
---
title:
- type: main
text: A Book
creator:
- role: author
text: Some Dude
---
我正在运行的 pandoc 命令是:
pandoc -o output.epub epub.yml --toc src/*
最终结果是这样的:
第 1 页:使用 epub.yml
第 2 页: 目录页。在顶部,来自 epub.yml
的标题。下面是两个 ToC 条目。第一个是书名,指的是我不想出现在下一页的元素。第二个是“第一章”,它引用了我的 Markdown 中的 # Chapter One
元素(这是合适的)。
第 3 页: 首先,不想要的元素,在原始 XML 中如下所示:
<h1 class="unnumbered" data-number="">A Book</h1>
然后,“这是一些文本”,我确实告诉它放在那里的一段。
第 4 页:正确呈现的“第一章”页面。
这里的问题是如何让 pandoc 不呈现 Markdown 中不存在的“未编号”标题元素。它搞砸了目录,我从来没有要求它在那里。
作为参考,这里是我的小测试呈现的 epub:https://www.dropbox.com/s/dj4jo08g7q4f9i2/output.epub?dl=0