直接修改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: D → emStrongRDelimUnd: f |
禁用星号 * 斜体 / 加粗 |
emStrongRDelimAst: O → emStrongRDelimAst: f |
| 两者都禁用 | 两个都改成 f |
f 就是源码里已有的空匹配对象 {exec: () => null},右分隔符永远找不到,emStrong() 循环直接不执行,返回 undefined,marked 把 * / _ 当普通文本原样输出。

Comments