SuperAPI AI 工具集

syncfusion-angular-markdown-converter

编程与开发

查看项目

更新于 10-15 15:18

技能介绍

用途

Syncfusion Angular Markdown Converter 是一个轻量工具,用于将 Markdown 格式的文本转换为干净、语义化的 HTML。它通常与 Syncfusion 富文本编辑器(Rich Text Editor,Markdown 模式)配合使用,为渲染内容提供实时预览。

以下情形适合使用本工具:

  • 在 Angular 应用中将 Markdown 文本转换为 HTML
  • 在用户输入时展示 Markdown 内容的实时预览
  • 配置转换行为(GFM 支持、换行、异步模式、错误抑制)
  • 构建 Markdown 编辑器与 HTML 预览的左右并排布局
  • 将 MarkdownConverter.toHtml() 与 Syncfusion 富文本编辑器集成

主要能力

  • Markdown 转 HTML:通过静态方法 MarkdownConverter.toHtml(content, options?) 将 Markdown 字符串转换为 HTML,无需编辑器 UI 即可独立使用。示例:
import { MarkdownConverter } from '@syncfusion/ej2-markdown-converter';

const markdown = '# Hello World\nThis is **Markdown** text.';
const html = MarkdownConverter.toHtml(markdown);
console.log(html);
// Output: <h1>Hello World</h1><p>This is <strong>Markdown</strong> text.</p>
  • 支持的元素:标题、列表、表格、链接、图片、行内样式。

  • 可配置选项(MarkdownConverterOptions):

    • async(布尔,默认 false):对大量内容进行异步转换
    • gfm(布尔,默认 true):GitHub Flavored Markdown 支持
    • lineBreak(布尔,默认 false):将单个换行转换为 <br>
    • silence(布尔,默认 false):在 Markdown 无效时抑制错误

    示例:

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

使用方式

安装(三步):

  1. 安装包:
npm install @syncfusion/ej2-markdown-converter
npm install @syncfusion/ej2-angular-richtexteditor
  1. 在 src/styles.css 中导入 CSS:
@import '../node_modules/@syncfusion/ej2-base/styles/material3.css';
@import '../node_modules/@syncfusion/ej2-richtexteditor/styles/material3.css';
  1. 转换 Markdown 为 HTML:
import { MarkdownConverter } from '@syncfusion/ej2-markdown-converter';

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

常见模式:

  • 模式 1:独立转换(无编辑器)
import { MarkdownConverter } from '@syncfusion/ej2-markdown-converter';

const html = MarkdownConverter.toHtml(markdownString);
document.getElementById('preview')!.innerHTML = html as string;
  • 模式 2:按键实时预览(在富文本编辑器 textarea 内每次按键时转换)
public markDownConversion(): void {
  const textarea = this.editorObj.contentModule.getEditPanel() as HTMLTextAreaElement;
  const previewEl = document.getElementById('html-view') as HTMLElement;
  previewEl.innerHTML = MarkdownConverter.toHtml(textarea.value) as string;
}
  • 模式 3:带选项的转换(禁用 GFM,启用换行转换)
const html = MarkdownConverter.toHtml(markdownString, {
  gfm: false,
  lineBreak: true
});
  • 模式 4:使用 Splitter 的左右并排预览:结合 Syncfusion Splitter 组件与 Markdown 模式的富文本编辑器,在每个变更事件中通过 updateValue() 更新预览窗格。完整实现参见 references/richtexteditor-integration.md。

富文本编辑器集成要点:

  • 基于 Splitter 的左右并排编辑器与预览布局
  • 在 Markdown 的 editorMode 中配置 ejs-richtexteditor
  • 使用 onChange 与 updateValue() 实现实时预览
  • 为 Markdown 编辑配置工具栏
  • 使用 MarkdownFormatter 自定义 Markdown 语法
  • 自定义预览切换按钮(fullPreview 模式)
  • 使用 Browser.isDevice 处理移动设备/设备方向

入门参考:

  • Angular CLI 设置与项目创建
  • 安装 @syncfusion/ej2-markdown-converter 与 @syncfusion/ej2-angular-richtexteditor
  • material3 主题的 CSS 导入
  • 必需模块注入(MarkdownEditor、Image、Link、Toolbar、Table)
  • 运行应用

关键 API

API 类型 默认值 用途
MarkdownConverter.toHtml(content, options?) static method — 将 Markdown 字符串转换为 HTML
options.async boolean false 对大量内容进行异步转换
options.gfm boolean true GitHub Flavored Markdown 支持
options.lineBreak boolean false 单个换行 → <br>
options.silence boolean false 在 Markdown 无效时抑制错误

适用场景

  • 在 Angular 应用中实现 Markdown 到 HTML 的转换
  • 为 Markdown 输入提供实时 HTML 预览
  • 构建左右并排的 Markdown 编辑与预览界面
  • 与 Syncfusion 富文本编辑器的 Markdown 模式集成

限制

资料未提供关于浏览器兼容性、性能上限、价格或授权方式的具体说明,暂未提供。