Tips:一些记录,一些笔记

2024/05/02
THURSDAY
「林宥嘉」在「说谎」中唱到:
别说我说谎,人生已经如此的艰难
有些事情就不要拆穿
我没有说谎,是爱情说谎
它带你来,骗我说,渴望的有可能有希望

01
Vue「项目准备」
先看看「Node 与 NPM」的版本信息:
(base) adamhuan@Leviathan PycharmProjects % node -vv21.7.1(base) adamhuan@Leviathan PycharmProjects % npm -v10.5.0(base) adamhuan@Leviathan PycharmProjects % pnpm -v8.15.4(base) adamhuan@Leviathan PycharmProjects %
通过「pnpm」创建我们的Vue项目:
(base) adamhuan@Leviathan PycharmProjects % pnpm list | grep vite --color@arco-plugins/vite-vue 1.4.5vite 5.2.10@storybook/vue3-vite 8.0.9(base) adamhuan@Leviathan PycharmProjects %(base) adamhuan@Leviathan PycharmProjects % pnpm create vite@latestLibrary/pnpm/store/v3/tmp/dlx-86213 | +1 +Library/pnpm/store/v3/tmp/dlx-86213 | Progress: resolved 1, reused 1, downloaded 0, added 1, done✔ Project name: … vuejs-ckeditor✔ Select a framework: › Vue✔ Select a variant: › JavaScriptScaffolding project in Users/adamhuan/PycharmProjects/vuejs-ckeditor...Done. Now run:cd vuejs-ckeditorpnpm installpnpm run dev(base) adamhuan@Leviathan PycharmProjects %(base) adamhuan@Leviathan PycharmProjects % cd vuejs-ckeditor(base) adamhuan@Leviathan vuejs-ckeditor % ls -ltrtotal 32-rw-r--r-- 1 adamhuan staff 440 5 2 11:54 README.md-rw-r--r-- 1 adamhuan staff 357 5 2 11:54 index.htmldrwxr-xr-x 3 adamhuan staff 96 5 2 11:54 publicdrwxr-xr-x 7 adamhuan staff 224 5 2 11:54 src-rw-r--r-- 1 adamhuan staff 157 5 2 11:54 vite.config.js-rw-r--r-- 1 adamhuan staff 319 5 2 11:54 package.json(base) adamhuan@Leviathan vuejs-ckeditor %
通过「pnpm」安装依赖:
(base) adamhuan@Leviathan vuejs-ckeditor % pwd/Users/adamhuan/PycharmProjects/vuejs-ckeditor(base) adamhuan@Leviathan vuejs-ckeditor %(base) adamhuan@Leviathan vuejs-ckeditor % ls -ltrtotal 32-rw-r--r-- 1 adamhuan staff 440 5 2 11:54 README.md-rw-r--r-- 1 adamhuan staff 357 5 2 11:54 index.htmldrwxr-xr-x 3 adamhuan staff 96 5 2 11:54 publicdrwxr-xr-x 7 adamhuan staff 224 5 2 11:54 src-rw-r--r-- 1 adamhuan staff 157 5 2 11:54 vite.config.js-rw-r--r-- 1 adamhuan staff 319 5 2 11:54 package.json(base) adamhuan@Leviathan vuejs-ckeditor %(base) adamhuan@Leviathan vuejs-ckeditor % pnpm installPackages: +32++++++++++++++++++++++++++++++++Progress: resolved 69, reused 32, downloaded 0, added 32, donedependencies:+ vue 3.4.26devDependencies:+ @vitejs/plugin-vue 5.0.4+ vite 5.2.10Done in 2.1s(base) adamhuan@Leviathan vuejs-ckeditor %(base) adamhuan@Leviathan vuejs-ckeditor % ls -ltrtotal 88-rw-r--r-- 1 adamhuan staff 440 5 2 11:54 README.md-rw-r--r-- 1 adamhuan staff 357 5 2 11:54 index.htmldrwxr-xr-x 3 adamhuan staff 96 5 2 11:54 publicdrwxr-xr-x 7 adamhuan staff 224 5 2 11:54 src-rw-r--r-- 1 adamhuan staff 157 5 2 11:54 vite.config.js-rw-r--r-- 1 adamhuan staff 319 5 2 11:54 package.json-rw-r--r-- 1 adamhuan staff 26510 5 2 11:55 pnpm-lock.yamldrwxr-xr-x 8 adamhuan staff 256 5 2 11:55 node_modules(base) adamhuan@Leviathan vuejs-ckeditor %
可以看到,多了一个目录「node_modules」
运行项目:
(base) adamhuan@Leviathan vuejs-ckeditor % pnpm run dev> vuejs-ckeditor@0.0.0 dev Users/adamhuan/PycharmProjects/vuejs-ckeditor> viteVITE v5.2.10 ready in 193 ms➜ Local: http://localhost:5173/➜ Network: use --host to expose➜ press h + enter to show help
可以看到,项目被成功的运行在了「http://localhost:5173/」
让我们通过浏览器访问这个路径:

