jxxcarlson/math-markdown/2.0.2

NOTE: the latest version is 3.0.6

Math Markdown

The aim of the Math Markdown library is to provide a tool for rendering Markdown text with embedded math-mode TeX, e.g.,

This **is** a test: $a^2 + b^2 = c^2$.

At the moment, the "version" of Markdown we have implemented is primitive. Nonetheless, it is quite serviceable. See markdown.minilatex.app for a working example.

We will be working to expand the coverage of Math Markdown.

Example

To convert text to Html, do something like this:

MMarkdown.toHtml [ ] "This **is** a test: $a^2 + b^2 = c^2$."

Demo app

There is a demo in ./app. To run it, go into that folder and say sh make.sh. Then double-click on index.html.

Style

The style used by MMarkdown is entirely determined by the definitions of the CSS classes given in index.html. See the code in ./app/index.html for examles to imitate. Consequently they are easily configured for whatever application yuo have in mind.

MathJax

The javascript code in .app/index.html is essential to the proper rendering of mathematical text. It should be copied verbatim for your own app.

Markdown extensions

I am trying to be conservative about extensions to Markdown. However, there is one that I thought important enough to add: poetry blocks. These are like quotation blocks, except that they begin with ">>" instead of ">". Line endings are respected in poetry blocks.

Technical stuff: the Differ module

Math Markdown exposes only two modules — MMarkdown and Differ. The purpose of the Differ module is to speed up the parse-render operation by reparsing and rerendering only text that has been changed. This module is used in the demo app.

I addition increased speed, using Differ results in a smoother user experience, since only small parts of the document being edited need to be re-processed.