如何防止 pandoc 在内容中插入我标题的 <h1> 元素

问题描述 投票:0回答:1

我有一本书,由几个有序的 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
的标题。下面是两个目录条目。第一个是书的标题,指的是我不想出现在下一页上的元素。第二个是“第一章”,它指的是我的 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

pandoc epub
1个回答
0
投票

这发生在我身上,但我正在从 HTML 文件生成 EPUB。每个 HTML 文件都有一个

<h1>
元素,但它被隐藏在其他元素之下。对我来说,解决方法是创建一个顶级
<h1>
并将其添加到
body
之后。之后,pandoc 似乎停止创建额外的元素。

我不确定 Markdown,但我确实看到您的第一个 Markdown 页面 (file1.md) 没有任何 H1 元素。所以你可以尝试添加一个,例如

# Title

看看会发生什么。

© www.soinside.com 2019 - 2024. All rights reserved.