ascii-math

ascii-math to MathML conversion on the server side

ascii-math

This is an implimentation of asciimath. It lets you write plain text maths and have it be nicely formatted for you before display. Since it's a server side sollution it offers a much nicer user experience than MathJax or the original asciimath did. You can also use this function on the client if you prefer.

$ npm install ascii-math

On the server you can generate text that can be placed inline straight into an html document.

var parse = require('ascii-math');
 
var res = parse('e^(i pi)=-1').toString();
// => "<math title="e^(i pi)=-1"><msup><mi>e</mi><mrow><mi>i</mi><mi>&pi;</mi></mrow></msup><mo>=</mo><mo>-</mo><mn>1</mn></math>" 

On the client it is recommended that you use .toElement() but .toString() still works. You should use it via browserify.

var parse = require('ascii-math');
 
var resA = parse('e^(i pi)=-1').toString();
// => "<math title="e^(i pi)=-1"><msup><mi>e</mi><mrow><mi>i</mi><mi>&pi;</mi></mrow></msup><mo>=</mo><mo>-</mo><mn>1</mn></math>" 
div.innerHTML = resA;
 
var resB = parse('e^(i pi)=-1').toElement();//this method fails on the server 
// => <math title="e^(i pi)=-1"><msup><mi>e</mi><mrow><mi>i</mi><mi>&pi;</mi></mrow></msup><mo>=</mo><mo>-</mo><mn>1</mn></math> 
div.appendChild(resB);