首页 > 解决方案 > 我们如何让 pandoc 从 markdown 生成漂亮的、人类可读的 HTML?

问题描述

最近我意识到我用 Markdown 写笔记做了一个错误的选择。我想改用 HTML 并将其放在我的网站上。

我使用 pandoc 将文件从 html 转换为 markdown: pandoc file.md -o file.html

但是这一切似乎都是错误的(来自vim的片段):

在此处输入图像描述 问题:

  1. 代码不可读。它在 Markdown 中非常非常易读,但我不确定出现字符代码而不是人类可以阅读的内容是怎么回事。
  2. 缩进很奇怪。我只是用gg=Gvim中的常规缩进,似乎所有的<p>标签都在逐渐向右缩进。这是预期的行为吗?它看起来确实很丑。
  3. 关于 HTML 代码的特定内容是不可取的。这可能是最不麻烦的,因为您可以轻松地用替代品替换东西,但由于我计划使用 prism 进行代码突出显示,所以我想要类似的东西class="language-c++"而不是class="sourceCode cpp.

问题:有什么方法可以轻松解决这个问题,或者让 pandoc 首先生成得更好?有没有比 pandoc 更好的替代品?是否有我缺少的 pandoc 选项?

标签: htmlcssvimpandoc

解决方案


通过“字符代码”,我假设您的意思是&gt;等等。这些在 HTML 中是必需的,因为<字符具有特殊含义。如果没有这些转义,您将拥有无效的 HTML。

缩进:pandoc 不缩进其 HTML 输出。所以这是你在 vim 中所做的事情的结果。这不是 pandoc 问题。

代码格式化:默认情况下,pandoc 插入类和 span 标签来为代码块创建突出显示的 HTML。如果您不希望这样做(例如,如果您想使用一些 JavaScript 代码进行自己的突出显示),那么您可以使用--no-highlight. 您可能仍然会得到一些类名的转换。您可以使用简单的 lua 过滤器更改这些:请参阅lua 过滤器的文档。


推荐阅读