0.2.0 • Published 4 years ago

mml-to-chtml v0.2.0

Weekly downloads
3
License
MIT
Repository
github
Last release
4 years ago

mml-to-chtml

This MathJax wrapper converts Mathematical Markup Language (MML) to Compact Hypertext Markup Language (CHTML). This package doesn't use any webworkers, webviews ; so It can be used for your NodeJS, React and React Native projects.

This project is still in its early development stages.

For any bugs, typos, errors, feel free to open an issue on the associated Github repository.

Installation

npm install mml-to-chtml --save

Examples

JS (with the options parameter)

const MMLToCHTML = require("mml-to-chtml");

const myMMLEquation = `<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
        <mi>x</mi> <mo>=</mo>
        <mrow>
          <mfrac>
            <mrow>
              <mo>&#x2212;</mo>
              <mi>b</mi>
              <mo>&#x00B1;</mo>
              <msqrt>
                <msup><mi>b</mi><mn>2</mn></msup>
                <mo>&#x2212;</mo>
                <mn>4</mn><mi>a</mi><mi>c</mi>
              </msqrt>
            </mrow>
            <mrow> <mn>2</mn><mi>a</mi> </mrow>
          </mfrac>
        </mrow>
        <mtext>.</mtext>
      </math>`;

const options = {
    width: 1280,
    ex: 8,
    em: 16,
    fontURL: "https://cdn.jsdelivr.net/npm/mathjax@3/es5/output/chtml/fonts/woff-v2"
};

const CHTMLEquation = MMLToCHTML(myMMLEquation, options); // returns <mjx-math display="true" style="margin-left: 0; margin-right: 0" class=" MJX-TEX"><mjx-mi class="mjx-i"><mjx-c class="mjx-c1D465 TEX-I"></mjx-c></mjx-mi> ...

TS (without the options parameter)

import MMLToCHTML from "mml-to-chtml";

const myMMLEquation = `<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
        <mi>x</mi> <mo>=</mo>
        <mrow>
          <mfrac>
            <mrow>
              <mo>&#x2212;</mo>
              <mi>b</mi>
              <mo>&#x00B1;</mo>
              <msqrt>
                <msup><mi>b</mi><mn>2</mn></msup>
                <mo>&#x2212;</mo>
                <mn>4</mn><mi>a</mi><mi>c</mi>
              </msqrt>
            </mrow>
            <mrow> <mn>2</mn><mi>a</mi> </mrow>
          </mfrac>
        </mrow>
        <mtext>.</mtext>
      </math>`;

const CHTMLEquation = MMLToCHTML(myMMLEquation); // returns <mjx-math display="true" style="margin-left: 0; margin-right: 0" class=" MJX-TEX"><mjx-mi class="mjx-i"><mjx-c class="mjx-c1D465 TEX-I"></mjx-c></mjx-mi> ...

Documentation

MMLToCHTML(equation, options) : string The returned Compact Hypertext Markup Language equation

equation : string The Mathematical Markup Language equation

options ?: object The options of the retuned Compact Hypertext Markup Language

width ?: number The width of container in pixels

ex ?: number The ex-size in pixels

em ?: number The em-size in pixels

fontURL ?: string The URL to use for web fonts

Notation

?: = optional parameter

Notes

Useful links

This wrapper is inspired by this project : https://github.com/mathjax/MathJax-demos-node/tree/master/direct.

Typescript

You DON'T have to install any types @types/mml-to-chtml.