Contribute to this guide

指南从 CKEditor 4 迁移

本节文档解释了如何迁移到 CKEditor 5。

CKEditor 4 已于 2023 年 6 月 达到使用寿命 (EOL),不再提供未来的更新、错误修复和安全补丁。了解如何迁移到 CKEditor 5 此处

如果您尚未准备好迁移,我们提供 扩展支持模型包,可防范安全漏洞和第三方 API 更改。

请联系我们的销售团队以获取 更多详细信息

与前身相比,您应该将 CKEditor 5 视为 一个全新的编辑器。我们重新设计了它的每一个方面 - 从安装到集成,从功能到数据模型,最后到它的 API。

没有自动迁移解决方案。本节总结了在您继续迁移到 CKEditor 5 之前需要考虑的最重要方面。

# CKEditor 4 和 CKEditor 5 之间的区别

最能体现 CKEditor 5 与其前身区别的是其核心架构。CKEditor 5 是一个高度灵活且可扩展的编辑框架,具有强大的 API。您可以使用它创建任何所见即所得编辑器实现,从轻量级聊天到复杂的类似 Google 文档的解决方案。CKEditor 5 还支持协作,并提供实时协作、评论或更改跟踪等功能。

以下是两个编辑器版本之间的主要区别

  CKEditor 4 CKEditor 5
编程语言 JavaScript TypeScript
数据模型 HTML/DOM 自定义数据模型和虚拟 DOM 实现
架构 基于插件 基于插件,MVC
编辑器类型 经典,内联 经典,内联,解耦(文档),气球,气球块,多根
支持协作
文件管理和图像上传 CKFinder,Easy Image CKBox,CKFinder,Easy Image
UI 工具栏、对话框和通过右键单击上下文菜单操作的功能 工具栏、下拉菜单、气球和通过单击功能工具栏操作的功能
UI 自定义 皮肤,UI 颜色更改 主题,使用 CSS 变量进行自定义
许可证 GPL,MPL,LGPL,商业许可证 GPL 2+ 或商业许可证

# CKEditor 4 和 CKEditor 5 的功能比较

数字内容编辑范式在 CKEditor 4 的时代和现在已经发生了很大变化。我们从头开始设计和构建了 CKEditor 5,考虑了现代 Web 应用程序的可能性、当前 Web 标准以及当今用户的需求。

这种新方法影响了 可用功能集、功能的实现方式以及为其提供的配置选项。为了更轻松地比较两个编辑器版本,我们创建了以下兼容性表

您可以使用它们来检查 CKEditor 5 中 CKEditor 4 中某些功能或配置选项的等效项。如果没有直接等效项,这些表格将为您指明 CKEditor 5 中推荐的解决方案。我们强烈建议您将迁移到 CKEditor 5 视为一个现代化应用程序并重新思考您的编辑解决方案的机会。

# 迁移之前

CKEditor 4 和 CKEditor 5 是两种不同的产品。以下是迁移之前需要考虑的最重要方面。

# 迁移现有数据

CKEditor 4 和 CKEditor 5 之间的引擎和架构差异会影响内容在 HTML 中的处理和表示方式。CKEditor 5 会调整和转换数据以使其与支持的功能保持一致,因此在迁移过程中可能会发生数据表示更改。与 CKEditor 5 中启用的功能不兼容的内容可能会丢失,因此请确保您完整阅读本迁移指南。

对现有数据执行广泛的分析、数据验证和测试。如有必要,您需要开发转换程序以避免数据丢失。您可以使用 通用 HTML 支持 功能引入传统内容中存在的但 CKEditor 5 功能尚未完全涵盖的 HTML 标记。

插件和 HTML 输出》文章列出了所有官方 CKEditor 5 插件及其产生的 HTML 输出。您可以使用它来检查传统数据与 CKEditor 5 中支持的数据的兼容性。

将 CKEditor 5 采用到现有系统中的一个简单而有效的策略可能是使用 CKEditor 5 创建新内容,使用旧编辑器编辑传统内容。

# 安装和集成

CKEditor 5 的第一个变化是其安装过程。随着模块化模式、UMD、npm 等的引入,它变得更加现代。请参阅 入门 部分以探索所有可用的安装和集成选项。

用于将 CKEditor 与您的页面集成的 API 也发生了变化。查看 编辑器生命周期获取和设置数据 文章以了解有关此主题的介绍。

# 自定义插件

您为 CKEditor 4 开发的任何自定义插件都与 CKEditor 5 不兼容。虽然它们的理念可能保持不变,但它们的实现肯定会有所不同,需要从头开始重写。

第三方插件也可能适用。它们可能尚未移植到 CKEditor 5。

查看 创建插件 部分以获取有关插件开发的更多信息。

# 自定义主题(皮肤)

在 CKEditor 5 中,早期的“皮肤”概念经过了重新审视,现在称为“主题”。

如果您有 CKEditor 4 的自定义皮肤,则需要为 CKEditor 5 重新创建它们。幸运的是,CKEditor 5 中的自定义主题化比以前更强大也更简单。

新增功能:您可以将 CKEditor 5 作为 与外部 UI 集成的无头编辑器,例如,在 React 中创建。许多项目使用 CKEditor 5 的强大编辑引擎与自定义 UI 相结合,以实现与其应用程序的无缝集成。

有关更多信息,请查看如何在 CKEditor 5 框架文档中 自定义主题

# 图像上传

CKEditor 5 支持几种不同的图像上传策略。查看 全面的“图像上传”指南,以找到最适合您项目的选项。

# 许可证

CKEditor 4 在 GPL、LGPL 和 MPL 开源许可证下获得许可。

CKEditor 5 仅在 GPL2+ 开源许可证下获得许可。如果您正在 OSI 批准的与 GPL 不兼容的许可证下运行开源项目,我们很乐意 提供免费许可证支持。如果您的项目是商业项目,您需要 获取商业许可证

您可以按照以下步骤从 CKEditor 4 迁移到 CKEditor 5

  1. 备份所有数据。
  2. 了解 CKEditor 5。查看 演示,了解其 架构,并查看 可用功能集成方法
  3. 使用 构建器 创建一个包含您所需所有插件的自定义预设。
  4. 测试将 CKEditor 4 中创建的现有内容加载到 CKEditor 5 中。调整编辑器配置和插件集。如有必要,通过 通用 HTML 支持 功能启用缺失的元素、类或属性。
  5. 当您确定不会丢失任何数据时,您可以通过更改集成方法、创建自定义插件、调整主题和启用新功能来进一步自定义 CKEditor 5 预设。

CKEditor 5 是一个出色的现代编辑框架,因此迁移是一个提升内容编辑体验的绝佳机会。具有实时协作编辑、评论和更改跟踪的 协作修订历史记录自动格式化从 Word 导入、导出为 PDFWord字数和字符数 以及 CKBox 文件管理器只是 CKEditor 4 中没有提供的新功能的几个示例。试试看!

# 支持

如果您缺少任何特定功能或设置,请随时 报告问题。首先搜索 存储库中的问题部分。您正在寻找的功能可能已经报告过 - 您可以通过 👍 为其点赞来支持它。尽可能准确地解释具体的用例、使用编辑器的环境以及预期行为。

从 CKEditor 4 迁移的故障排除》文章解答了有关迁移的一些常见问题。

如果您想了解更多关于许可证或 扩展支持模型 的信息,请联系 支持团队