0.6.3 • Published 7 months ago

asciimath-parser v0.6.3

Weekly downloads
-
License
MIT
Repository
github
Last release
7 months ago

Asciimath Parser

A parser that transforms asciimath to LaTeX.

NPM version

What is asciimath

A js implementation of simple mathematical formula markup language. Easier to learn and easier to use than LaTeX.

  • Without tedious backslashes of LaTeX, it is readable.
  • Even if the formula has syntax errors, only a single formula is affected, but the entire page is not affected.
  • Asciimath precedence is complicated, but you can just add parentheses when in doubt.

How to use

Install

ni -D asciimath-parser

If you want to render the formula in HTML document, you should also install katex.

Use

import { AsciiMath } from 'asciimath-parser'
const am = new AsciiMath()
console.log(am.toTex('sum _(n=1) ^(+oo) 1/(n^2) = (pi^2)/6'))
// \displaystyle{ \sum_{ n = 1 }^{ + \infty }\frac{ 1 }{ n ^{ 2 } }=\frac{ \pi ^{ 2 } }{ 6 } }

Configuration

import { AsciiMath } from 'asciimath-parser'
import type { AsciiMathConfig } from 'asciimath-parser'
const cfg: AsciiMathConfig = {
  /**
   * @default true
   * enable displayMode in KaTeX
   */
  display: true,
  /**
   * Extend tokens of asciimath
   * ```ts
   * {
   *   // Simply transform `d0` to `d theta`
   *   'd0': { type: TokenTypes.Const, tex: '{\\text{d}\\theta}' },
   *   // Token with unary symbol, the `$1` will be replaced with the following symbol
   *   'tsc': { type: TokenTypes.OperatorOA, tex: '\\textsc{$1}' },
   *   // Token with binary symbols, the `$1` and `$2` will be replaced with the following two symbols
   *   'frac': { type: TokenTypes.OperatorOAB, tex: '\\frac{ $1 }{ $2 }' },
   *   // Infix expression, the `$1` and `$2` will be replaced with the previous symbol and next symbol respectively
   *   'over': { type: TokenTypes.OperatorAOB, tex: '{ $1 \\over $2 }' },
   * }
   * ```
   *
   * You can extend the token types mentioned above, but it is *not recommended* to extend all types of [`enum TokenTypes`](https://github.com/widcardw/asciimath-parser/blob/main/packages/core/src/symbols.ts#L1-L20).
   */
  symbols: {},
  /**
   * Replace target expressions before tokenizing
   * ```ts
   * [
   *   [/&#(x?[0-9a-fA-F]+);/g, (match, $1) =>
   *     String.fromCodePoint($1[0] === 'x' ? '0' + $1 : $1)
   *   ],
   *   ...
   * ]
   * ```
   */
  replaceBeforeTokenizing: []
}
const am = new AsciiMath(cfg)
0.6.3

7 months ago

0.6.2

10 months ago

0.6.1

10 months ago

0.5.9

1 year ago

0.6.0

1 year ago

0.5.8

1 year ago

0.5.7

1 year ago

0.3.9

1 year ago

0.4.0-beta.0

1 year ago

0.4.0-beta.1

1 year ago

0.4.0-beta.2

1 year ago

0.4.0-beta.3

1 year ago

0.4.0-beta.4

1 year ago

0.4.0-beta.5

1 year ago

0.3.0

1 year ago

0.5.4

1 year ago

0.4.5

1 year ago

0.3.6

1 year ago

0.5.3

1 year ago

0.4.4

1 year ago

0.3.5

1 year ago

0.5.6

1 year ago

0.3.8

1 year ago

0.5.5

1 year ago

0.4.6

1 year ago

0.3.7

1 year ago

0.5.0

1 year ago

0.4.1

1 year ago

0.3.2

1 year ago

0.4.0

1 year ago

0.3.1

1 year ago

0.5.2

1 year ago

0.4.3

1 year ago

0.3.4

1 year ago

0.5.1

1 year ago

0.4.2

1 year ago

0.3.3

1 year ago

0.2.2

1 year ago

0.2.1

1 year ago

0.2.0

1 year ago

0.1.1

1 year ago

0.1.0

1 year ago