aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorschrieveslaach <schrieveslaach@online.de>2017-03-29 14:49:46 +0200
committerJohn MacFarlane <jgm@berkeley.edu>2017-03-29 14:49:46 +0200
commit5fe734d452976ff66ede965984954c6d3755d5c2 (patch)
tree3628ccb6a3b130f0c5cfb1d9f5ab464af975bd45
parent5cb18e5dc2707f1ae005e13765882971f5c16016 (diff)
downloadpandoc-5fe734d452976ff66ede965984954c6d3755d5c2.tar.gz
lstinline with braces can be used (verb cannot be used with braces) (#3535)
* Fix lstinline handling: lstinline with braces can be used (verb cannot be used with braces) * Use codeWith and determine the language from lstinline * Improve code * Add another test: convert lstinline without language option
-rw-r--r--src/Text/Pandoc/Readers/LaTeX.hs9
-rw-r--r--test/command/3534.md23
2 files changed, 31 insertions, 1 deletions
diff --git a/src/Text/Pandoc/Readers/LaTeX.hs b/src/Text/Pandoc/Readers/LaTeX.hs
index 9c028faa4..e85002ba3 100644
--- a/src/Text/Pandoc/Readers/LaTeX.hs
+++ b/src/Text/Pandoc/Readers/LaTeX.hs
@@ -601,7 +601,7 @@ inlineCommands = M.fromList $
, ("thanks", note <$> grouped block)
, ("footnote", note <$> grouped block)
, ("verb", doverb)
- , ("lstinline", skipopts *> doverb)
+ , ("lstinline", dolstinline)
, ("Verb", doverb)
, ("url", (unescapeURL <$> braced) >>= \url ->
pure (link url "" (str url)))
@@ -716,6 +716,13 @@ doverb = do
marker <- anyChar
code <$> manyTill (satisfy (/='\n')) (char marker)
+dolstinline :: PandocMonad m => LP m Inlines
+dolstinline = do
+ options <- option [] keyvals
+ let classes = maybeToList $ lookup "language" options >>= fromListingsLanguage
+ marker <- char '{' <|> anyChar
+ codeWith ("",classes,[]) <$> manyTill (satisfy (/='\n')) (char '}' <|> char marker)
+
doLHSverb :: PandocMonad m => LP m Inlines
doLHSverb = codeWith ("",["haskell"],[]) <$> manyTill (satisfy (/='\n')) (char '|')
diff --git a/test/command/3534.md b/test/command/3534.md
new file mode 100644
index 000000000..89224551b
--- /dev/null
+++ b/test/command/3534.md
@@ -0,0 +1,23 @@
+```
+% pandoc -f latex -t html
+I want to explain the interface of \lstinline[language=Java]{public class MyClass}.
+^D
+<p>I want to explain the interface of <code class="sourceCode java"><span class="kw">public</span> <span class="kw">class</span> MyClass</code>.</p>
+
+```
+
+```
+% pandoc -f latex -t html
+I want to explain the interface of \lstinline{public class MyClass}.
+^D
+<p>I want to explain the interface of <code>public class MyClass</code>.</p>
+
+```
+
+```
+% pandoc -f latex -t native
+I want to explain the interface of \lstinline[language=Java]{public class MyClass}.
+^D
+[Para [Str "I",Space,Str "want",Space,Str "to",Space,Str "explain",Space,Str "the",Space,Str "interface",Space,Str "of",Space,Code ("",["java"],[]) "public class MyClass",Str "."]]
+```
+