git.iko.soy/typeable/pandoc
on master help sign in
Markdown writer: Use setext style headers only if --lhs-out specified.

Reason: ghc doesn't like '#' characters in lhs comment sections. See http://www.haskell.org/pipermail/haskell-cafe/2008-December/051300.html git-svn-id: https://pandoc.googlecode.com/svn/trunk@1503 788f1e2b-df1e-0410-8736-df70ead52e1b

commit6359c789a76a455ae54d9b13537caf31d043161f authorfiddlosopher <fiddlosopher@788f1e2b-df1e-0410-8736-df70ead52e1b> dateTue 2 Dec 2008, 22:42 (18 years ago) parent9aecc17
1 file changed+10−1
Text/Pandoc/Writers/Markdown.hs+10−1
Text/Pandoc/Writers/Markdown.hs+10−1
@@ -184,7 +184,16 @@ blockToMarkdown _ (RawHtml str) = return $ text str
184184blockToMarkdown _ HorizontalRule = return $ text "\n* * * * *\n"
185185blockToMarkdown opts (Header level inlines) = do
186186 contents <- inlineListToMarkdown opts inlines
187− return $ text ((replicate level '#') ++ " ") <> contents <> text "\n"
187+ -- use setext style headers if in literate haskell mode.
188+ -- ghc interprets '#' characters in column 1 as line number specifiers.
189+ if writerLiterateHaskell opts
190+ then let len = length $ render contents
191+ in return $ contents <> text "\n" <>
192+ case level of
193+ 1 -> text $ replicate len '=' ++ "\n"
194+ 2 -> text $ replicate len '-' ++ "\n"
195+ _ -> empty
196+ else return $ text ((replicate level '#') ++ " ") <> contents <> text "\n"
188197blockToMarkdown opts (CodeBlock (_,classes,_) str) | "haskell" `elem` classes &&
189198 writerLiterateHaskell opts =
190199 return $ (vcat $ map (text "> " <>) $ map text (lines str)) <> text "\n"