位置: IT常识 - 正文

CKEditor5+vue3使用以及如何添加新工具栏,自定义设置字体fontFamily(vue2editor)

编辑:rootadmin
CKEditor5+vue3使用以及如何添加新工具栏,自定义设置字体fontFamily 基本使用

推荐整理分享CKEditor5+vue3使用以及如何添加新工具栏,自定义设置字体fontFamily(vue2editor),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue ckeditor5,vue editorconfig,vue editormd,vue ckplayer,vue ckplayer,vue ckeditor5,vue editormd,vue ckeditor,内容如对您有帮助,希望把文章链接给更多的朋友!

官网地址:https://ckeditor.com/ckeditor-5/online-builder/ 官网提供了以下几种模式,一般使用经典模式居多,具体差别可访问官网自己试一下。

基本的使用方法(经典模式),先别急着操作,看完再决定使用哪种方法。

//下载ckeditor5-vuenpm install @ckeditor/ckeditor5-vue//下载经典模式npm install @ckeditor/ckeditor5-build-classic代码<template> <div id="ckeditor"> <ckeditor ref="editorRef" v-model="editorDesign" :editor="editor" :config="editorConfig" :disabled="disabled" @ready="onEditorReady" @focus="onEditorFocus" @blur="onEditorBlur" @input="onEditorInput" @destroy="onEditorDestroy" ></ckeditor> </div></template><script setup>import { ref, reactive } from 'vue'import ClassicEditor from '@ckeditor/ckeditor5-build-classic'import '@ckeditor/ckeditor5-build-classic/build/translations/zh-cn.js' //引入中文包const props = defineProps({ disabled: { type: Boolean, default: false, //是否禁用 },})const editor = ClassicEditorconst editorDesign = ref('') //默认内容const editorConfig = reactive({ language: 'zh-cn', toolbar: { items: ['heading', '|', 'bold', 'italic', 'link', 'bulletedList', 'numberedList', '|', 'outdent', 'indent', '|', 'imageUpload', 'blockQuote', 'insertTable', 'mediaEmbed', 'undo', 'redo'], }, language: 'zh', image: { toolbar: ['imageTextAlternative', 'toggleImageCaption', 'imageStyle:inline', 'imageStyle:block', 'imageStyle:side'], }, table: { contentToolbar: ['tableColumn', 'tableRow', 'mergeTableCells'], }, ckfinder: { uploadUrl: `/uploadfile`, // 上传图片接口 options: { resourceType: 'Images', }, },})const emit = defineEmits(['ready', 'focus', 'blur', 'input', 'destroy'])const editorRef = ref(null)const onEditorReady = () => { console.log('准备好了') emit('ready')}const onEditorFocus = () => { console.log('聚焦') emit('focus')}const onEditorBlur = () => { console.log('失去焦点') emit('blur')}const onEditorInput = () => { console.log('正在录入') emit('input')}const onEditorDestroy = () => { console.log('销毁') emit('destroy')}</script><style lang="scss">#ckeditor { .ck-editor__editable { min-height: 100px; max-height: 500px; }}</style>效果如图

以上基本的工具栏配置比较少,如果基本的满足你的需要,可直接使用如上的方法。

我想要添加更多的工具栏。 以下是我的踩坑经历,我想要一个字体的工具栏,直接下载了字体的依赖

npm i @ckeditor/ckeditor5-font引入import FontColor from '@ckeditor/ckeditor5-font/src/fontcolor.js';import FontFamily from '@ckeditor/ckeditor5-font/src/fontfamily.js';import FontSize from '@ckeditor/ckeditor5-font/src/fontsize.js';

然后直接报错Uncaught CKEditorError:ckeditor-duplicated-modules Read more … 文档说明 大概意思就是重复安装了一些模块,因此以上方法行不通。

更多新工具栏使用方法CKEditor5+vue3使用以及如何添加新工具栏,自定义设置字体fontFamily(vue2editor)

