4

snapを使用して、この関数を使用して、マークダウンからテキストを作成するスプライスを作成しました。

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>

の前にいくつの改行を入れ#ても、段落に押し込まれます。

おかしなことに、同じマークダウンを pandoc のデモ サイトにダンプすると、正しい Html 出力が生成されます。

私のプロジェクトの完全なコードは、必要に応じてここにあります。

4

1 に答える 1

6

Text.Pandoc のドキュメントを参照してください。それは言います:

注: すべての読者は、入力テキストの行末が '\n' であると想定しています。そのため、Web フォームから入力テキストを取得する場合は、フィルター (/='\r') を使用して '\r' 文字を削除する必要があります。

それがあなたの問題だと思います。

于 2012-05-07T15:05:39.957 に答える