From 67508f986f310e83f2180fe08182fc4b8d0a5556 Mon Sep 17 00:00:00 2001 From: fiddlosopher Date: Tue, 2 Dec 2008 22:42:55 +0000 Subject: Allow LaTeX-style code sections as well as bird-style in lhs markdown. git-svn-id: https://pandoc.googlecode.com/svn/trunk@1504 788f1e2b-df1e-0410-8736-df70ead52e1b --- Text/Pandoc/Readers/Markdown.hs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'Text/Pandoc/Readers') diff --git a/Text/Pandoc/Readers/Markdown.hs b/Text/Pandoc/Readers/Markdown.hs index a6fe145c7..436ca3bd8 100644 --- a/Text/Pandoc/Readers/Markdown.hs +++ b/Text/Pandoc/Readers/Markdown.hs @@ -398,6 +398,19 @@ codeBlockIndented = do lhsCodeBlock :: GenParser Char ParserState Block lhsCodeBlock = do failUnlessLHS + contents <- lhsCodeBlockBird <|> lhsCodeBlockLaTeX + return $ CodeBlock ("",["haskell"],[]) contents + +lhsCodeBlockLaTeX :: GenParser Char ParserState String +lhsCodeBlockLaTeX = try $ do + string "\\begin{code}" + manyTill spaceChar newline + contents <- many1Till anyChar (try $ string "\\end{code}") + blanklines + return $ stripTrailingNewlines contents + +lhsCodeBlockBird :: GenParser Char ParserState String +lhsCodeBlockBird = try $ do pos <- getPosition when (sourceColumn pos /= 1) $ fail "Not in first column" lns <- many1 birdTrackLine @@ -406,7 +419,7 @@ lhsCodeBlock = do then map (drop 1) lns else lns blanklines - return $ CodeBlock ("",["haskell"],[]) $ intercalate "\n" lns' + return $ intercalate "\n" lns' birdTrackLine :: GenParser Char st [Char] birdTrackLine = do -- cgit v1.2.3