2012-03-29 49 views
0

我有以下代碼:如何使用Text.Pandoc將Markdown轉換爲Html?

import Text.Pandoc 

myWriterOptions = defaultWriterOptions 
    { writerHtml5 = True 
    , writerStrictMarkdown = False 
    } 

markdownToHtml :: String -> Html 
markdownToHtml = writeHtml myWriterOptions . readMarkdown defaultParserState 

如果我把它應用到一個降價的字符串:
"header\n=======\nA line of text.\n### A list ###\n- apple\n- orange\n- pear"

我結束了:
"<h1 id=\"header\">header</h1>\n<p>A line of text. ### A list ### - apple - orange - pear</p>"

回答

4

您的代碼看起來好像沒什麼問題,輸出也是如此。我從Try Pandoc獲得相同的輸出。

如果您在第二個標題和列表之前添加換行符,那麼它會生成您正在查找的輸出。如果其他Markdown實現也需要空行,我不會感到驚訝;畢竟,如果用連字符開始一個行開始一個新的列表(想想換行),會非常煩人。

+0

好的,大多數其他實現並不需要,這就是爲什麼我感到困惑。 – qubital 2012-03-29 17:45:32

+0

不幸的是,我並不知道Markdown的正式規範,所以所有的實現本質上都是模仿[原始的Perl實現](http://daringfireball.net/projects/markdown/)。如果您認爲這種行爲不合需要,您可能需要[報告錯誤](http://johnmacfarlane.net/pandoc/bugs.html)。 – ehird 2012-03-29 17:50:33

+1

@ehird你是對的,所以我猜這對你來說應該不會讓你意外,markdown的原始描述需要空行: >「段落只是一個或多個連續的文本行,由一個或多個空行分隔。 「 [語法] [1] [1]:http://daringfireball.net/projects/markdown/syntax – dfc 2012-04-02 22:31:51

相關問題