| # Copied from mistletoe.contrib |
| # <https://github.com/miyuchina/mistletoe/blob/master/contrib/mathjax.py> |
| # mistletoe is licenced under the MIT license see LICENSE.mistletoe |
| Provides MathJax support for rendering Markdown with LaTeX to html. |
| Taken from mistletoe.contrib <https://github.com/miyuchina/mistletoe/blob/master/contrib/mathjax.py> |
| from mistletoe.html_renderer import HTMLRenderer |
| from mistletoe.latex_renderer import LaTeXRenderer |
| class MathJaxRenderer(HTMLRenderer, LaTeXRenderer): |
| MRO will first look for render functions under HTMLRenderer, |
| mathjax_src = '<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-MML-AM_CHTML"></script>\n' |
| def render_math(self, token): |
| Ensure Math tokens are all enclosed in two dollar signs. |
| if token.content.startswith('$$'): |
| return self.render_raw_text(token) |
| return '${}$'.format(self.render_raw_text(token)) |
| def render_document(self, token): |
| Append CDN link for MathJax to the end of <body>. |
| return super().render_document(token) + self.mathjax_src |