使用CSS或模板自定义Pandoc的HTML输出

时间:2013-06-20 20:44:11

标签: haskell pandoc

我有一个Happstack程序,可以使用Text.Pandoc将Markdown文档动态转换为HTML:

import qualified Text.Pandoc as Pandoc
...
    return $ toResponse $ Pandoc.writeHtml Pandoc.def contents

即。 Pandoc返回Text.Blaze.Html.Html值。 (它有一个ToMessage实例,这意味着它可以用作对请求的响应。)

如何在Pandoc的输出中插入自定义CSS样式表?如果我想自定义HTML,例如通过用其他一些元素包装<body>内容?

3 个答案:

答案 0 :(得分:4)

当启用Pandoc的“独立模式”选项时,它使用模板格式化输出。 可以在writerTemplate的{​​{1}}和writerVariables成员中设置模板及其子变量。

命令行工具有一个默认的模板集。您可以使用以下方式查看格式的默认模板: WriterOptions

使用库时,默认使用空模板。您可以使用pandoc -D html以编程方式获取默认模板。

以下是一些示例代码:

getDefaultTemplate

答案 1 :(得分:1)

Pandoc,从命令行运行时,会在内容( -B < / strong>)和内容( -A )之后。我不知道Happstack,但肯定有办法将这些参数传递给<head>

答案 2 :(得分:0)

您还可以编写自己的模板,在从命令行调用pandoc时,例如将其命名为template.html,并使用--template template.html选项。

文档位于https://pandoc.org/MANUAL.html#templates,默认模板(用于启发)位于https://raw.githubusercontent.com/jgm/pandoc-templates/master/default.html5