diff --git a/packages/core/src/lib/markdown-it/index.ts b/packages/core/src/lib/markdown-it/index.ts index c3d6731a91..10ce90cda8 100644 --- a/packages/core/src/lib/markdown-it/index.ts +++ b/packages/core/src/lib/markdown-it/index.ts @@ -33,7 +33,10 @@ markdownIt.use(require('markdown-it-mark')) .use(require('markdown-it-table-of-contents')) .use(require('markdown-it-task-lists'), { enabled: true }) .use(require('markdown-it-linkify-images'), { imgClass: 'img-fluid' }) - .use(require('markdown-it-texmath'), { engine: katex, delimiters: ['dollars', 'brackets'] }) + .use( + require('./patches/markdown-it-texmath-fixed'), + { engine: katex, delimiters: ['dollars', 'brackets', 'beg_end'] }, + ) .use(require('markdown-it-attrs')) .use(require('./plugins/markdown-it-radio-button')) .use(require('./plugins/markdown-it-block-embed')) diff --git a/packages/core/src/lib/markdown-it/patches/markdown-it-texmath-fixed.js b/packages/core/src/lib/markdown-it/patches/markdown-it-texmath-fixed.js new file mode 100644 index 0000000000..d99758c9d7 --- /dev/null +++ b/packages/core/src/lib/markdown-it/patches/markdown-it-texmath-fixed.js @@ -0,0 +1,18 @@ +/* + * Patch for markdown-it-texmath to support amsmath environments with trailing asterisk, + * e.g. \begin{equation*}\end{equation*}, \begin{align*}\end{align*} + */ + +'use strict'; + +const texmath = require('markdown-it-texmath'); + +// Backup the original rules object +const originalRules = { ...texmath.rules }; + +// Modify the beg_end rule's regex to support more environment names with trailing asterisk +originalRules.beg_end.block[0].rex = /(\\(?:begin)\{([a-z]+\*?)\}[\s\S]+?\\(?:end)\{\2\})/gmy; + +texmath.rules = originalRules; + +module.exports = texmath; \ No newline at end of file