Vue3使用ckeditor5,加载mathtype组件,并将最终结果转化为latex格式输出

本文详细描述了如何在Vue3项目中使用Vite构建工具,并介绍了在项目中集成Ckeditor5时需要注意的依赖版本管理和配置步骤,包括vite.config.ts的修改、main.ts的配置以及使用mathml2latex进行数学公式转换。
摘要由CSDN通过智能技术生成

vue3项目直接用vite搭建就行。我用的是4.1.0版本的vite
接下来说一下要注意的几个点:

1、ckeritor的相关依赖安装必须版本相同,不然会报依赖重复的错误

主要有以下依赖:

    "@ckeditor/ckeditor5-basic-styles": "^38.0.1",
    "@ckeditor/ckeditor5-editor-classic": "^38.0.1",
    "@ckeditor/ckeditor5-essentials": "^38.0.1",
    "@ckeditor/ckeditor5-link": "^38.0.1",
    "@ckeditor/ckeditor5-paragraph": "^38.0.1",
    "@ckeditor/ckeditor5-theme-lark": "^38.0.1",
    "@ckeditor/ckeditor5-vue": "^5.1.0",
    "@ckeditor/vite-plugin-ckeditor5": "^0.1.3",
    "@wiris/mathtype-ckeditor5": "^8.3.1",

依次安装即可,举例:npm i @ckeditor/ckeditor5-basic-styles@38.0.1
其中最后两个分别是vue版本插件和支持数学公式的mathtype插件

2、修改vite.config.ts

直接贴上我的了:

import {defineConfig} from 'vite';
import vue from '@vitejs/plugin-vue';
import path from 'path';
import ckeditor5 from '@ckeditor/vite-plugin-ckeditor5';

export default defineConfig({
  plugins: [vue(), ckeditor5({theme: require.resolve('@ckeditor/ckeditor5-theme-lark')})],
  server: {
    host: '0.0.0.0',
    port: 8686, //这里自行更改
    open: false, //是否打开浏览器
  },
  resolve: {
    alias: {
      '@': path.resolve(__dirname, './src'),
    },
  },
  optimizeDeps: {
    exclude: ['@wiris/mathtype-html-integration-devkit'],
  },
});

3、修改main.ts文件
import {createApp} from 'vue';
import App from '@/App.vue';
import CKEditorPlugin from '@ckeditor/ckeditor5-vue';

const app = createApp(App);
app.use(CKEditorPlugin);
app.mount('#app');
4、创建vue文件并进行引用

在此之前需要安装mathml2latex,
npm i mathml2latex
主要用于将mathml转化为latex格式输出


<template>
    <ckeditor :editor="editor" v-model="editorData" :config="editorConfig"></ckeditor>
</template>
<script setup lang="ts">

import {ref, watch} from 'vue';
import {ClassicEditor} from '@ckeditor/ckeditor5-editor-classic';
import {Essentials} from '@ckeditor/ckeditor5-essentials';
import {Bold, Italic} from '@ckeditor/ckeditor5-basic-styles';
import {Link} from '@ckeditor/ckeditor5-link';
import {Paragraph} from '@ckeditor/ckeditor5-paragraph';
import MathType from '@wiris/mathtype-ckeditor5/src/plugin';
import MathMl2LaTeX from 'mathml2latex';

const editor = ref(ClassicEditor);
const editorData = ref('<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><mi>a</mi><mo>+</mo><mi>b</mi><mo>−</mo><mn>8</mn><mo>∗</mo><mroot><mn>2</mn><mn>3</mn></mroot></math>');
const editorConfig = ref({
  plugins: [Essentials, Bold, Italic, Link, Paragraph, MathType],
  toolbar: {
    items: ['bold', 'italic', 'link', 'undo', 'redo', 'MathType', 'ChemType'],
  },
});
watch(
  editorData,
  (params: string | any[]) => {
    if (!params) return;
    let mathmlStr = params.slice(3, -4);
    const latexStr = MathMl2LaTeX.convert(mathmlStr ); 
    console.log('🚀 ~ latex:', latexStr );
  },
  {
    deep: true,
  }
);
</script>

效果:
在这里插入图片描述
转化前后的输出格式:
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
引用\[1\]:在Vue3中使用CKEditor插件的基本操作步骤如下:首先,你需要下载CKEditor的包并解压到一个文件夹中。你可以从官方网站上下载CKEditor 4的插件,下载地址为https://ckeditor.com/ckeditor-4/download/。根据你的需求选择合适的插件包进行下载。接下来,将解压好的包放到Vue项目的public文件夹中。然后,在项目的index.html文件中引入CKEditor的JavaScript代码,代码如下: ```html <script src="ckeditor/ckeditor.js"></script> ``` 接下来,在需要使用CKEditor的地方引入ckeditor.vue组件,并在模板中使用组件,代码如下: ```html <template> <div> <ckeditor @sendContent="getContent" :content="infoText"></ckeditor> </div> </template> ``` 在script标签中,你需要导入ckeditor.vue组件,并在组件的data选项中定义一个infoText变量来存储CKEditor的内容。你还需要定义一个getContent方法来获取CKEditor的内容,代码如下: ```javascript <script> import ckeditor from '../../../../../../../components/ckeditor.vue' export default { components: { ckeditor }, data() { return { infoText: '' } }, methods: { //获取富文本编辑器内容 getContent(val) { this.infoText = val } } } </script> ``` 通过以上步骤,你就可以在Vue3中使用CKEditor插件了。 #### 引用[.reference_title] - *1* [VUE3 引入富文本插件 CKEditor5](https://blog.csdn.net/ParkChanyelo/article/details/130008905)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [关于在vue-3 搭建vue项目中使用 CKEditor](https://blog.csdn.net/weixin_49279406/article/details/119923938)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值