git.iko.soy/typeable/pandoc
on master help sign in
KaTeX math: respect classoption=fleqn variable

closes #5815

commitbfbff3106d14765950c68f772d04637b8a0b177b authormb21 <mb21@users.noreply.github.com> dateSun 13 Oct 2019, 20:05 (7 years ago) parentb976486
2 files changed+12−2
MANUAL.txt+6 src/Text/Pandoc/Writers/HTML.hs+6−2
MANUAL.txt+6
@@ -1988,6 +1988,12 @@ ODT or pptx.
19881988[Unicode Bidirectional Algorithm]: http://www.w3.org/International/articles/inline-bidi-markup/uba-basics
19891989[Language subtag lookup]: https://r12a.github.io/app-subtags/
19901990
1991+### Variables for HTML math
1992+
1993+`classoption`
1994+: when using [KaTeX](#option--katex), you can render display math equations
1995+ flush left using [YAML metadata](#layout) or with `-M classoption=fleqn`.
1996+
19911997### Variables for HTML slides
19921998
19931999These affect HTML output when [producing slide shows with pandoc].
src/Text/Pandoc/Writers/HTML.hs+6−2
@@ -281,8 +281,12 @@ pandocToHtml opts (Pandoc meta blocks) = do
281281 H.script !
282282 A.src (toValue $ url ++ "katex.min.js") $ mempty
283283 nl opts
284− H.script
285− "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 } );\n }}});"
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 }}});"
286290 nl opts
287291 H.link ! A.rel "stylesheet" !
288292 A.href (toValue $ url ++ "katex.min.css")