SuperAPI AI 工具集

syncfusion-react-markdown-converter

前端与建站

查看项目

更新于 10-14 20:21

技能介绍

用途

Syncfusion Markdown Converter 是一个轻量级工具,用于把 Markdown 格式的文本转换成干净、语义化的 HTML。它通常与 Syncfusion React 富文本编辑器(RichTextEditorComponent)的 Markdown 编辑模式一起使用,为渲染后的内容提供实时预览。

适用场景

  • 在 React 应用中将 Markdown 文本转换为 HTML
  • 在用户输入时实时预览 Markdown 内容
  • 配置转换行为(GFM 支持、换行、异步模式、错误抑制)
  • 在 Markdown 模式下使用 RichTextEditorComponent 构建带 HTML 预览的 Markdown 编辑器
  • 将 MarkdownConverter.toHtml() 与 Syncfusion React 富文本编辑器集成

安装与准备

安装依赖包:

npm install @syncfusion/ej2-markdown-converter npm install @syncfusion/ej2-react-richtexteditor

在 src/styles.css 中导入 CSS(material3 主题):

@import '../node_modules/@syncfusion/ej2-base/styles/material3.css'; @import '../node_modules/@syncfusion/ej2-richtexteditor/styles/material3.css';

在 React 项目中还涉及项目创建(Vite / CRA)、模块注入(MarkdownEditor、Toolbar、Image、Link、Table)以及运行应用等步骤。

主要能力

转换 Markdown 为 HTML — toHtml API

  • MarkdownConverter.toHtml() 方法签名
  • 基本用法示例(可独立使用,无需编辑器)
  • 支持的 Markdown 元素(标题、列表、表格、链接、图片、行内样式)
  • 将返回值配合 dangerouslySetInnerHTML 使用

基本示例:

import { MarkdownConverter } from '@syncfusion/ej2-markdown-converter';

const markdown = '# Hello World\nThis is Markdown text.'; const html = MarkdownConverter.toHtml(markdown); console.log(html); // 输出: <h1>Hello World</h1><p>This is <strong>Markdown</strong> text.</p>

可配置选项(MarkdownConverterOptions)

  • async — 面向大内容的异步转换(默认 false)
  • gfm — 支持 GitHub Flavored Markdown(默认 true)
  • lineBreak — 将单个换行转换为 <br>(默认 false)
  • silence — 抑制无效 Markdown 引发的错误(默认 false)

传入选项的完整示例:

const html = MarkdownConverter.toHtml(markdownString, { gfm: false, lineBreak: true });

富文本编辑器集成

  • 使用 editorMode="Markdown" 进入 Markdown 模式
  • 通过 created、change、actionComplete 事件实现实时预览
  • Markdown 编辑的工具栏配置
  • 使用 MarkdownFormatter 自定义 Markdown 语法
  • 自定义预览切换按钮(完整预览模式)
  • 带预览切换的完整可用示例

使用方式(常见模式)

模式一:独立转换(无编辑器)

import { MarkdownConverter } from '@syncfusion/ej2-markdown-converter';

const html = MarkdownConverter.toHtml(markdownString); document.getElementById('preview')!.innerHTML = html as string;

模式二:按键实时预览(在富文本编辑器文本区中每次按键时转换)

const markdownConversion = () => { if (mdsource?.classList.contains('e-active')) { const htmlPreview = rteObj.element.querySelector('#' + rteObj.getID() + 'html-view') as HTMLElement; htmlPreview.innerHTML = MarkdownConverter.toHtml( (rteObj.contentModule.getEditPanel() as HTMLTextAreaElement).value ) as string; } };

模式三:带选项转换(关闭 GFM 并启用换行转换,见上文示例)。

模式四:使用 Splitter 实现并排预览。若需要完整的编辑器加预览体验,可配合 Syncfusion Splitter 组件与 Markdown 模式的富文本编辑器使用。预览面板在每次 change 事件时通过 updateValue() 更新。完整实现可参阅 references/richtexteditor-integration.md。

关键 API

  • MarkdownConverter.toHtml(content, options?):静态方法,将 Markdown 字符串转换为 HTML
  • options.async:boolean,默认 false,面向大内容的异步转换
  • options.gfm:boolean,默认 true,GitHub Flavored Markdown 支持
  • options.lineBreak:boolean,默认 false,单换行转换为 <br>
  • options.silence:boolean,默认 false,抑制无效 Markdown 的错误

限制

资料未提供关于浏览器兼容性、性能上限、收费或价格、以及转换完整度的更多细节,暂未提供相关内容。