diff options
author | fiddlosopher <fiddlosopher@788f1e2b-df1e-0410-8736-df70ead52e1b> | 2008-12-02 22:42:55 +0000 |
---|---|---|
committer | fiddlosopher <fiddlosopher@788f1e2b-df1e-0410-8736-df70ead52e1b> | 2008-12-02 22:42:55 +0000 |
commit | 67508f986f310e83f2180fe08182fc4b8d0a5556 (patch) | |
tree | e5f4b5a0ce77f1c196e9460342c868a53a5e2505 | |
parent | 6359c789a76a455ae54d9b13537caf31d043161f (diff) | |
download | pandoc-67508f986f310e83f2180fe08182fc4b8d0a5556.tar.gz |
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
-rw-r--r-- | Text/Pandoc/Readers/Markdown.hs | 15 |
1 files changed, 14 insertions, 1 deletions
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 |