diff options
-rw-r--r-- | src/Text/Pandoc/Readers/HTML.hs | 12 | ||||
-rw-r--r-- | test/command/4877.md | 13 |
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}"]] +``` |