当看到了这个画面,说明Vue项目创建成功。
02
「VS Code」打开项目




03
CKEditor
官方网站:
https://ckeditor.com/
官方文档:
https://ckeditor.com/docs/index.html
官方Github:
https://github.com/ckeditor

如上图所示,CKEditor的编辑器有以下五种展示类型:
Classic
Inline
Balloon
Balloon block
Decoupled document
CKEditor对Vue做了开箱即用的封装;
但是对于上面五种编辑器的类型来说,引入的方式除了「Decoupled document」略有不同,其他的四种基本上一样。
下面会分别说明并给出完整可用的代码样例展示。
04
Classic Inline Balloon Balloon block
首先,通过「pnpm」安装依赖:
(base) adamhuan@Leviathan vuejs-ckeditor % pwd/Users/adamhuan/PycharmProjects/vuejs-ckeditor(base) adamhuan@Leviathan vuejs-ckeditor %(base) adamhuan@Leviathan vuejs-ckeditor % ls -ltrtotal 88-rw-r--r-- 1 adamhuan staff 440 5 2 11:54 README.md-rw-r--r-- 1 adamhuan staff 357 5 2 11:54 index.htmldrwxr-xr-x 3 adamhuan staff 96 5 2 11:54 publicdrwxr-xr-x 7 adamhuan staff 224 5 2 11:54 src-rw-r--r-- 1 adamhuan staff 157 5 2 11:54 vite.config.js-rw-r--r-- 1 adamhuan staff 319 5 2 11:54 package.json-rw-r--r-- 1 adamhuan staff 26510 5 2 11:55 pnpm-lock.yamldrwxr-xr-x 9 adamhuan staff 288 5 2 11:56 node_modules(base) adamhuan@Leviathan vuejs-ckeditor %(base) adamhuan@Leviathan vuejs-ckeditor % pnpm install --save @ckeditor/ckeditor5-build-classicPackages: +39+++++++++++++++++++++++++++++++++++++++Progress: resolved 108, reused 69, downloaded 2, added 39, donedependencies:+ @ckeditor/ckeditor5-build-classic 41.3.1Done in 2.4s(base) adamhuan@Leviathan vuejs-ckeditor % pnpm install --save @ckeditor/ckeditor5-build-inlinePackages: +2++Progress: resolved 110, reused 71, downloaded 2, added 2, donedependencies:+ @ckeditor/ckeditor5-build-inline 41.3.1Done in 2.2s(base) adamhuan@Leviathan vuejs-ckeditor %(base) adamhuan@Leviathan vuejs-ckeditor % pnpm install --save @ckeditor/ckeditor5-build-balloonPackages: +2++Progress: resolved 112, reused 73, downloaded 2, added 2, donedependencies:+ @ckeditor/ckeditor5-build-balloon 41.3.1Done in 2s(base) adamhuan@Leviathan vuejs-ckeditor % pnpm install --save @ckeditor/ckeditor5-build-balloon-blockPackages: +1+Progress: resolved 113, reused 75, downloaded 1, added 1, donedependencies:+ @ckeditor/ckeditor5-build-balloon-block 41.3.1Done in 2s(base) adamhuan@Leviathan vuejs-ckeditor %(base) adamhuan@Leviathan vuejs-ckeditor % pnpm install --save @ckeditor/ckeditor5-vuePackages: +1+Progress: resolved 116, reused 78, downloaded 1, added 1, donenode_modules/.pnpm/@ckeditor+ckeditor5-vue@5.1.0/node_modules/@ckeditor/ckeditor5-vue: Running postinstall script, done in 37msdependencies:+ @ckeditor/ckeditor5-vue 5.1.0WARN Issues with peer dependencies found.└─┬ vue-class-component 7.2.6└── ✕ unmet peer vue@^2.0.0: found 3.4.26Done in 1s(base) adamhuan@Leviathan vuejs-ckeditor %
安装完成后,看看我们的项目,现在安装了哪些软件依赖:
(base) adamhuan@Leviathan vuejs-ckeditor % pnpm listLegend: production dependency, optional only, dev onlyvuejs-ckeditor@0.0.0 Users/adamhuan/PycharmProjects/vuejs-ckeditor (PRIVATE)dependencies:@ckeditor/ckeditor5-build-balloon 41.3.1@ckeditor/ckeditor5-build-balloon-block 41.3.1@ckeditor/ckeditor5-build-classic 41.3.1@ckeditor/ckeditor5-build-inline 41.3.1@ckeditor/ckeditor5-vue 5.1.0vue 3.4.26vue-property-decorator 9.1.2devDependencies:@vitejs/plugin-vue 5.0.4vite 5.2.10(base) adamhuan@Leviathan vuejs-ckeditor %
修改「src/main.js」中的配置:
import { createApp } from 'vue'// import './style.css'import App from './App.vue'import CKEditor from '@ckeditor/ckeditor5-vue'const app = createApp(App)app.use(CKEditor)app.mount('#app')
为了方便,后面的页面创建我们直接修改「src/App.vue」
每次修改前对之前的成功版本做出备份
先对原版的「App.vue」做备份:
(base) adamhuan@Leviathan vuejs-ckeditor % pwd/Users/adamhuan/PycharmProjects/vuejs-ckeditor(base) adamhuan@Leviathan vuejs-ckeditor %(base) adamhuan@Leviathan vuejs-ckeditor % ls -ltrtotal 128-rw-r--r-- 1 adamhuan staff 440 5 2 11:54 README.md-rw-r--r-- 1 adamhuan staff 357 5 2 11:54 index.htmldrwxr-xr-x 3 adamhuan staff 96 5 2 11:54 publicdrwxr-xr-x 7 adamhuan staff 224 5 2 11:54 src-rw-r--r-- 1 adamhuan staff 157 5 2 11:54 vite.config.js-rw-r--r-- 1 adamhuan staff 46648 5 2 12:16 pnpm-lock.yamldrwxr-xr-x 10 adamhuan staff 320 5 2 12:16 node_modules-rw-r--r-- 1 adamhuan staff 532 5 2 12:16 package.json(base) adamhuan@Leviathan vuejs-ckeditor %(base) adamhuan@Leviathan vuejs-ckeditor % cd src(base) adamhuan@Leviathan src % ls -ltrtotal 24-rw-r--r-- 1 adamhuan staff 638 5 2 11:54 App.vuedrwxr-xr-x 3 adamhuan staff 96 5 2 11:54 assetsdrwxr-xr-x 3 adamhuan staff 96 5 2 11:54 components-rw-r--r-- 1 adamhuan staff 111 5 2 11:54 main.js-rw-r--r-- 1 adamhuan staff 1276 5 2 11:54 style.css(base) adamhuan@Leviathan src %(base) adamhuan@Leviathan src % cp App.vue App.vue_origin_20240502(base) adamhuan@Leviathan src %(base) adamhuan@Leviathan src % ls -ltrtotal 32-rw-r--r-- 1 adamhuan staff 638 5 2 11:54 App.vuedrwxr-xr-x 3 adamhuan staff 96 5 2 11:54 assetsdrwxr-xr-x 3 adamhuan staff 96 5 2 11:54 components-rw-r--r-- 1 adamhuan staff 111 5 2 11:54 main.js-rw-r--r-- 1 adamhuan staff 1276 5 2 11:54 style.css-rw-r--r-- 1 adamhuan staff 638 5 2 12:19 App.vue_origin_20240502(base) adamhuan@Leviathan src %
备份完成。
开始创建我们的前端页面。
先以「Classic Editor」模式为例,其他的三个类型「Inline Balloon Balloon block」也是类似的。
文件「src/App.vue」
<template><div id="app"><ckeditor :editor="editor" v-model="editorData" :config="editorConfig"></ckeditor></div></template><script>import ClassicEditor from "@ckeditor/ckeditor5-build-classic";export default {name: 'app',data() {return {editor: ClassicEditor,editorData: "<p>Content of the editor</p>",editorConfig: {// 编辑器的配置},};}}</script>
来看看前台页面的效果:

来向里面写一点东西:

这只是一个最简单的样例,更多的CKEditor的API可以查阅官方文档:
https://ckeditor.com/docs/ckeditor5/latest/installation/integrations/vuejs-v3.html
05
Decoupled Document
修改App.vue:
<template><div id="app"><ckeditor :editor="editor" @ready="onReady" ></ckeditor></div></template><script>import DecoupledEditor from '@ckeditor/ckeditor5-build-decoupled-document';export default {name: 'app',data() {return {editor: DecoupledEditor,// ...};},methods: {onReady( editor ) {// Insert the toolbar before the editable area.editor.ui.getEditableElement().parentElement.insertBefore(editor.ui.view.toolbar.element,editor.ui.getEditableElement());}}}</script>
页面效果:

END
温馨提示
如果你喜欢本文,请分享到朋友圈,想要获得更多信息,请关注我。




