使用snap,我使用以下函数编写了一个从 markdown 创建文本的拼接:
markdownToHTML :: T.Text -> [Node]
markdownToHTML = renderHtmlNodes . (writeHtml writeOpts) . readMarkdown readOpts . T.unpack
    where
        readOpts = defaultParserState
        writeOpts = defaultWriterOptions
            { writerStandalone = False
            , writerHtml5 = True
            , writerStrictMarkdown = False
            }
现在,例如,当我给它这个降价
# Hi
Lorem ipsum something somthing
# Stuff
[a link](http://twitter.com/)
它产生这个 HTML:
<h1 id='hi'>Hi
</h1>
<p>
 Lorem ipsum something somthing
 # Stuff
 <a href='http://twitter.com/'>a link</a></p>
无论我在 之前放了多少换行符#,它仍然只是楔入段落中。
有趣的是,如果我将相同的 markdown 转储到 pandoc 的演示站点,它会产生正确的 Html 输出。
如有必要,可以在此处找到我的项目的完整代码。