aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Text/Pandoc/Readers/HTML.hs12
-rw-r--r--test/command/4877.md13
2 files changed, 25 insertions, 0 deletions
diff --git a/src/Text/Pandoc/Readers/HTML.hs b/src/Text/Pandoc/Readers/HTML.hs
index ea62bfcbf..b06e07a80 100644
--- a/src/Text/Pandoc/Readers/HTML.hs
+++ b/src/Text/Pandoc/Readers/HTML.hs
@@ -663,6 +663,7 @@ inline = choice
, pCode
, pSpan
, pMath False
+ , pScriptMath
, pRawHtmlInline
]
@@ -822,6 +823,17 @@ toStringAttr :: [(Text, Text)] -> [(String, String)]
toStringAttr = map go
where go (x,y) = (T.unpack x, T.unpack y)
+pScriptMath :: PandocMonad m => TagParser m Inlines
+pScriptMath = try $ do
+ TagOpen _ attr' <- pSatisfy $ tagOpen (=="script") (const True)
+ isdisplay <- case lookup "type" attr' of
+ Just x | "math/tex" `T.isPrefixOf` x
+ -> return $ "display" `T.isSuffixOf` x
+ _ -> mzero
+ contents <- T.unpack . innerText <$>
+ manyTill pAnyTag (pSatisfy (matchTagClose "script"))
+ return $ (if isdisplay then B.displayMath else B.math) contents
+
pMath :: PandocMonad m => Bool -> TagParser m Inlines
pMath inCase = try $ do
open@(TagOpen _ attr') <- pSatisfy $ tagOpen (=="math") (const True)
diff --git a/test/command/4877.md b/test/command/4877.md
new file mode 100644
index 000000000..070687345
--- /dev/null
+++ b/test/command/4877.md
@@ -0,0 +1,13 @@
+```
+% pandoc -f html -t native
+My <script type="math/tex">\mathcal{D}</script>
+^D
+[Plain [Str "My",Space,Math InlineMath "\\mathcal{D}"]]
+```
+
+```
+% pandoc -f html -t native
+<script type="math/tex; mode=display">\mathcal{D}</script>
+^D
+[Plain [Math DisplayMath "\\mathcal{D}"]]
+```