如果想要多工具栏的,直接按照如下方法操作。第一种基本使用方法可不操作。

先说一下操作思路,在@ckeditor/ckeditor5-build-classic代码的基础上,添加新工具栏,然后上传打包后的包到私服或者放到项目目录里。

官网去设置工具栏 官网地址:https://ckeditor.com/ckeditor-5/online-builder/ 1、这里我使用的是第一个经典模式classic

2、这一步操作,可以直接在下面的工具栏中add想要的工具栏。带☆的是收费的。在默认的基础上我又添加了几种。

3、把上面的工具栏添加到下面的可以看效果

4、选择第二个Chinese语言包

5、start生成包并下载 6、下载下来之后,在package.json里面可以看到这些依赖就是刚才我们选择的。build文件就是咱们项目中用到的包。 目前已经有的工具栏就是刚才选择的。如果需要增加新的工具栏,在当前目录执行如添加字体 npm i @ckeditor/ckeditor5-font -D,然后在src/ckeditor.js文件引入,添加到builtinPlugins,defaultConfig

最后执行npm run build打包,重新生成的build文件夹,就是最新的包,把这个包直接放在项目目录里,或者上传到私服都可以。

我这里是上传到了私服,package.json如下配置,package.json的name自己重新命名一下。private改为false。 publishConfig为上传的私服地址

使用npm install @ckeditor/ckeditor5-vue//下载私服上的包npm install @custom/ckeditor5-custom-build

实际项目中的用法和前面的基本方法一样,只需要更新一下toolbar里面的配置和引入的路径名称。 代码:

<template> <div id="ckeditor"> <ckeditor ref="editorRef" v-model="editorDesign" :editor="editor" :config="editorConfig" :disabled="disabled" @ready="onEditorReady" @focus="onEditorFocus" @blur="onEditorBlur" @input="onEditorInput" @destroy="onEditorDestroy" ></ckeditor> </div></template><script setup>import { ref, reactive } from 'vue'import ClassicEditor from '@custom/ckeditor5-build-classic'import '@customr/ckeditor5-build-classic/build/translations/zh-cn.js' //引入中文包const props = defineProps({ disabled: { type: Boolean, default: false, //是否禁用 },})const editor = ClassicEditorconst editorDesign = ref('') //默认内容const editorConfig = reactive({ language: 'zh-cn', toolbar: { items: ['heading', '|', 'bold', 'italic', 'link', 'bulletedList', 'numberedList', '|', 'outdent', 'indent', '|', 'imageUpload', 'blockQuote', 'insertTable', 'mediaEmbed', 'undo', 'redo','|','fontColor','fontFamily','fontSize','fontBackgroundColor',], }, //自定义设置字体 fontFamily: { options: [ 'default', '宋体', '新宋体', '仿宋', '楷体', '微软雅黑', '黑体', '华文仿宋', '华文楷体', '华文隶书', '华文宋体', '华文细黑', '华文新魏', '华文行楷', '华文中宋', '隶书', '苹方 常规', '幼圆', ], }, language: 'zh', image: { toolbar: ['imageTextAlternative', 'toggleImageCaption', 'imageStyle:inline', 'imageStyle:block', 'imageStyle:side'], }, table: { contentToolbar: ['tableColumn', 'tableRow', 'mergeTableCells'], }, ckfinder: { uploadUrl: `/uploadfile`, // 上传图片接口 options: { resourceType: 'Images', }, },})const emit = defineEmits(['ready', 'focus', 'blur', 'input', 'destroy'])const editorRef = ref(null)const onEditorReady = () => { console.log('准备好了') emit('ready')}const onEditorFocus = () => { console.log('聚焦') emit('focus')}const onEditorBlur = () => { console.log('失去焦点') emit('blur')}const onEditorInput = () => { console.log('正在录入') emit('input')}const onEditorDestroy = () => { console.log('销毁') emit('destroy')}</script><style lang="scss">#ckeditor { .ck-editor__editable { min-height: 100px; max-height: 500px; } //设置默认字体 .ck-editor__editable_inline p { font-family: '宋体' !important; }}</style>

