@@ -52,6 +52,7 @@ import Data.List (intercalate)
52import qualified Data.Map as M
52import qualified Data.Map as M
53import qualified Control.Exception as E
53import qualified Control.Exception as E
54import System.FilePath (takeExtension, addExtension)
54import System.FilePath (takeExtension, addExtension)
55+import Text.Pandoc.Highlighting (fromListingsLanguage)
56-- | Parse LaTeX from string and return 'Pandoc' document.
57-- | Parse LaTeX from string and return 'Pandoc' document.
57readLaTeX :: ReaderOptions -- ^ Reader options
58readLaTeX :: ReaderOptions -- ^ Reader options
@@ -819,11 +820,13 @@ environments = M.fromList
819 , ("verbatim", codeBlock <$> (verbEnv "verbatim"))
820 , ("verbatim", codeBlock <$> (verbEnv "verbatim"))
820 , ("Verbatim", codeBlock <$> (verbEnv "Verbatim"))
821 , ("Verbatim", codeBlock <$> (verbEnv "Verbatim"))
821 , ("lstlisting", do options <- option [] keyvals
822 , ("lstlisting", do options <- option [] keyvals
822− let classes = [ "numberLines" |
823− lookup "numbers" options == Just "left" ]
824 let kvs = [ (if k == "firstnumber"
823 let kvs = [ (if k == "firstnumber"
825 then "startFrom"
824 then "startFrom"
826 else k, v) | (k,v) <- options ]
825 else k, v) | (k,v) <- options ]
826+ let classes = [ "numberLines" |
827+ lookup "numbers" options == Just "left" ]
828+ ++ maybe [] (:[]) (lookup "language" options
829+ >>= fromListingsLanguage)
827 let attr = ("",classes,kvs)
830 let attr = ("",classes,kvs)
828 codeBlockWith attr <$> (verbEnv "lstlisting"))
831 codeBlockWith attr <$> (verbEnv "lstlisting"))
829 , ("minted", liftA2 (\l c -> codeBlockWith ("",[l],[]) c)
832 , ("minted", liftA2 (\l c -> codeBlockWith ("",[l],[]) c)