国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

CKEditor5+vue3使用以及如何添加新工具欄,自定義設(shè)置字體fontFamily

這篇具有很好參考價值的文章主要介紹了CKEditor5+vue3使用以及如何添加新工具欄,自定義設(shè)置字體fontFamily。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

基本使用

官網(wǎng)地址:https://ckeditor.com/ckeditor-5/online-builder/
官網(wǎng)提供了以下幾種模式,一般使用經(jīng)典模式居多,具體差別可訪問官網(wǎng)自己試一下。
vue3使用ckeditor5,vue3,CKEditor5,vue.js,javascript,前端

基本的使用方法(經(jīng)典模式),先別急著操作,看完再決定使用哪種方法。

//下載ckeditor5-vue
npm install @ckeditor/ckeditor5-vue
//下載經(jīng)典模式
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 = ClassicEditor
const editorDesign = ref('') //默認(rèn)內(nèi)容

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('準(zhǔn)備好了')
  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>

  • 效果如圖

vue3使用ckeditor5,vue3,CKEditor5,vue.js,javascript,前端

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

我想要添加更多的工具欄。
以下是我的踩坑經(jīng)歷,我想要一個字體的工具欄,直接下載了字體的依賴

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 …
vue3使用ckeditor5,vue3,CKEditor5,vue.js,javascript,前端
文檔說明
大概意思就是重復(fù)安裝了一些模塊,因此以上方法行不通。

更多新工具欄使用方法

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

先說一下操作思路,在@ckeditor/ckeditor5-build-classic代碼的基礎(chǔ)上,添加新工具欄,然后上傳打包后的包到私服或者放到項目目錄里。

  • 官網(wǎng)去設(shè)置工具欄
    官網(wǎng)地址:https://ckeditor.com/ckeditor-5/online-builder/
    1、這里我使用的是第一個經(jīng)典模式classic
    vue3使用ckeditor5,vue3,CKEditor5,vue.js,javascript,前端

2、這一步操作,可以直接在下面的工具欄中add想要的工具欄。帶☆的是收費的。在默認(rèn)的基礎(chǔ)上我又添加了幾種。
vue3使用ckeditor5,vue3,CKEditor5,vue.js,javascript,前端

3、把上面的工具欄添加到下面的可以看效果
vue3使用ckeditor5,vue3,CKEditor5,vue.js,javascript,前端

4、選擇第二個Chinese語言包
vue3使用ckeditor5,vue3,CKEditor5,vue.js,javascript,前端

5、start生成包并下載
vue3使用ckeditor5,vue3,CKEditor5,vue.js,javascript,前端
6、下載下來之后,在package.json里面可以看到這些依賴就是剛才我們選擇的。build文件就是咱們項目中用到的包。
vue3使用ckeditor5,vue3,CKEditor5,vue.js,javascript,前端
目前已經(jīng)有的工具欄就是剛才選擇的。如果需要增加新的工具欄,在當(dāng)前目錄執(zhí)行如添加字體 npm i @ckeditor/ckeditor5-font -D,然后在src/ckeditor.js文件引入,添加到builtinPlugins,defaultConfig
vue3使用ckeditor5,vue3,CKEditor5,vue.js,javascript,前端vue3使用ckeditor5,vue3,CKEditor5,vue.js,javascript,前端

最后執(zhí)行npm run build打包,重新生成的build文件夾,就是最新的包,把這個包直接放在項目目錄里,或者上傳到私服都可以。

我這里是上傳到了私服,package.json如下配置,package.json的name自己重新命名一下。private改為false。
vue3使用ckeditor5,vue3,CKEditor5,vue.js,javascript,前端
publishConfig為上傳的私服地址
vue3使用ckeditor5,vue3,CKEditor5,vue.js,javascript,前端

  • 使用
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 = ClassicEditor
const editorDesign = ref('') //默認(rèn)內(nèi)容

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',],
  },
  //自定義設(shè)置字體
   fontFamily: {
    options: [
      'default',
      '宋體',
      '新宋體',
      '仿宋',
      '楷體',
      '微軟雅黑',
      '黑體',
      '華文仿宋',
      '華文楷體',
      '華文隸書',
      '華文宋體',
      '華文細(xì)黑',
      '華文新魏',
      '華文行楷',
      '華文中宋',
      '隸書',
      '蘋方 常規(guī)',
      '幼圓',
    ],
  },
  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('準(zhǔn)備好了')
  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;
  }
  //設(shè)置默認(rèn)字體
   .ck-editor__editable_inline p {
    font-family: '宋體' !important;
  }
}
</style>

CKEditor5設(shè)置默認(rèn)字體,用的是css寫法,這里嘗試了config.font_defaultLabel = fontFamily這類寫法,都沒有用。最后用css實現(xiàn)的。文章來源地址http://www.zghlxwxcb.cn/news/detail-689805.html

//設(shè)置默認(rèn)字體
   .ck-editor__editable_inline p {
    font-family: '宋體' !important;
  }

