0

0

如何在 CDN 加载的 CKEditor 5 中集成源码编辑插件

花韻仙語

花韻仙語

发布时间:2026-02-14 17:53:13

|

100人浏览过

|

来源于php中文网

原创

如何在 CDN 加载的 CKEditor 5 中集成源码编辑插件

本文详解如何通过 CDN(如 unpkg 或 jsDelivr)为 CKEditor 5 Classic Editor 动态添加官方 source-editing 插件,无需构建工具,支持即用即配。

本文详解如何通过 cdn(如 unpkg 或 jsdelivr)为 ckeditor 5 classic editor 动态添加官方 `source-editing` 插件,无需构建工具,支持即用即配。

CKEditor 5 的源码编辑(Source Editing)功能默认不包含在经典编辑器(ClassicEditor)的标准 CDN 构建中,它是一个独立的可选插件,需显式加载并注册。由于 CKEditor 5 的模块化设计与严格的依赖管理,直接通过 @ckeditor/ckeditor5-source-editing 的源码路径(如 /src/index.min.js)引入会失败——因为该包未提供 UMD 或全局变量导出,且其内部依赖未被解析。正确方式是使用 CKEditor 官方推荐的 DLL(Dynamic Link Library)构建方案,该方案将插件编译为自包含、全局挂载的 JavaScript 模块,可通过 <script> 标签安全加载。</script>

✅ 正确加载方式(基于 DLL 构建)

CKEditor 团队为常用插件提供了预构建的 DLL 版本,托管在 npm 仓库中,可通过 unpkg 或 jsDelivr 直接引用。对于 source-editing 插件,应使用以下 URL:

<!-- 1. 加载 CKEditor 5 基础 DLL(必需) -->
<script src="https://unpkg.com/@ckeditor/ckeditor5@44.0.0/build/ckeditor5-dll.js"></script>

<!-- 2. 加载 Source Editing 插件 DLL(必需) -->
<script src="https://unpkg.com/@ckeditor/ckeditor5-source-editing@44.0.0/build/source-editing.js"></script>

✅ 注意:版本号(如 @44.0.0)必须与基础 DLL 版本严格一致,否则会导致插件注册失败或运行时错误。建议始终使用具体语义化版本号,避免 @latest 引发兼容性问题。

加载后,插件会自动挂载到全局 CKEditor5 对象下,路径为 CKEditor5.sourceEditing.SourceEditing。你可在配置中直接引用:

<div id="editor">Hello <strong>World</strong>!</div>

<script>
  ClassicEditor
    .create(document.querySelector('#editor'), {
      plugins: [
        // 必需的基础插件(按需补充)
        CKEditor5.essentials.Essentials,
        CKEditor5.uploadadapter.UploadAdapter,
        CKEditor5.autoformat.Autoformat,
        CKEditor5.blockquote.BlockQuote,
        CKEditor5.bold.Bold,
        CKEditor5.easymath.EasyMath,
        CKEditor5.heading.Heading,
        CKEditor5.image.Image,
        CKEditor5.image.ImageCaption,
        CKEditor5.image.ImageStyle,
        CKEditor5.image.ImageToolbar,
        CKEditor5.image.ImageUpload,
        CKEditor5.indentation.Indentation,
        CKEditor5.link.Link,
        CKEditor5.list.List,
        CKEditor5.mediaembed.MediaEmbed,
        CKEditor5.paragraph.Paragraph,
        CKEditor5.pasteFromOffice.PasteFromOffice,
        CKEditor5.table.Table,
        CKEditor5.table.TableToolbar,
        // ? 关键:注入 SourceEditing 插件
        CKEditor5.sourceEditing.SourceEditing
      ],
      toolbar: [
        'heading',
        '|',
        'bold',
        'italic',
        'link',
        'bulletedList',
        'numberedList',
        '|',
        'outdent',
        'indent',
        '|',
        'uploadImage',
        'blockQuote',
        'mediaEmbed',
        'undo',
        'redo',
        '|',
        // ? 关键:添加源码编辑按钮
        'sourceEditing'
      ]
    })
    .then(editor => {
      console.log('Source editing enabled:', editor.plugins.has('SourceEditing'));
    })
    .catch(error => {
      console.error('Editor initialization failed:', error);
    });
</script>

⚠️ 常见错误与注意事项

  • ❌ 错误示例

    Zeemo AI
    Zeemo AI

    一款专业的视频字幕制作和视频处理工具

    下载
    // ❌ 不要这样引入(无 UMD 支持,会报 ReferenceError)
    <script src="https://cdn.jsdelivr.net/npm/@ckeditor/ckeditor5-source-editing@44.0.0/src/index.min.js"></script>

    此路径仅适用于 Webpack/Vite 等打包环境,CDN 下无法解析 ES 模块依赖。

  • ✅ 必须启用 sourceEditing 工具栏项:仅注册插件不显示按钮,务必在 toolbar 数组中加入 'sourceEditing' 字符串。

  • ? 可选样式增强:源码编辑器自带基础样式,但若需更佳视觉体验,可额外引入主题 CSS(非必需):

    <link rel="stylesheet" href="https://unpkg.com/@ckeditor/ckeditor5-source-editing@44.0.0/theme/sourceediting.css">
  • ? 调试技巧:初始化后检查插件是否注册成功:

    console.log(editor.plugins.names()); // 应包含 "SourceEditing"

✅ 总结

在 CDN 场景下启用 CKEditor 5 源码编辑功能,核心在于选用 DLL 构建而非源码包,并确保版本对齐与全局路径引用准确。该方案零构建、轻量可靠,适合快速原型、文档嵌入或 CMS 集成等场景。完整可运行示例见:JSFiddle Demo

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
全局变量怎么定义
全局变量怎么定义

本专题整合了全局变量相关内容,阅读专题下面的文章了解更多详细内容。

85

2025.09.18

python 全局变量
python 全局变量

本专题整合了python中全局变量定义相关教程,阅读专题下面的文章了解更多详细内容。

101

2025.09.18

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

531

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

214

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1552

2023.10.24

字符串介绍
字符串介绍

字符串是一种数据类型,它可以是任何文本,包括字母、数字、符号等。字符串可以由不同的字符组成,例如空格、标点符号、数字等。在编程中,字符串通常用引号括起来,如单引号、双引号或反引号。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

640

2023.11.24

java读取文件转成字符串的方法
java读取文件转成字符串的方法

Java8引入了新的文件I/O API,使用java.nio.file.Files类读取文件内容更加方便。对于较旧版本的Java,可以使用java.io.FileReader和java.io.BufferedReader来读取文件。在这些方法中,你需要将文件路径替换为你的实际文件路径,并且可能需要处理可能的IOException异常。想了解更多java的相关内容,可以阅读本专题下面的文章。

885

2024.03.22

php中定义字符串的方式
php中定义字符串的方式

php中定义字符串的方式:单引号;双引号;heredoc语法等等。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

836

2024.04.29

pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

23

2026.02.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
燕十八nginx精品视频教程
燕十八nginx精品视频教程

共23课时 | 7.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号