@@ -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")