Browse Source

feat: katex persistent macro support (#5838)

Co-authored-by: cannorin <cannorin@users.noreply.github.com>
cannorin 2 years ago
parent
commit
db2ad81a1f

+ 3 - 2
client/components/editor/editor-markdown.vue

@@ -348,11 +348,12 @@ plantuml.init(md, {})
 // KATEX
 // ========================================
 
+const macros = {}
 md.inline.ruler.after('escape', 'katex_inline', katexHelper.katexInline)
 md.renderer.rules.katex_inline = (tokens, idx) => {
   try {
     return katex.renderToString(tokens[idx].content, {
-      displayMode: false
+      displayMode: false, macros
     })
   } catch (err) {
     console.warn(err)
@@ -365,7 +366,7 @@ md.block.ruler.after('blockquote', 'katex_block', katexHelper.katexBlock, {
 md.renderer.rules.katex_block = (tokens, idx) => {
   try {
     return `<p>` + katex.renderToString(tokens[idx].content, {
-      displayMode: true
+      displayMode: true, macros
     }) + `</p>`
   } catch (err) {
     console.warn(err)

+ 3 - 2
server/modules/rendering/markdown-katex/renderer.js

@@ -24,12 +24,13 @@ katex.__defineMacro('\\tripledash', '{\\vphantom{-}\\raisebox{2.56mu}{$\\mkern2m
 
 module.exports = {
   init (mdinst, conf) {
+    const macros = {}
     if (conf.useInline) {
       mdinst.inline.ruler.after('escape', 'katex_inline', katexInline)
       mdinst.renderer.rules.katex_inline = (tokens, idx) => {
         try {
           return katex.renderToString(tokens[idx].content, {
-            displayMode: false
+            displayMode: false, macros
           })
         } catch (err) {
           WIKI.logger.warn(err)
@@ -44,7 +45,7 @@ module.exports = {
       mdinst.renderer.rules.katex_block = (tokens, idx) => {
         try {
           return `<p>` + katex.renderToString(tokens[idx].content, {
-            displayMode: true
+            displayMode: true, macros
           }) + `</p>`
         } catch (err) {
           WIKI.logger.warn(err)