You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何禁用Micromark将HTML字符转换为HTML实体的功能?

如何禁用Micromark将HTML字符转换为HTML实体的功能?

嘿,我完全懂你的困扰——micromark出于安全考虑,默认会把所有HTML内容转义成实体字符,但如果你确实需要保留原始HTML代码,咱们调整下配置就能搞定。

具体来说,你需要启用micromark的HTML扩展,同时开启允许「危险HTML」的选项(这个选项就是用来关闭转义、保留原始HTML的核心配置)。下面是修改后的完整代码,你可以直接复用:

import { micromark } from 'micromark';
import { gfm, gfmHtml } from 'micromark-extension-gfm';
import { html, htmlHtml } from 'micromark-extension-html'; // 导入HTML扩展

const mdd = `
# Title
<div>
  This is HTML inside markdown.
  <img src="image.jpg" alt="Example image" />
</div>
`;

console.log(micromark(mdd, {
  extensions: [gfm(), html()], // 添加HTML语法识别扩展
  htmlExtensions: [gfmHtml(), htmlHtml({ allowDangerousHtml: true })] // 配置允许保留原始HTML
}));

给你拆解下关键配置的作用:

  • html() 扩展让micromark能够识别HTML语法,而不是把它当成普通文本处理
  • htmlHtml({ allowDangerousHtml: true }) 告诉HTML生成器跳过转义步骤,直接输出原始的HTML标签和属性

运行这段代码后,你就能得到期望的输出了——原始HTML标签会被完整保留,不会再转换成实体字符。

最后提醒一句:开启allowDangerousHtml后,如果处理的是用户输入的未知内容,会存在XSS攻击的风险,所以只有当你完全信任输入来源的时候,才建议使用这个配置哦。

备注:内容来源于stack exchange,提问作者nbunderson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 09:05:28