欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Vue3使用CKEditor5简介--入门

程序员文章站 2022-05-17 21:25:42
...

Vue3使用CKEditor5简介–入门

CKEditor是一款功能强大的富文本编辑器。官网是这么描述的:具有协作编辑功能的智能所见即所得编辑器组件。目前已经更新到第五版了,也就是我们今天的主角。

简介

对于CKEditor5,我们还是看官网怎么说的吧(中文由网页翻译)

强大的框架。模块化架构。易于定制。具有模块化体系结构的现代JavaScript RTF编辑器。其简洁的用户界面和功能为创建语义内容提供了理想的所见即所得UX
1.用MVC架构,自定义数据模型,虚拟DOM编写在ES6中。
2.响应式图像和媒体嵌入(视频,推文)。
3.自定义输出格式:HTML和Markdown支持。
4.通过自动格式化和协作来提高生产力。
5.通过设计可扩展和可定制。

明人不说暗话,在项目中尝试这个编辑器的过程中,还是遇到很多问题的。好在CKEditor5的文档比较全(英文看的脑壳疼,好在网页能翻译,嘎嘎),而且网上也有很多前辈的共享秘籍,一番探索后,勉强入门了吧,这里简单记录一下,不足之处,多多指正。

CKEditor5 提供了5中“build”,这里就简单理解为官方定制好的5种类型吧,就像餐厅里的套餐一样,既能点套餐,也可以单点。后面会说到‘单点’,看官且听小子慢慢道来。。

1.Classic editor 
2.Inline editor
3.Balloon editor
4.Balloon block editor
5.Document editor

使用

在官网的demo中,依次试用体验之后,我选择了Documen editor这种类型的。每一种类型都有对应的包,先下载依赖包,后面按照npm上Quick start里说的照做就行了。

npm install --save @ckeditor/ckeditor5-build-decoupled-document

结构也很简单,两个div,一个作为工具栏,一个作为编辑器主体。

<div id="toolbar-container"></div>
<div id="editor">
  <p>This is the editor content.</p>
</div>
import DecoupledEditor from '@ckeditor/ckeditor5-build-decoupled-document';
 
DecoupledEditor
  .create( document.querySelector( '#editor' ) )
  .then( editor => {
    document.querySelector( '#toolbar-container' ).appendChild( editor.ui.view.toolbar.element );

    window.editor = editor;
  })
  .catch( error => {
    console.error( 'There was a problem initializing the editor.', error );
  });

按照文档上说的,到这里就算完成了一个简单的编辑器。但是,当我打开页面的时候,并没有看到编辑器,控制台报错:There was a problem initializing the editor. o: Cannot convert undefined or null to object,检查了一下,发现是在初始化的时候找不到dom,修改之后,编辑器出来了,还可以输入,看起来好像是没问题了,我尝试着插入一张图片,选好本地图片后,编辑器没反应,没有乱码,也没有报错。控制台却报了一个警告

filerepository-no-upload-adapter Read more: https://ckeditor.com/docs/ckeditor5/latest/framework/guides/support/error-codes.html#error-filerepository-no-upload-adapter

告诉我没有配置上传适配器。好吧,再去查图片上传文档。文档上有好几种图片上传的模式,我选择了Base64适配器的模式,这样不用跟后台交互,减少了后台的工作量以及联调的麻烦,

跟着Base64适配器文档过一遍,页面干脆就直接报错:CKEditorError: ckeditor-duplicated-modules,比干脆面还干脆!!,接着查文档,原来我用的是他们定制的套餐,里面是没有这个插件的,如果想要添加的话,不能这样直接添加,口说无凭,文档为证。安装插件方法由于条件不予许,就没有尝试,以后可以研究一下,我是用了另一种方法—‘单点’

在线定制编辑器

上面说过CKEditor5不但能点套餐,还可以单点,支持定制化,到在线构建页面,按照步骤选择自己想要的插件,最后生成导出一个zip文件。解压后找到build文件,将里面的文件包括文件夹全部拷贝一份,到项目中node_modules 下找到 @ckeditor/ckeditor5-build-decoupled-document/build ,全部替换成我们刚才拷贝的文件。重新跑项目,再添加文件,就可以了。样式估计会有点乱,只能多花点时间慢慢调咯。

列位看官,CKEditor5还有很多功能和用法,这里简单介绍到这里。希望对你有所帮助,感谢阅读,再会!

上一篇: python定时器

下一篇: Python定时器