diff options
author | fiddlosopher <fiddlosopher@788f1e2b-df1e-0410-8736-df70ead52e1b> | 2007-09-25 05:43:38 +0000 |
---|---|---|
committer | fiddlosopher <fiddlosopher@788f1e2b-df1e-0410-8736-df70ead52e1b> | 2007-09-25 05:43:38 +0000 |
commit | 4f9814087e3aa65d4482982aca34ed40ed2a2655 (patch) | |
tree | 973191857c480ec312b9a40420ac6008045420c9 /src | |
parent | b0ef5b5b65d2bc1ed012638c6848325d8835ce15 (diff) | |
download | pandoc-4f9814087e3aa65d4482982aca34ed40ed2a2655.tar.gz |
Fixed a bug in the Markdown writer: incorrect line wrapping in
paragraphs including hard line breaks. Resolves Issue #25.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@1032 788f1e2b-df1e-0410-8736-df70ead52e1b
Diffstat (limited to 'src')
-rw-r--r-- | src/Text/Pandoc/Writers/Markdown.hs | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/Text/Pandoc/Writers/Markdown.hs b/src/Text/Pandoc/Writers/Markdown.hs index ab9525576..554e0a059 100644 --- a/src/Text/Pandoc/Writers/Markdown.hs +++ b/src/Text/Pandoc/Writers/Markdown.hs @@ -156,15 +156,24 @@ beginsWithOrderedListMarker str = Left _ -> False Right _ -> True +wrappedMarkdown :: WriterOptions -> [Inline] -> State WriterState Doc +wrappedMarkdown opts inlines = do + let chunks = splitBy LineBreak inlines + let chunks' = if null chunks + then [] + else (map (++ [Str " "]) $ init chunks) ++ [last chunks] + lns <- mapM (wrapped (inlineListToMarkdown opts)) chunks' + return $ vcat lns + -- | Convert Pandoc block element to markdown. blockToMarkdown :: WriterOptions -- ^ Options -> Block -- ^ Block element -> State WriterState Doc blockToMarkdown opts Null = return empty blockToMarkdown opts (Plain inlines) = - wrapped (inlineListToMarkdown opts) inlines + wrappedMarkdown opts inlines blockToMarkdown opts (Para inlines) = do - contents <- wrapped (inlineListToMarkdown opts) inlines + contents <- wrappedMarkdown opts inlines -- escape if para starts with ordered list marker let esc = if (not (writerStrictMarkdown opts)) && beginsWithOrderedListMarker (render contents) |