使用 Pandoc 在 HTML 输出中包含 epub TOC?

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

Pandoc noob,我在将目录转换为 HTML 输出时遇到问题。

我的输入是 .epub 文件。

我添加了

--toc
标志和
--standalone
。我的标题模板还包含一个
$toc$
块。

html 输出文件确实有正确的 html 标题(h1、h2 等),所以我知道结构就在那里。

但是输出的 HTML 文件中没有出现 TOC。我怎样才能让它出现?或者,这在 .epub 文件中的 Pandoc 中是不可能的吗?


编辑以在评论中添加每个请求的详细信息。

我的

header.html
很简单:

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta http-equiv="Content-Style-Type" content="text/css" />
    <meta name="generator" content="pandoc" />
  </head>
  <style>
      img {
          max-width: 100%;
          height: auto;
      }
      body {
          font-family: sans-serif;
      }
  </style>
  <body>
    <div>$table-of-contents$</div>
    <div>$body$</div>
  </body>
</html>

第一个空的

div
(模板中的
$toc$
)出现在 HTML 输出中,但是是空的。

输出本身是正常的,包含的CSS可以工作,但它只是缺少任何目录。

我这样称呼它:

pandoc --standalone input.epub -o output.html --extract-media=. --template=header.html --toc

即使我使用带有

--toc
的默认 html pandoc 模板,也不会显示任何目录。但当使用 Latex 将相同的 .epub 转换为 pdf 时,它确实通过
--toc
命令完成了。

html latex markdown pandoc epub
1个回答
0
投票

我遇到了同样的问题,无论我如何摆弄它,我都无法让 pandoc 包含目录。和你一样,模板中 $toc$ 应该所在的元素返回为空。

然而,Calibre 是一个很棒的东西。它将您的 epub 转换为 htmlz,这只不过是一个包含 html 文件 (index.html) 和一个包含图像的文件夹的 zip 文件。您还可以获得一个 css 文件和封面图像。 Calibre 确实在 html 文件中包含了目录。只需解压 htmlz 即可 - 您想要的一切。

唯一的问题是 Calibre 没有在 index.html 文件中添加封面。但是您可以轻松添加一个 img 标签作为其中的第一个语句,并且如果您想要的话,您就有了封面。

这是我发现的将 epub 转换为 html 文件的最简单方法。

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