CKEditor5设置默认字体,用的是css写法,这里尝试了config.font_defaultLabel = fontFamily这类写法,都没有用。最后用css实现的。

//设置默认字体 .ck-editor__editable_inline p { font-family: '宋体' !important; }
本文链接地址:https://www.jiuchutong.com/zhishi/278094.html 转载请保留说明!

上一篇:总结Linux中用于文本处理的awk、sed、grep命令用法(linux使用范围)

下一篇:琼斯海滩岛上的笛鸻和它的幼崽 (© Vicki Jauron/Getty Images)(琼斯的大海怪)

  • vivo手机怎么拼图多张照片(vivo手机怎么拼接图片)

    vivo手机怎么拼图多张照片(vivo手机怎么拼接图片)

  • 拼多多先用后付可以用支付宝吗(拼多多先用后付怎么套出来)

    拼多多先用后付可以用支付宝吗(拼多多先用后付怎么套出来)

  • 抖音怎么不用手机号注册账号(抖音怎么不用手机号登录)

    抖音怎么不用手机号注册账号(抖音怎么不用手机号登录)

  • 抖音作者评论如何置顶(抖音作品下的评论我想让所以让都可以看到,要怎么做?)

    抖音作者评论如何置顶(抖音作品下的评论我想让所以让都可以看到,要怎么做?)

  • vivox27pro和x27的区别(vivox27x27pro对比)

    vivox27pro和x27的区别(vivox27x27pro对比)

  • 电脑声音突然变嘈杂了(电脑声音突然变成单声道)

    电脑声音突然变嘈杂了(电脑声音突然变成单声道)

  • 滴滴入驻条件(怎样申请滴滴司机兼职)

    滴滴入驻条件(怎样申请滴滴司机兼职)

  • 手机屏幕静电吸灰(手机屏幕静电吸灰是怎么回事)

    手机屏幕静电吸灰(手机屏幕静电吸灰是怎么回事)

  • 手机红外遥控是什么(手机红外遥控是什么功能)

    手机红外遥控是什么(手机红外遥控是什么功能)

  • iphone有锁是什么意思(苹果有锁手机是什么意思)

    iphone有锁是什么意思(苹果有锁手机是什么意思)

  • 苹果xr充电显示不支持此配件(苹果xr充电显示还剩0)

    苹果xr充电显示不支持此配件(苹果xr充电显示还剩0)

  • 华为nova5i什么时候上市的(华为nova5i什么时候生产的)

    华为nova5i什么时候上市的(华为nova5i什么时候生产的)

  • word里下划线怎么弄(word 下划线)

    word里下划线怎么弄(word 下划线)

  • 抖音视频左下角的三角形是什么意思(抖音视频左下角的眼睛是什么意思)

    抖音视频左下角的三角形是什么意思(抖音视频左下角的眼睛是什么意思)

  • 微信里找不到群了,要怎么查找(微信里找不到群管理员设置)

    微信里找不到群了,要怎么查找(微信里找不到群管理员设置)

  • qq上怎样设置免费字体(qq上怎样设置免密支付)

    qq上怎样设置免费字体(qq上怎样设置免密支付)

  • 华为nova6se有没有指纹(华为nova6se有没有OTG)

    华为nova6se有没有指纹(华为nova6se有没有OTG)

  • 微信支出与余额对不上(微信支出与余额的区别)

    微信支出与余额对不上(微信支出与余额的区别)

  • 机械硬盘坏了数据能恢复吗(机械硬盘坏了数据能找回来吗)

    机械硬盘坏了数据能恢复吗(机械硬盘坏了数据能找回来吗)

  • 赛扬g4930处理器相当于i几(赛扬G4930处理器怎么样)

    赛扬g4930处理器相当于i几(赛扬G4930处理器怎么样)

  • 记事本写字板word区别(记事本写字板画图)

    记事本写字板word区别(记事本写字板画图)

  • 手机热点打不开怎么回事(魅族手机热点打不开)

    手机热点打不开怎么回事(魅族手机热点打不开)

  • 如何对电子商务网页进行布局设计(如何对电子商务平台进行监督)

    如何对电子商务网页进行布局设计(如何对电子商务平台进行监督)

  • 电话通讯录怎么恢复(电话通讯录怎么删除)

    电话通讯录怎么恢复(电话通讯录怎么删除)

  • GHOST还原提示保存错误信息无法还原该怎么办?(ghost还原问题1823)

    GHOST还原提示保存错误信息无法还原该怎么办?(ghost还原问题1823)

  • 银行电子回单有没有法律效应
  • 不动产租赁服务属于现代服务吗
  • 个体户超过定额怎么纳税申报
  • 银行端查询缴税凭证怎么盖章
  • 工资3700扣多少社保钱
  • 为什么社保账户有钱但是卡里没钱
  • 公司购买厂房需要交房产税吗
  • 损失补偿原则的限制条件有
  • 购进农产品取得专用发票
  • 合并报表编织原则
  • 酒店收入简易征收会计核算是怎样的?
  • 期末未缴税额为什么会有数据
  • 税金及附加是根据什么填列的
  • 员工私人车通行费能抵进项税吗
  • 获客成本怎么计价
  • 快递费税率为什么是9
  • 递延和摊销
  • 收到未到期的银行承兑汇票会计分录
  • 缴纳投标保证金
  • 利润的三个计算口径
  • 2019年城建税减免政策
  • windows10专业
  • netframework4.8安装未成功
  • linux系统怎么安装网卡驱动
  • 速动比率计算公式多少合适
  • 银行承兑汇票付款提示期限
  • 除了个税还有什么税
  • php爬虫源码
  • php根据日期判断星座
  • 公司其他费用包括哪些费用
  • 购买性支出和转移性支出的本质区别
  • 用友预收货款账务处理
  • 跨年度坏账准备转回账务处理
  • vue ng
  • php随机数组
  • 金银首饰以旧换新消费税怎么算
  • php curl file_get_contents
  • vue3加ts
  • 生成php文件
  • 有关的拼音
  • 房地产停车场属于公共配套设施吗
  • 货运代理约柜费怎么算
  • 非流动资产基金 新会计制度 对应
  • php设计思路
  • vue注册用户名和密码
  • 用于职工福利的固定资产折旧
  • 企业所得税核定管理办法
  • 一般情况下指什么
  • 公司收到银行发放贷款会计分录
  • 坏账准备怎么结转到本年利润
  • 实收资本实务处理办法
  • 取报销凭证的步骤
  • 融资方式股权融资
  • 实收资本后面带人名吗
  • 支付水电费会计等式
  • 小规模纳税人每个季度超过了30万怎么办
  • 会计利润是利润加暂时性差异吗为什么
  • 商业资本金
  • sql server使用的是什么逻辑模型
  • ubuntu for windows
  • xp系统explorer.exe错误
  • win8.1怎么打开设置
  • linux系统中的链接文件主要分为两种
  • window 80端口被占用
  • win7文件无法删除需要权限
  • linux磁盘分区表
  • linux如何快速入门
  • 常用的加锁方式
  • perl中qw
  • spiral框架
  • android app 框架
  • Node.js中的construct构造函数
  • 创建javascript对象
  • 怎样使用jquery
  • android设计模式的应用场景
  • shell脚本检测文件是否存在
  • python中导入语句
  • 个人经营所得申报时间
  • 去地税开个人发票
  • 进项税小于销项税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设