git.iko.soy/typeable/pandoc
on master help sign in
LaTeX reader: Better support for Verbatim and minted environments.
f7d37c9John MacFarlane
src/Text/Pandoc/Readers/LaTeX.hs+18−3
@@ -818,7 +818,14 @@ environments = M.fromList
818 (codeBlockWith ("",["sourceCode","literate","haskell"],[]) <$>
818 (codeBlockWith ("",["sourceCode","literate","haskell"],[]) <$>
819 verbEnv "code"))
819 verbEnv "code"))
820 , ("verbatim", codeBlock <$> (verbEnv "verbatim"))
820 , ("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)
821− , ("Verbatim", codeBlock <$> (verbEnv "Verbatim"))
828+ codeBlockWith attr <$> (verbEnv "Verbatim"))
822 , ("lstlisting", do options <- option [] keyvals
829 , ("lstlisting", do options <- option [] keyvals
823 let kvs = [ (if k == "firstnumber"
830 let kvs = [ (if k == "firstnumber"
824 then "startFrom"
831 then "startFrom"
@@ -829,8 +836,16 @@ environments = M.fromList
829 >>= fromListingsLanguage)
836 >>= fromListingsLanguage)
830 let attr = ("",classes,kvs)
837 let attr = ("",classes,kvs)
831 codeBlockWith attr <$> (verbEnv "lstlisting"))
838 codeBlockWith attr <$> (verbEnv "lstlisting"))
832− , ("minted", liftA2 (\l c -> codeBlockWith ("",[l],[]) c)
839+ , ("minted", do options <- option [] keyvals
833− (grouped (many1 $ satisfy (/= '}'))) (verbEnv "minted"))
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"))
834 , ("obeylines", parseFromString
849 , ("obeylines", parseFromString
835 (para . trimInlines . mconcat <$> many inline) =<<
850 (para . trimInlines . mconcat <$> many inline) =<<
836 intercalate "\\\\\n" . lines <$> verbEnv "obeylines")
851 intercalate "\\\\\n" . lines <$> verbEnv "obeylines")