到了這里,關(guān)于CKEditor5+vue3使用以及如何添加新工具欄,自定義設(shè)置字體fontFamily的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • vue3中ref和reactive聯(lián)系與區(qū)別以及如何選擇

    vue3中ref和reactive聯(lián)系與區(qū)別以及如何選擇

    1、ref既可定義基本數(shù)據(jù)類型,也可以定義引用數(shù)據(jù)類型,reactive只能定義應(yīng)用數(shù)據(jù)類型 2、ref在js中取響應(yīng)值需要使用 .value,而reactive則直接取用既可 3、ref定義的對象通過.value重新分配新對象時依舊保持?jǐn)?shù)據(jù)響應(yīng)式,而reactive重新分配新對象會失去響應(yīng)式 4、使用ref定義引用數(shù)

    2024年01月25日
    瀏覽(23)
  • element-ui Vue 封裝組件按鈕工具欄,使用slot插槽

    element-ui Vue 封裝組件按鈕工具欄,使用slot插槽

    封裝常用按鈕工具欄,方便其它頁面調(diào)用 缺點:工具欄下面div會顯示工具欄下面,下面需要使用margin-top:40px(小學(xué)生一個沒整明白)希望大神能幫解決 運行效果 ???????? 組件代碼?tt-btnBar.vue 父窗口調(diào)用?testbtnbar.vue

    2024年02月02日
    瀏覽(37)
  • vue2與vue3—引入echarts以及使用

    npm install echarts --save???? ? main.js中? ?vue組件中 引入方法一:?通過getCurrentInstance main.js文件中: vue組件中: 引入方法二: 組件中直接引入

    2024年02月16日
    瀏覽(44)
  • Vue3前端開發(fā),如何獲取組件內(nèi)dom對象以及子組件的屬性和方法

    Vue3前端開發(fā),如何獲取組件內(nèi)dom對象以及子組件的屬性和方法

    Vue3前端開發(fā),借助Ref來獲取組件內(nèi)dom對象,借助defineExpose編譯宏可以獲取到子組件的屬性和方法。 app入口文件,我們作為父組件,在里面調(diào)用了自定義組件TestCom.vue。 先做了一個測試,借助于ref來訪問自身的dom對象。如圖所示是可以拿到的。 ref又稱謂鉤子函數(shù),在vue2版本中

    2024年01月22日
    瀏覽(40)
  • 關(guān)于vue3生命周期的使用、了解以及用途(詳細(xì)版)

    關(guān)于vue3生命周期的使用、了解以及用途(詳細(xì)版)

    每一個Vue組件實例在創(chuàng)建時都需要經(jīng)歷一系列的初始化步驟,比如數(shù)據(jù)偵聽,編譯模板,掛載實例到DOM,以及在數(shù)據(jù)改變時更新DOM。在此過程中,它也會運行被稱為生命周期鉤子的函數(shù),讓開發(fā)者有機會在特定階段運行自己的代碼。最常用的是created、mounted、updated和unmounted。

    2024年01月19日
    瀏覽(24)
  • Qt添加菜單欄和工具欄

    Qt添加菜單欄和工具欄

    一般常規(guī)的PC軟件都會有主窗口,主窗口中都會有菜單欄和工具欄,例如我們正在使用的Qt creator: 首先需要先創(chuàng)建mainWindow設(shè)計師類,基類直接選擇默認(rèn)的MainWindow即可,然后就可以進行設(shè)計了,這里選擇直接設(shè)計ui文件,下拉菜單無法直接輸入中文,需要在其它地方輸入中文

    2024年02月11日
    瀏覽(26)
  • vue3使用高德地圖實現(xiàn)點擊獲取經(jīng)緯度以及搜索功能

    vue3使用高德地圖實現(xiàn)點擊獲取經(jīng)緯度以及搜索功能

    ?話不多說直接上干活 在此之前你需要有高德地圖的 key,這個自己去申請即可 1,首先需要在終端安裝 2,準(zhǔn)備一個容器 3,在需要使用的頁面引入剛才安裝的 4, 5,綁定input框 最后附上css代碼 ???????這個時候就已經(jīng)可以了

    2024年02月12日
    瀏覽(25)
  • Vue3使用高德地圖、搜索、地圖選點、以及省市區(qū)三級聯(lián)動

    Vue3使用高德地圖、搜索、地圖選點、以及省市區(qū)三級聯(lián)動

    1、準(zhǔn)備工作 需要在 高德開發(fā)平臺 申請自己的 key 和 密鑰 這里的 Key 名稱大家可以隨意填寫 申請完之后我們得到 key 和 密鑰 vue中使用需要安裝**@amap/amap-jsapi-loader --save** 官方文檔 2、代碼實現(xiàn) 首先我們需要三個文件,一個 index.vue 一個用來存放省市區(qū)的 index.js 文件 一個 ma

    2024年02月05日
    瀏覽(32)
  • ?WordPress頂部管理工具欄怎么添加一二級自定義菜單?

    ?WordPress頂部管理工具欄怎么添加一二級自定義菜單?

    默認(rèn)情況下,WordPress前端和后臺頁面頂部都有一個“管理工具欄”,左側(cè)一般就是站點名稱、評論、新建,右側(cè)就是您好,用戶名稱和頭像。那么我們是否可以在這個管理工具欄中添加一些一二級自定義菜單呢? 其實,我們想要在頂部管理工具欄中添加自定義菜單,只需要使

    2024年01月23日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包