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

React中使用Jodit编辑器将带样式HTML转为Markdown的问题咨询

HTML转Markdown保留内联样式的实现方案

首先明确:原生Markdown语法本身不支持字体、字号这类自定义样式属性,要保留Jodit输出HTML中的样式,可通过以下方案实现:

  • 核心逻辑:Markdown本身完全兼容内嵌原生HTML标签,所以不需要强行把所有内容都转为纯Markdown语法,直接保留带样式的HTML标签即可同时满足Markdown格式要求和样式保留需求。
  • 基于Turndown自定义转换规则实现
    Turndown支持自定义规则处理特定标签,你可以针对带style属性的标签编写专属转换逻辑,示例代码如下:
    import TurndownService from 'turndown';
    
    const turndown = new TurndownService();
    // 新增规则:保留带style属性的span标签及样式
    turndown.addRule('preserveSpanWithStyle', {
      filter: node => node.nodeName === 'SPAN' && node.hasAttribute('style'),
      replacement: (content, node) => {
        const styleVal = node.getAttribute('style');
        return `<span style="${styleVal}">${content}</span>`;
      }
    });
    
    // 测试转换
    const inputHtml = `<p><span style="font-family: Impact, Charcoal, sans-serif; font-size: 16px;">ME typing</span></p>`;
    const outputMarkdown = turndown.turndown(inputHtml);
    // 输出结果:<span style="font-family: Impact, Charcoal, sans-serif; font-size: 16px;">ME typing</span>
    
    如果你还需要保留其他标签的样式,参照上述逻辑新增对应规则即可,所有需要保留的style属性都可以通过这种方式留存。
  • 渲染适配说明
    后续需要将转换后的Markdown渲染为页面内容时,直接使用常规Markdown渲染器即可,所有内嵌的HTML标签会被正常解析,样式不会丢失。如果你的业务场景要求完全使用纯Markdown语法、不能内嵌HTML,目前没有通用实现方案,需要你基于业务需求自定义专属的Markdown扩展语法和对应的映射规则。

内容的提问来源于stack exchange,提问作者PremKumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 15:09:03