git.iko.soy/typeable/pandoc
on master help sign in
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

commit4f9814087e3aa65d4482982aca34ed40ed2a2655 authorfiddlosopher <fiddlosopher@788f1e2b-df1e-0410-8736-df70ead52e1b> dateTue 25 Sep 2007, 05:43 (19 years ago) parentb0ef5b5
1 file changed+11−2
src/Text/Pandoc/Writers/Markdown.hs+11−2
src/Text/Pandoc/Writers/Markdown.hs+11−2
@@ -156,15 +156,24 @@ beginsWithOrderedListMarker str =
156156 Left _ -> False
157157 Right _ -> True
158158
159+wrappedMarkdown :: WriterOptions -> [Inline] -> State WriterState Doc
160+wrappedMarkdown opts inlines = do
161+ let chunks = splitBy LineBreak inlines
162+ let chunks' = if null chunks
163+ then []
164+ else (map (++ [Str " "]) $ init chunks) ++ [last chunks]
165+ lns <- mapM (wrapped (inlineListToMarkdown opts)) chunks'
166+ return $ vcat lns
167+
159168-- | Convert Pandoc block element to markdown.
160169blockToMarkdown :: WriterOptions -- ^ Options
161170 -> Block -- ^ Block element
162171 -> State WriterState Doc
163172blockToMarkdown opts Null = return empty
164173blockToMarkdown opts (Plain inlines) =
165− wrapped (inlineListToMarkdown opts) inlines
174+ wrappedMarkdown opts inlines
166175blockToMarkdown opts (Para inlines) = do
167− contents <- wrapped (inlineListToMarkdown opts) inlines
176+ contents <- wrappedMarkdown opts inlines
168177 -- escape if para starts with ordered list marker
169178 let esc = if (not (writerStrictMarkdown opts)) &&
170179 beginsWithOrderedListMarker (render contents)