如何将Pandoc Inline数据类型转换为Blaze HTML数据类型

时间:2012-10-30 13:51:17

标签: haskell pandoc

Pandoc在解析文档时包含元数据块。元数据块的标题部分是[Inline]类型,是Pandoc特有的标记数据类型。我正在尝试找到一种方法将其转换为Html,以便我可以将该文本直接嵌入到传出的Html文档的Header元素中。

进行此转换需要哪些功能或功能组合?

[Inline] -> Html

[Str "My", Space, Str "Title"] -> ("My Title" :: Html)
  • Inline是Pandoc
  • 中提供的内联标记的数据类型
  • Html是Blaze Html提供的通用Html数据类型

对于过渡期,我将破解一个处理Str和Space的函数,但我知道我最终需要这样做来处理所有的Inline构造函数。

2 个答案:

答案 0 :(得分:4)

你想要的是这个:

inlinesToHtml :: [Inline] -> Html
inlinesToHtml = writeHtml defaultWriterOptions . Plain

答案 1 :(得分:2)

我发现只有少数辅助函数来自Pandoc(Data.Text.Pandoc.Shared,并且在您的示例中,stringify函数将是您所需要的(此函数会注意到它会删除任何函数)格式化,我猜这对于进入标题元素的文本并不重要。)

inlineToHtml i = (Data.Text.Pandoc.Shared.stringify i) :: Html