Contribute to this guide

指南Markdown 输出

Markdown 插件允许您将默认输出从 HTML 切换到 Markdown。这样您就可以生成轻量级的文本文档,这些文档使用开发人员中流行的简单格式语法。

# 演示

下面的编辑器配置为输出 GitHub Flavored Markdown。编辑内容并查看 Markdown 输出如何变化(您可以在编辑器下方找到它)。

请注意,下面的演示中的源代码编辑功能是 单独的插件。如果您想在您的集成中使用它,您需要单独安装它。

输出

此演示展示了一组有限的功能。访问 功能丰富的编辑器示例,查看更多实际应用。

# 其他功能信息

自动格式化 功能相结合,Markdown 插件提供了完整的 Markdown WYSIWYG 编辑体验,如 “CKEditor 5: 最佳开源 Markdown 编辑器” 博客文章中所述。访问 免费在线 Markdown 编辑器,查看此解决方案的实现。

请记住,Markdown 语法非常简单,它不涵盖所有富文本功能。因此,CKEditor 5 提供的一些功能只有在输出为 HTML 时才能按预期工作,因为它们没有 Markdown 等效项。

# 安装

⚠️ 新的导入路径

版本 42.0.0 开始,我们更改了导入路径的格式。本指南使用新的、更短的格式。如果您使用的是旧版本的 CKEditor 5,请参阅 旧版设置中的包 指南。

安装编辑器 后,将 Markdown 插件添加到编辑器配置中。它将更改默认 数据处理器GFMDataProcessor

import { ClassicEditor, Bold, Italic, Essentials, Markdown } from 'ckeditor5';
// More imports.
// ...

ClassicEditor
    .create( document.querySelector( '#snippet-markdown' ), {
        plugins: [
            Markdown,
            Essentials,
            Bold,
            Italic,
            // More plugins.
            // ...
        ],
        // More of editor's configuration.
        // ...
    } )
    .then( /* ... */ )
    .catch( /* ... */ );

# 扩展格式支持

如果您需要更广泛的 Markdown 支持来格式化元素(例如,将链接上的 title 属性表示为 [Foo Bar](https://foo.bar "My link title")),您还可以安装 通用 HTML 支持。此高级功能允许集成商提供其他标签、元素和属性,这些标签、元素和属性尚未由其他 CKEditor 5 插件支持,并扩展格式化功能。

# Markdown 数据处理器

Markdown 插件使用 数据处理器(由 GFMDataProcessor 类实现)将默认输出从 HTML 更改为 Markdown。这意味着您可以以 Markdown 格式 设置获取 编辑器中的数据。

editor.getData(); // -> 'This is [CKEditor 5](https://ckeditor.npmjs.net.cn).'

editor.setData( 'This is **bold**.' );

数据处理器输出 GFM Markdown 语法。“GFM” 代表“GitHub Flavored Markdown”——由 GitHub 使用的 Markdown 方言。Markdown 缺乏任何正式规范(尽管 CommonMark 倡议旨在弥补这一差距)并且有许多方言,通常彼此不兼容。

转换此数据处理器生成的输出时,请确保使用兼容的 Markdown 到 HTML 转换器(例如,marked 库)。

虽然 CKEditor 5 架构支持更改数据格式,但在大多数情况下,我们建议坚持使用默认格式,即 HTML(由 HtmlDataProcessor 支持)。HTML 仍然是 富文本数据的最佳标准

请记住——使用 Markdown 不会自动使您的应用程序或网站安全

# 已知问题

请记住,Markdown 数据处理器不支持所有富文本功能。 Markdown 语法 非常简单,只支持有限的格式选项。

这意味着高级格式(如列表样式、表格样式或分页符)将在生效数据中被剥离。这些不受 Markdown 支持,因此无法从 HTML 转换为 Markdown。

虽然 Markdown 插件稳定且可以使用,但仍有一些问题正在解决。如果您想看到这些问题被解决,请随时在 GitHub 上点赞 👍。

  • 粘贴 Markdown 格式的内容不会自动将粘贴的语法标记转换为正确格式的内容。GitHub 问题:#2321#2322
  • 使用 Markdown 输出功能生成的 Markdown 代码将无法正确呈现 嵌套表格。GitHub 问题:#9475

以下是输出编辑内容的其他一些方法

  • 源代码编辑 – 允许在相应配置的情况下编辑 Markdown 源代码。
  • 导出到 Word – 从您的编辑器创建的内容中生成可编辑的 .docx 文件。
  • 导出到 PDF – 从您的编辑器创建的内容中生成可移植的 PDF 文件。
  • 自动格式化 – 使用 Markdown 语法快捷方式在您键入时自动格式化您的内容!
  • 粘贴 Markdown – 将 Markdown 格式的内容直接粘贴到编辑器中。

# 贡献

此功能的源代码可在 GitHub 上获取:https://github.com/ckeditor/ckeditor5/tree/master/packages/ckeditor5-markdown-gfm