@@ -267,39 +267,50 @@ pandocToHtml opts (Pandoc meta blocks) = do
267 notes <- footnoteSection opts (reverse (stNotes st))
267 notes <- footnoteSection opts (reverse (stNotes st))
268 let thebody = blocks' >> notes
268 let thebody = blocks' >> notes
269 let math = case writerHTMLMathMethod opts of
269 let math = case writerHTMLMathMethod opts of
270− MathJax url
270+ MathJax url
271− | slideVariant /= RevealJsSlides ->
271+ | slideVariant /= RevealJsSlides ->
272− -- mathjax is handled via a special plugin in revealjs
272+ -- mathjax is handled via a special plugin in revealjs
273− H.script ! A.src (toValue url)
273+ H.script ! A.src (toValue url)
274− ! A.type_ "text/javascript"
274+ ! A.type_ "text/javascript"
275− $ case slideVariant of
275+ $ case slideVariant of
276− SlideousSlides ->
276+ SlideousSlides ->
277− preEscapedString
277+ preEscapedString
278− "MathJax.Hub.Queue([\"Typeset\",MathJax.Hub]);"
278+ "MathJax.Hub.Queue([\"Typeset\",MathJax.Hub]);"
279− _ -> mempty
279+ _ -> mempty
280− KaTeX url -> do
280+ KaTeX url -> do
281− H.script !
281+ H.script !
282− A.src (toValue $ url ++ "katex.min.js") $ mempty
282+ A.src (toValue $ url ++ "katex.min.js") $ mempty
284− let katexFlushLeft =
284+ let katexFlushLeft =
285− case lookupContext "classoption" metadata of
285+ case lookupContext "classoption" metadata of
286− Just clsops | "fleqn" `elem` (clsops :: [Text]) -> "true"
286+ Just clsops | "fleqn" `elem` (clsops :: [Text]) -> "true"
287− _ -> "false"
287+ _ -> "false"
288− H.script $
288+ H.script $ text $ T.unlines [
289− "document.addEventListener(\"DOMContentLoaded\", function () {\n var mathElements = document.getElementsByClassName(\"math\");\n for (var i = 0; i < mathElements.length; i++) {\n var texText = mathElements[i].firstChild;\n if (mathElements[i].tagName == \"SPAN\") { katex.render(texText.data, mathElements[i], { displayMode: mathElements[i].classList.contains(\"display\"), throwOnError: false, fleqn: " <> katexFlushLeft <> " } );\n }}});"
289+ "document.addEventListener(\"DOMContentLoaded\", function () {"
290+ , " var mathElements = document.getElementsByClassName(\"math\");"
291+ , " for (var i = 0; i < mathElements.length; i++) {"
292+ , " var texText = mathElements[i].firstChild;"
293+ , " if (mathElements[i].tagName == \"SPAN\") {"
294+ , " katex.render(texText.data, mathElements[i], {"
295+ , " displayMode: mathElements[i].classList.contains('display'),"
296+ , " throwOnError: false,"
297+ , " fleqn: " <> katexFlushLeft
291− H.link ! A.rel "stylesheet" !
302+ H.link ! A.rel "stylesheet" !
292− A.href (toValue $ url ++ "katex.min.css")
303+ A.href (toValue $ url ++ "katex.min.css")
294− _ -> case lookupContext "mathml-script"
305+ _ -> case lookupContext "mathml-script"
295− (writerVariables opts) of
306+ (writerVariables opts) of
296− Just s | not (stHtml5 st) ->
307+ Just s | not (stHtml5 st) ->
297− H.script ! A.type_ "text/javascript"
308+ H.script ! A.type_ "text/javascript"
298− $ preEscapedString
309+ $ preEscapedString
299− ("/*<![CDATA[*/\n" ++ T.unpack s ++
310+ ("/*<![CDATA[*/\n" ++ T.unpack s ++
300− "/*]]>*/\n")
311+ "/*]]>*/\n")
301− | otherwise -> mempty
312+ | otherwise -> mempty
302− Nothing -> mempty
313+ Nothing -> mempty
303 let context = (if stHighlighting st
314 let context = (if stHighlighting st
304 then case writerHighlightStyle opts of
315 then case writerHighlightStyle opts of
305 Just sty -> defField "highlighting-css"
316 Just sty -> defField "highlighting-css"