2012-10-30 56 views
1

Pandoc在解析文檔時包含元數據塊。元數據塊的標題部分是[內嵌]類型,是Pandoc特有的標記數據類型。我試圖找到一種方法將其轉換爲Html,以便可以將該文本直接嵌入到傳出Html文檔的Header元素中。如何將Pandoc Inline數據類型轉換爲Blaze HTML數據類型

做這種轉換需要什麼功能或功能組合?

[Inline] -> Html 

[Str "My", Space, Str "Title"] -> ("My Title" :: Html) 
  • 內嵌在Pandoc
  • 的Html提供行內標記數據類型是火焰的Html

對於臨時提供普通HTML數據類型,我要去破解一個處理Str和Space的函數,但是我知道我最終需要這種方法來處理所有的Inline構造函數。

回答

2

有跡象表明,我發現,沿Pandoc(Data.Text.Pandoc.Shared,並通過您的示例stringify功能都只有幾個輔助功能是你所需要的(這個功能確實注意到,它消除了任何格式,這是我的猜測是不。對於進入頭元素文本)重要

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

請問這種類型的檢查是不是要['string'(HTTP調用? //hackage.haskell.org/packages/archive/blaze-markup/0.5.1.0/doc/html/Text-Blaze-Interna l.html#v:string)也是必需的? (即'inlineToHtml = string。stringify') – huon

+0

@dbaupp我已經根據OP的帖子撰寫了示例。我沒有使用blaze html的經驗。 – mhitza

+0

這是最終爲我工作的人。 –

4

你想是什麼:

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