首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用CSS或模板定制Pandoc的HTML输出

使用CSS或模板定制Pandoc的HTML输出
EN

Stack Overflow用户
提问于 2013-06-21 04:44:11
回答 2查看 5.1K关注 0票数 4

我有一个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样式表?如果我想要定制超文本标记语言,比如用一些其他元素包装<body>内容,该怎么办?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-20 04:53:28

当Pandoc的“独立模式”选项被启用时,它使用一个模板来格式化输出。可以在WriterOptionswriterTemplatewriterVariables成员中设置模板及其substitions变量。

命令行工具有一组它使用的默认模板。您可以使用例如pandoc -D html查看格式的默认模板。

使用该库时,默认情况下使用空模板。您可以使用getDefaultTemplate以编程方式获取默认模板。

下面是一些示例代码:

import Text.Blaze.Html.Renderer.String
import Text.Pandoc

getHtmlOpts = do
    template <- either (error . show) id
        `fmap` getDefaultTemplate Nothing "html"
    return $ def
        { writerStandalone = True
        , writerTemplate = template
        , writerVariables = [
            ("css", "/path/to/style.css"),
            ("header-includes",
             "<style>p { background-color: magenta; }</style>")]
        }

main = do
    opts <- getHtmlOpts
    putStrLn $ renderHtml $ writeHtml opts $ readMarkdown def "..."
票数 5
EN

Stack Overflow用户

发布于 2019-01-29 12:54:15

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17223424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档