From 99959b68e9ebbe48e952ce915368d6fc88a7d41a Mon Sep 17 00:00:00 2001 From: fiddlosopher Date: Thu, 4 Jan 2007 01:04:56 +0000 Subject: + Improved text wrapping algorithm in markdown, docbook, and RST writers. LineBreaks no longer cause ugly wrapping in Markdown output. + Replaced splitBySpace with the more general, polymorphic function splitBy (in Text/Pandoc/Shared). git-svn-id: https://pandoc.googlecode.com/svn/trunk@411 788f1e2b-df1e-0410-8736-df70ead52e1b --- src/Text/Pandoc/Writers/Markdown.hs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/Text/Pandoc/Writers/Markdown.hs') diff --git a/src/Text/Pandoc/Writers/Markdown.hs b/src/Text/Pandoc/Writers/Markdown.hs index bfebc71fe..c1d50c2ef 100644 --- a/src/Text/Pandoc/Writers/Markdown.hs +++ b/src/Text/Pandoc/Writers/Markdown.hs @@ -58,8 +58,13 @@ escapeLinkTitle = gsub "\"" "\\\\\"" -- | Take list of inline elements and return wrapped doc. wrappedMarkdown :: [Inline] -> Doc -wrappedMarkdown lst = fsep $ - map (fcat . (map inlineToMarkdown)) (splitBySpace lst) +wrappedMarkdown lst = + let wrapSection sec = fsep $ map inlineListToMarkdown $ (splitBy Space sec) + wrappedSecs = map wrapSection $ splitBy LineBreak lst + wrappedSecs' = foldr (\s rest -> if not (null rest) + then (s <> text " "):rest + else s:rest) [] wrappedSecs in + vcat wrappedSecs' -- | Insert Blank block between key and non-key formatKeys :: [Block] -> [Block] -- cgit v1.2.3