@@ -267,39 +267,50 @@ pandocToHtml opts (Pandoc meta blocks) = do
267267 notes <- footnoteSection opts (reverse (stNotes st))
268268 let thebody = blocks' >> notes
269269 let math = case writerHTMLMathMethod opts of
270− MathJax url
271− | slideVariant /= RevealJsSlides ->
272− -- mathjax is handled via a special plugin in revealjs
273− H.script ! A.src (toValue url)
274− ! A.type_ "text/javascript"
275− $ case slideVariant of
276− SlideousSlides ->
277− preEscapedString
278− "MathJax.Hub.Queue([\"Typeset\",MathJax.Hub]);"
279− _ -> mempty
280− KaTeX url -> do
281− H.script !
282− A.src (toValue $ url ++ "katex.min.js") $ mempty
283− nl opts
284− let katexFlushLeft =
285− case lookupContext "classoption" metadata of
286− Just clsops | "fleqn" `elem` (clsops :: [Text]) -> "true"
287− _ -> "false"
288− H.script $
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 }}});"
290− nl opts
291− H.link ! A.rel "stylesheet" !
292− A.href (toValue $ url ++ "katex.min.css")
293−
294− _ -> case lookupContext "mathml-script"
295− (writerVariables opts) of
296− Just s | not (stHtml5 st) ->
297− H.script ! A.type_ "text/javascript"
298− $ preEscapedString
299− ("/*<![CDATA[*/\n" ++ T.unpack s ++
300− "/*]]>*/\n")
301− | otherwise -> mempty
302− Nothing -> mempty
270+ MathJax url
271+ | slideVariant /= RevealJsSlides ->
272+ -- mathjax is handled via a special plugin in revealjs
273+ H.script ! A.src (toValue url)
274+ ! A.type_ "text/javascript"
275+ $ case slideVariant of
276+ SlideousSlides ->
277+ preEscapedString
278+ "MathJax.Hub.Queue([\"Typeset\",MathJax.Hub]);"
279+ _ -> mempty
280+ KaTeX url -> do
281+ H.script !
282+ A.src (toValue $ url ++ "katex.min.js") $ mempty
283+ nl opts
284+ let katexFlushLeft =
285+ case lookupContext "classoption" metadata of
286+ Just clsops | "fleqn" `elem` (clsops :: [Text]) -> "true"
287+ _ -> "false"
288+ H.script $ text $ T.unlines [
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
298+ , " });"
299+ , "}}});"
300+ ]
301+ nl opts
302+ H.link ! A.rel "stylesheet" !
303+ A.href (toValue $ url ++ "katex.min.css")
304+
305+ _ -> case lookupContext "mathml-script"
306+ (writerVariables opts) of
307+ Just s | not (stHtml5 st) ->
308+ H.script ! A.type_ "text/javascript"
309+ $ preEscapedString
310+ ("/*<![CDATA[*/\n" ++ T.unpack s ++
311+ "/*]]>*/\n")
312+ | otherwise -> mempty
313+ Nothing -> mempty
303314 let context = (if stHighlighting st
304315 then case writerHighlightStyle opts of
305316 Just sty -> defField "highlighting-css"