| 123456789101112131415161718192021222324252627282930313233343536 |
- md.mathjax = () => {
- var delimiters = new RegExp([
- /\$\$[^`]*?\$\$/,
- /\\\([^`]*?\\\)/,
- /\\\[[^`]*?\\\]/,
- /\\begin\{.*?\}[^`]*?\\end\{.*?\}/,
- /\$[^`\n]*?\$/,
- ]
- .map((regex) => `(?:${regex.source})`).join('|'), 'gi')
- var escape = (math) =>
- math.replace(/[<>&]/gi, (symbol) =>
- symbol === '>' ? '>' :
- symbol === '<' ? '<' :
- symbol === '&' ? '&': null
- )
- var ctor = (map = {}) => ({
- tokenize: (markdown) =>
- markdown.replace(delimiters, (str, offset) => (
- map[offset] = str,
- `?${offset}?`
- ))
- ,
- detokenize: (html) =>
- Object.keys(map)
- .reduce((html, offset) =>
- html = html.replace(`?${offset}?`, () => escape(map[offset])),
- html
- )
- })
- return Object.assign(ctor, {delimiters, escape})
- }
|