git.iko.soy/typeable/pandoc
on master help sign in
Replaced individual wrapping routines in RST, Man, and
dcb1dd1fiddlosopher
src/Text/Pandoc/Writers/Man.hs+2−8
@@ -98,12 +98,6 @@ noteToMan opts num note = do
98 let marker = text "\n.SS [" <> text (show num) <> char ']'
98 let marker = text "\n.SS [" <> text (show num) <> char ']'
99 return $ marker $$ contents
99 return $ marker $$ contents
100
100
101−wrappedMan :: WriterOptions -> [Inline] -> State WriterState Doc
102−wrappedMan opts sect = do
103− let chunks = splitBy Space sect
104− chunks' <- mapM (inlineListToMan opts) chunks
105− return $ fsep chunks'
106−
107-- | Association list of characters to escape.
101-- | Association list of characters to escape.
108manEscapes :: [(Char, String)]
102manEscapes :: [(Char, String)]
109manEscapes = [('\160', "\\ "), ('\'', "\\[aq]")] ++ backslashEscapes "\".@\\"
103manEscapes = [('\160', "\\ "), ('\'', "\\[aq]")] ++ backslashEscapes "\".@\\"
@@ -121,9 +115,9 @@ blockToMan :: WriterOptions -- ^ Options
121 -> Block -- ^ Block element
115 -> Block -- ^ Block element
122 -> State WriterState Doc
116 -> State WriterState Doc
123blockToMan opts Null = return empty
117blockToMan opts Null = return empty
124−blockToMan opts (Plain inlines) = wrappedMan opts inlines
118+blockToMan opts (Plain inlines) = wrapped (inlineListToMan opts) inlines
125blockToMan opts (Para inlines) = do
119blockToMan opts (Para inlines) = do
126− contents <- wrappedMan opts inlines
120+ contents <- wrapped (inlineListToMan opts) inlines
127 return $ text ".PP" $$ contents
121 return $ text ".PP" $$ contents
128blockToMan opts (RawHtml str) = return $ text str
122blockToMan opts (RawHtml str) = return $ text str
129blockToMan opts HorizontalRule = return $ text $ ".PP\n * * * * *"
123blockToMan opts HorizontalRule = return $ text $ ".PP\n * * * * *"
src/Text/Pandoc/Writers/Markdown.hs+3−8
@@ -96,12 +96,6 @@ noteToMarkdown opts num blocks = do
96 let marker = text "[^" <> text (show num) <> text "]:"
96 let marker = text "[^" <> text (show num) <> text "]:"
97 return $ hang marker (writerTabStop opts) contents
97 return $ hang marker (writerTabStop opts) contents
98
98
99−wrappedMarkdown :: WriterOptions -> [Inline] -> State WriterState Doc
100−wrappedMarkdown opts sect = do
101− let chunks = splitBy Space sect
102− chunks' <- mapM (inlineListToMarkdown opts) chunks
103− return $ fsep chunks'
104−
105-- | Escape special characters for Markdown.
99-- | Escape special characters for Markdown.
106escapeString :: String -> String
100escapeString :: String -> String
107escapeString = escapeStringUsing markdownEscapes
101escapeString = escapeStringUsing markdownEscapes
@@ -150,9 +144,10 @@ blockToMarkdown :: WriterOptions -- ^ Options
150 -> Block -- ^ Block element
144 -> Block -- ^ Block element
151 -> State WriterState Doc
145 -> State WriterState Doc
152blockToMarkdown opts Null = return empty
146blockToMarkdown opts Null = return empty
153−blockToMarkdown opts (Plain inlines) = wrappedMarkdown opts inlines
147+blockToMarkdown opts (Plain inlines) =
148+ wrapped (inlineListToMarkdown opts) inlines
154blockToMarkdown opts (Para inlines) = do
149blockToMarkdown opts (Para inlines) = do
155− contents <- wrappedMarkdown opts inlines
150+ contents <- wrapped (inlineListToMarkdown opts) inlines
156 return $ contents <> text "\n"
151 return $ contents <> text "\n"
157blockToMarkdown opts (RawHtml str) = return $ text str
152blockToMarkdown opts (RawHtml str) = return $ text str
158blockToMarkdown opts HorizontalRule = return $ text "\n* * * * *\n"
153blockToMarkdown opts HorizontalRule = return $ text "\n* * * * *\n"
src/Text/Pandoc/Writers/RST.hs+1−7
@@ -107,15 +107,9 @@ pictToRST opts (label, (src, _)) = do
107-- | Take list of inline elements and return wrapped doc.
107-- | Take list of inline elements and return wrapped doc.
108wrappedRST :: WriterOptions -> [Inline] -> State WriterState Doc
108wrappedRST :: WriterOptions -> [Inline] -> State WriterState Doc
109wrappedRST opts inlines =
109wrappedRST opts inlines =
110− mapM (wrappedRSTSection opts) (splitBy LineBreak inlines) >>=
110+ mapM (wrapped (inlineListToRST opts)) (splitBy LineBreak inlines) >>=
111 return . vcat
111 return . vcat
112
112
113−wrappedRSTSection :: WriterOptions -> [Inline] -> State WriterState Doc
114−wrappedRSTSection opts sect = do
115− let chunks = splitBy Space sect
116− chunks' <- mapM (inlineListToRST opts) chunks
117− return $ fsep chunks'
118−
119-- | Escape special characters for RST.
113-- | Escape special characters for RST.
120escapeString :: String -> String
114escapeString :: String -> String
121escapeString = escapeStringUsing (backslashEscapes "`\\|*_")
115escapeString = escapeStringUsing (backslashEscapes "`\\|*_")