如何将内联CSS规则应用于Pandoc HTML进行降价转换?

时间:2018-09-18 13:01:28

标签: markdown pandoc

我正在尝试将HTML手册(从PDF转换为HTML格式)转换为降价格式。当我尝试使用以下代码将HTML转换为markdown时,pandoc不会将诸如(相对,绝对)之类的HTML内联位置规则应用于我的markdown输出。

pandoc -f html -t markdown input.html -o output.md

此功能是否有任何参数?

我尝试使用程序将内联HTML提取到外部CSS文件,并将CSS参数添加到我的命令中,但这没用。

pandoc -f html -t markdown --css=styles.css input.html -o output.md

1 个答案:

答案 0 :(得分:6)

这对于Pandoc或Markdown是不可能的。

作为用户指南explains(添加了重点):

  

由于pandoc的文档中间表示形式不如其在多种格式之间进行转换,因此不应期望每种格式之间都能进行完美的转换。 Pandoc尝试保留文档的结构元素,但不设置格式细节,例如边距大小。而且某些文档元素(例如复杂的表格)可能不适合pandoc的简单文档模型。虽然从pandoc的Markdown到所有格式的转换都希望是完美的,但从比pandoc的Markdown更具表现力的格式的转换可能会带来损失。

当然,HTML(和PDF)格式比Markdown更具“表现力”。因此,使用Pandoc从这些格式转换时,许多格式信息都会丢失。

提醒一下,Markdown的documentation对此进行了解释(强调原文):

  

Markdown不能替代HTML,甚至不能替代HTML。它的语法非常小,仅对应于很小的HTML标签子集。 ... HTML是一种发布格式; Markdown是一种 writing 格式。因此,Markdown的格式语法只能解决可以以纯文本形式传达的问题。

在这种情况下,Markdown对于CSS毫无用处或理解。实际上,在Pandoc的《用户指南》中,Options affecting specific writers下列出了--css标志。换句话说,它仅适用于理解并可以使用它的输出格式。此外,请注意,该选项不会生成一个CSS文件,而是指向用户在外部创建的文件。换句话说,当转换为HTML(或EPUB等)以指向定义该输出格式的CSS文件时,可以使用它。但是,对于不了解CSS的输出格式(包括Markdown),(大概)忽略了该选项。

现在,如果您正在寻找一种提取内联样式并将其导出为生成的CSS文件的工具,则存在这样的工具(Pandoc不是其中之一)。但是,这里的工具建议不合时宜(无论如何我都没有足够的经验来提出任何建议)。