html - 我们如何让 pandoc 从 markdown 生成漂亮的、人类可读的 HTML?
问题描述
最近我意识到我用 Markdown 写笔记做了一个错误的选择。我想改用 HTML 并将其放在我的网站上。
我使用 pandoc 将文件从 html 转换为 markdown:
pandoc file.md -o file.html
但是这一切似乎都是错误的(来自vim的片段):
- 代码不可读。它在 Markdown 中非常非常易读,但我不确定出现字符代码而不是人类可以阅读的内容是怎么回事。
- 缩进很奇怪。我只是用
gg=G
vim中的常规缩进,似乎所有的<p>
标签都在逐渐向右缩进。这是预期的行为吗?它看起来确实很丑。 - 关于 HTML 代码的特定内容是不可取的。这可能是最不麻烦的,因为您可以轻松地用替代品替换东西,但由于我计划使用 prism 进行代码突出显示,所以我想要类似的东西
class="language-c++"
而不是class="sourceCode cpp
.
问题:有什么方法可以轻松解决这个问题,或者让 pandoc 首先生成得更好?有没有比 pandoc 更好的替代品?是否有我缺少的 pandoc 选项?
解决方案
通过“字符代码”,我假设您的意思是>
等等。这些在 HTML 中是必需的,因为<
字符具有特殊含义。如果没有这些转义,您将拥有无效的 HTML。
缩进:pandoc 不缩进其 HTML 输出。所以这是你在 vim 中所做的事情的结果。这不是 pandoc 问题。
代码格式化:默认情况下,pandoc 插入类和 span 标签来为代码块创建突出显示的 HTML。如果您不希望这样做(例如,如果您想使用一些 JavaScript 代码进行自己的突出显示),那么您可以使用--no-highlight
. 您可能仍然会得到一些类名的转换。您可以使用简单的 lua 过滤器更改这些:请参阅lua 过滤器的文档。
推荐阅读
- xml - Jackson XML 无法反序列化列表
- c++ - 从 std::filesystem::path c++ 获取绝对路径
- vue.js - 为 NativeScript VUE 添加 RTL 支持
- flutter - 如何使用 Charts_flutter 库更改折线图中线条的平滑度(曲率)?
- php - 背包换laravel select2_multiple 字段具有相同的数据透视表但同一表单上的不同字段
- automapper - 迁移到 Automapper 10 后,使用 Automapper 的表达式映射会引发 System.EntryPointNotFoundException
- isabelle - 可以在 Isabelle 中追踪分辨率证明吗?
- scala - 轻松创建案例类替代构造函数的所有组合
- javascript - Bootstrap Modal 和 Jquery:[DOM] 找到 2 个具有非唯一 ID 的元素,但是所有 ID 都是唯一的
- python - 将一维 numpy 数组拆分为相同的数组集并返回集数