git.iko.soy/typeable/pandoc
on master help sign in
LaTeX reader: Better support for Verbatim and minted environments.

Closes #763.

commitf7d37c97bbaf79109198a12e247bff68eb1f71b1 authorJohn MacFarlane <fiddlosopher@gmail.com> dateWed 6 Mar 2013, 09:58 (14 years ago) parent8b3a81e
1 file changed+18−3
src/Text/Pandoc/Readers/LaTeX.hs+18−3
src/Text/Pandoc/Readers/LaTeX.hs+18−3
@@ -818,7 +818,14 @@ environments = M.fromList
818818 (codeBlockWith ("",["sourceCode","literate","haskell"],[]) <$>
819819 verbEnv "code"))
820820 , ("verbatim", codeBlock <$> (verbEnv "verbatim"))
821− , ("Verbatim", codeBlock <$> (verbEnv "Verbatim"))
821+ , ("Verbatim", do options <- option [] keyvals
822+ let kvs = [ (if k == "firstnumber"
823+ then "startFrom"
824+ else k, v) | (k,v) <- options ]
825+ let classes = [ "numberLines" |
826+ lookup "numbers" options == Just "left" ]
827+ let attr = ("",classes,kvs)
828+ codeBlockWith attr <$> (verbEnv "Verbatim"))
822829 , ("lstlisting", do options <- option [] keyvals
823830 let kvs = [ (if k == "firstnumber"
824831 then "startFrom"
@@ -829,8 +836,16 @@ environments = M.fromList
829836 >>= fromListingsLanguage)
830837 let attr = ("",classes,kvs)
831838 codeBlockWith attr <$> (verbEnv "lstlisting"))
832− , ("minted", liftA2 (\l c -> codeBlockWith ("",[l],[]) c)
833− (grouped (many1 $ satisfy (/= '}'))) (verbEnv "minted"))
839+ , ("minted", do options <- option [] keyvals
840+ lang <- grouped (many1 $ satisfy (/='}'))
841+ let kvs = [ (if k == "firstnumber"
842+ then "startFrom"
843+ else k, v) | (k,v) <- options ]
844+ let classes = [ lang | not (null lang) ] ++
845+ [ "numberLines" |
846+ lookup "linenos" options == Just "true" ]
847+ let attr = ("",classes,kvs)
848+ codeBlockWith attr <$> (verbEnv "minted"))
834849 , ("obeylines", parseFromString
835850 (para . trimInlines . mconcat <$> many inline) =<<
836851 intercalate "\\\\\n" . lines <$> verbEnv "obeylines")