CKEditor5 自定义构建富文本编辑器!

news/2024/9/29 7:19:33

前言

CKEditor5的编辑是一个非常好的编辑器,但其英文文档比较绕眼睛,所以特地记录一下,如何使用自定义构建。

1、Online Bulider、Source Building

此为官方提供的,不适合我等现代构建方式。
自定义构建文档

2、自定义构建,在项目直接创建一个全新的0开始的编辑器。

此次,使用的工具为vite+solid,ui不一样无所谓,构建方式都一样。

开始

  1. 先安装vite插件和@types/node
    npm install -D @ckeditor/vite-plugin-ckeditor5
    npm install --save @types/node

  2. 安装基础样式
    npm install --save @ckeditor/ckeditor5-theme-lark

  3. 在vite.config里编写。

import { defineConfig } from "vite";
import solid from "vite-plugin-solid";
import { createRequire } from "node:module";
const require = createRequire(import.meta.url);
import ckeditor5 from "@ckeditor/vite-plugin-ckeditor5";export default defineConfig({plugins: [solid(),ckeditor5({ theme: require.resolve("@ckeditor/ckeditor5-theme-lark") }),],
});
  1. 最后一步安装 CKEditor5 的主体文件,和官方提供一样有多种样式,editor-classic、editor-balloon、editor-decoupled等等。
    注意区别,官方的是 @ckeditor/ckeditor5-build-classic
    可查看 api描述
    npm install --save @ckeditor/ckeditor5-editor-classic

使用

以上步骤完成后,就可以在项目中使用了。
新建一个ts文件作为CKEditor5 配置文件。

import { ClassicEditor } from "@ckeditor/ckeditor5-editor-classic";class Editor extends ClassicEditor {// Plugins to include in the build.public static override builtinPlugins = [];public static override defaultConfig = {toolbar: {items: [],},language: "zh",};
}export default Editor;

项目中引入,并在数据挂载完成后,使用。

import { onMount } from "solid-js";
import Editor from "./editor";
function App() {let myDiv: any;onMount(() => {Editor.create(myDiv);});return (<><div ref={myDiv}></div></>);
}export default App;

这时,最基本的编辑器框架已经完成,页面上也已经有了,一个输入框,但这个输入框什么用也没有。
因为CKEditor5 ,所有的功能都是以插件的形式挂载上去的,所以就要把基础。
我们需要两个插件,缺一不可。
1、paragraph,这个插件是内容p标签化。PS:当然可以选择md的模式。
2、essentials,集成最基础的功能,比如输入、粘贴、加粗、斜体、删除线、下划线、上标、下标。

import { ClassicEditor } from "@ckeditor/ckeditor5-editor-classic";
import { Paragraph } from "@ckeditor/ckeditor5-paragraph";
import { Essentials } from "@ckeditor/ckeditor5-essentials";
import {Bold,Italic,Strikethrough,Underline,Subscript,Superscript,
} from "@ckeditor/ckeditor5-basic-styles";class Editor extends ClassicEditor {// Plugins to include in the build.public static override builtinPlugins = [Essentials,Paragraph,Bold,Italic,Strikethrough,Underline,Subscript,Superscript,];public static override defaultConfig = {toolbar: {items: ["undo","redo","Bold","Italic","Strikethrough","Underline","Subscript","Superscript","","",],},language: "zh",};
}export default Editor;

至此,一个自定义的基础班就完成了,剩下的插件你想要啥就安装啥,然后在配置文件中加入即可。而且,也可以自己定制想要的插件,如SourceEditing。

import { ClassicEditor } from "@ckeditor/ckeditor5-editor-classic";
import { SourceEditing } from "@ckeditor/ckeditor5-source-editing";
import { Paragraph } from "@ckeditor/ckeditor5-paragraph";
import { Essentials } from "@ckeditor/ckeditor5-essentials";
import {Bold,Italic,Strikethrough,Underline,Subscript,Superscript,
} from "@ckeditor/ckeditor5-basic-styles";class Editor extends ClassicEditor {// Plugins to include in the build.public static override builtinPlugins = [Essentials,Paragraph,SourceEditing,Bold,Italic,Strikethrough,Underline,Subscript,Superscript,];public static override defaultConfig = {toolbar: {items: ["SourceEditing","|","undo","redo","Bold","Italic","Strikethrough","Underline","Subscript","Superscript","","",],},language: "zh",};
}export default Editor;

111
打完收工!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/45557.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

验证码识别

import ddddocrocr = ddddocr.DdddOcr()with open(img/验证码3.png, rb) as f:img_bytes = f.read()result = ocr.classification(img_bytes) print(result) 运行结果:

VIP视频解析

效果图 新建窗口import tkinter as tk# 创建一个窗口 root = tk.Tk()# 设置窗口大小 root.geometry(700x250+200+200)# 设置标题 root.title(在线观看电影软件)# 让窗口持续展现 root.mainloop() 设置背景图片# 设置读取一张图片 img = tk.PhotoImage(file=img\\封面.png)# 布局…

源代码安全漏洞扫描

构建一个应用程序,并始终确保应用程序其安全性的话,事实上构建应用程序的时候需要花大量的工作,一个步骤没有检查就可能导致整个系统或者产品都处于受黑客攻击的危险之中,谁不希望在产品发布初期就发现安全漏洞并且修复漏洞,那何乐而不为呢! 源代码安全漏洞扫描工具 可以…

你了解base么?1 解题

CTF 你了解base么?1 解题 题目:CTF 你了解base么?1 题目内容:在数据的深海里,我探寻Base的奥秘, 如星辰般闪烁,是信息的集结地。 代码编织的网,捕捉着数据的踪迹, Base,你是数据的港湾,是智慧的基石。字符串的舞蹈,在Base中跃动, 二进制、十六进制,变幻着节奏…

首期openGauss训练营结营,48个FAQ和全部PPT通通给你

首期openGauss训练营结营,48个FAQ和全部PPT通通给你,随附62人结营学员名单转载mob604756fa96d72021-06-04 14:37:20 文章标签Java文章分类Java后端开发阅读数118 玩转openGauss的 数据和云2021年3月27-28日,由openGauss社区技术委员会主席、openGauss首席架构师、华为公司数…

Vue项目打包部署(Nginx)

Vue项目打包控制台输入打包命令:npm run build  成功后会在本地项目路径下生成一份 dist 文件。进行压缩 为 .zip包就可以上传Linux了。

NVIDIA Broadcast+普通麦克风+ai

关于 NVIDIA Broadcast NVIDIA Broadcast 通过 AI 的强大功能将标准网络摄像头和麦克风升级为高级智能设备,将任何房间转变为家庭工作室。通过麦克风噪声和房间回声消除、虚拟背景、网络摄像头自动取景和视频噪声消除等 AI 功能提高直播的视频和音频质量。借助 NVIDIA RTX GPU…

计算机的基本组成及其工作原理

计算机的基本组成及其工作原理 1.1 计算机系统的组成 计算机系统是由硬件系统和软件系统两大部分组成。 计算机硬件是构成计算机系统各功能部件的集合。是由电子、机械和光电元件组成的各种计算机部件和设备的总称,是计算机完成各项工作的物质基础。计算机硬件是看得见、摸得着…