guangzhou

Recent posts:
Blog index
About
RSS

markdown斜线和加粗与数学公式katex渲染的冲突解决方法

September 15, 2026     katex & mermaid   12   

直接修改marked.min.js源代码

在我引用的marked v12.0.2 源码里,所有相关变量都定义在这一段:

f = {exec: () => null};          // 空正则,永远不匹配

M = k(/^(?:\*+(?:...))|^_+(?:...)/, "u")   // emStrongLDelim:左分隔符,同时匹配 * 和 _
O = k("...\\*+...", "gu")                   // emStrongRDelimAst:星号右分隔符
D = k("...(_+)...", "gu")                   // emStrongRDelimUnd:下划线右分隔符

然后在 K 对象里组装:

K = {
    ...
    emStrongLDelim: M,
    emStrongRDelimAst: O,    // ← 星号
    emStrongRDelimUnd: D,    // ← 下划线
    ...
}
目的 改法
禁用下划线 _ 斜体 / 加粗 emStrongRDelimUnd: DemStrongRDelimUnd: f
禁用星号 * 斜体 / 加粗 emStrongRDelimAst: OemStrongRDelimAst: f
两者都禁用 两个都改成 f

 

f 就是源码里已有的空匹配对象 {exec: () => null},右分隔符永远找不到,emStrong() 循环直接不执行,返回 undefined,marked 把 * / _ 当普通文本原样输出。

 

 

 

 

如果文章对您有帮助,欢迎点击下方按钮打赏作者

Comments

No comments yet.
To verify that you are human, please fill in "七"(required)