【vue富文本插件】tinymce 安装使用及汉化注意项

文章目录

    • 前言
    • 一、tinymce 下载安装
      • 1.1 npm 安装
      • 1.2 提供 CDN 版本免费下载
    • 二、tinymce 本地化
      • 三、编写富文本组件
      • 四、在其他 .vue 组件中引入上面编写的 myEditor 组件
    • 五、相关问题
      • 5.1 汉化
      • 5.2 富文本不显示或者黄色文本提示
    • 附:引入第三方拓展啊插件

前言

前端开发过程中,无论是移动设备还是PC设备,经常会用到富文本编辑器。一般情况下,我们不会自己造轮子(太耽误时间,而且有大量成熟的轮子免费且好用),而是使用一些前人封装好的插件。常见的富文本编辑器插件如:wangEditor、UEditor、Kindeditor、Simditor、CKEditor 等等。

数字化管理平台
Vue3+Vite+VueRouter+Pinia+Axios+ElementPlus
权限系统-商城
个人博客地址

而我们今天要说的,TinyMCE 是一款易用、且功能强大的所见即所得的富文本编辑器。插件丰富,可扩展性强,功能配置灵活简单,加载速度快,界面好看,符合现代审美,可支持多种语言:(官网说的这些优势,当然大家可以在使用过过程中进行对比):

  • 开源可商用,基于LGPL2.1
  • 插件丰富,自带插件基本涵盖日常所需功能
  • 接口丰富,可扩展性强,有能力可以无限拓展功能
  • 界面好看,符合现代审美
  • 提供经典、内联、沉浸无干扰三种模式
  • 对标准支持优秀(自v5开始)
  • 多语言支持,官网可下载几十种语言。

你可以通过隐藏工具栏的方式,让富文本编辑器无缝融合到页面中。也可以开启全部功能,呈现经典的类 word 模式,界面如下:
在这里插入图片描述
你可以更改图表颜色,更加醒目的展示某个功能:
在这里插入图片描述
官网

中文文档

一、tinymce 下载安装

1.1 npm 安装

  • 环境

    • “node”: v14.18.1
    • “vue”: “^2.6.10”
    • “tinymce”: “^6.7.0”
    • “@tinymce/tinymce-vue”: “^3.2.8”
  • 安装相关插件

    npm install tinymce -S
    npm install @tinymce/tinymce-vue -S
    

    如果因vue版本过低与最新tinymce插件不兼容,可通过@指定tinymce版本号

    npm install tinymce@5.1.0 -S
    npm install @tinymce/tinymce-vue@3.0.1 -S
    

    tinymce-vue是tinymce官方提供的一个vue组件,可以直接拿过来使用,但是必须要到官网注册获取api-key,否则只有一段时间的试用期。
    在这里插入图片描述

1.2 提供 CDN 版本免费下载

社区版
开发版

二者的区别是开发版包含未被压缩过的源码,方便开发者学习分析,魔改部分功能。开发版中包含社区版。

其它下载:

  • Github
  • Gitee码云

CDN:

  • 国内:BootCDN
  • 国外:tiny官网

二、tinymce 本地化

插件安装后可以直接使用,但是由于众所周知的国内网络环境,这个国外插件时不时的会加载失败,从而页面编辑器部分一片空白(这也是目前国内用户的短板限制),所以我们需要将它本地化,以提高这种不可控制的用户功能体验。

安装完成后,在 node_modules 中找到 tinymce 文件夹,并将 tinymce 复制到 public 文件夹下或者其他能直接访问到的路径,本文将 tinymce 文件放到了 public 文件夹下。

  • tinymce 目录结构如下图:
    在这里插入图片描述
  • 复制后的文件结构如下图所示:
    在这里插入图片描述

三、编写富文本组件

在components路径下新建myEditor.vue文件,打开编写如下代码:

  1. 引入插件
    import Editor from '@tinymce/tinymce-vue'
    
  2. 注册组件
    components: {editor: Editor
    },
    
  3. 在模板中使用组件
    <editorapi-key="你的api-key,需要自己去官网注册获取幺!"v-model="form.content":init="init"/>
    </a-form-model-item>
    
  4. init 相关配置信息
    data() {return {init: {height: 500,menubar: true,plugins: ['advlist autolink lists link image charmap print preview anchor','searchreplace visualblocks code fullscreen','insertdatetime media table paste code help wordcount'],toolbar:'undo redo | formatselect | bold italic backcolor | \alignleft aligncenter alignright alignjustify | \bullist numlist outdent indent | removeformat | help',menu: {file: { title: 'File', items: 'newdocument restoredraft | preview | print ' },edit: { title: 'Edit', items: 'undo redo | cut copy paste | selectall | searchreplace' },view: { title: 'View', items: 'code | visualaid visualchars visualblocks | spellchecker | preview fullscreen' },insert: { title: 'Insert', items: 'image link media template codesample inserttable | charmap emoticons hr | pagebreak nonbreaking anchor toc | insertdatetime' },format: { title: 'Format', items: 'bold italic underline strikethrough superscript subscript codeformat | formats blockformats fontformats fontsizes align lineheight | forecolor backcolor | removeformat' },tools: { title: 'Tools', items: 'spellchecker spellcheckerlanguage | code wordcount' },table: { title: 'Table', items: 'inserttable | cell row column | tableprops deletetable' },help: { title: 'Help', items: 'help' }},language: 'zh-CH'}}
    }
    

四、在其他 .vue 组件中引入上面编写的 myEditor 组件

<template><myEditor ref="myEditor"></myEditor></template><script>import myEditor from '../../components/myEditor.vue';export default {name: 'useEditor',components: {myEditor,},}
</script>

页面展示效果:
在这里插入图片描述

五、相关问题

5.1 汉化

不难发现,上面工具栏是英文的,所以需要汉化。
如果需要汉化显示中文,需要引入中文包,中文包下载地址:Language Packages | Trusted Rich Text Editor | TinyMCE

在这里插入图片描述
在这里插入图片描述
找到对应的中文包,点击 Download 下载并解压,获取 langs 文件包中的 zh-Hans.js 文件,复制到 public/tinymce/langs 目录下:
在这里插入图片描述

修改 三-4 中的 init 配置:

init:{...language_url: '/tinymce/langs/zh-Hans.js', // 中文包的存放路径language: 'zh-Hans'
}

5.2 富文本不显示或者黄色文本提示

在这里插入图片描述
需要在 public/index.html 中引入 tinymce.min.js 文件,如下:

<script type="text/javascript" src="tinymce/tinymce.min.js"></script>

这样就显示正常了!!!

在这里插入图片描述

附:引入第三方拓展啊插件

有些插件并不是第三方提供的,而是别人开源的,这时候我们要是使用的话就要把他们引入进来。
在 public/tinymce/plugins 目录下,把下载的插件解压缩放进去,然后引用即可
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kubernetes----基于kubeadm工具在CentOS7.9虚拟机上部署一主两从类型的1.26版本的Kubernetes集群环境

【原文链接】Kubernetes----基于kubeadm工具在CentOS7.9虚拟机上部署一主两从类型的1.26版本的Kubernetes集群环境 文章目录 一、虚拟机环境准备1.1 准备三台CentOS操作系统的虚拟机1.2 修改主机名1.3 确认CentOS的版本符合要求1.4 配置地址解析1.5 配置时间同步1.6 关闭防火墙…

c++ 学习之 强制类型转换运算符 const_cast

看例子怎么用 int main() {int a 1;int* p a;// 会发生报错// 如果学着 c的风格类型转换int* pp (int*)a;*pp 1; // 编译不报错&#xff0c;但是运行报错// const_castconst int n 5;const std::string s "lalal";// const cast 只针对指针&#xff0c;引用&…

Navicat如何连接远程服务器的MySQL

参考:https://blog.csdn.net/a648119398/article/details/122420906 1.Navicat for Mysql 2.腾讯云轻量级服务器一台&#xff08;Centos 7&#xff09; 3.Mysql 8.0.24&#xff08;远程服务器内安装的&#xff09; 4.Xshell7&#xff08;连接操作远程服务器&#xff09; 一、修…

电子书制作软件Vellum mac中文版特点

Vellum mac是一款专业的电子书制作软件&#xff0c;它可以帮助用户将文本文件转换为高质量的电子书&#xff0c;支持多种格式&#xff0c;包括EPUB、MOBI、PDF等。Vellum具有直观的用户界面和易于使用的工具&#xff0c;可以让用户快速地创建和发布电子书。 Vellum mac软件特点…

FPGA---UDP通信求助

项目场景&#xff1a; 使用UDP进行回环&#xff0c;网络调试助手&#xff0c;发送数据通过UDP接收模块接收&#xff0c;解析出数据&#xff0c;给到UDP发送模块&#xff0c;传回上位机。 问题描述 UDP接收模块中&#xff0c;接收到的CRC校验值与自己计算CRC校验值进行判断&am…

OpenCV实现图像傅里叶变换

傅里叶变换 dftcv.dft(img_float32,flagscv.DFT_COMPLEX_OUTPUT): flags:标志位&#xff0c;指定变换类型&#xff0c;cv.DFT_COMPLEX_OUTPUT会返回复数结果。 傅立叶变换&#xff0c;将输入的图像从空间域转换到频率域。 返回结果: 此函数返回一个复杂数值数组&#xff0c…

c++ 类的特殊成员函数:移动构造函数(五)

1. 简介 移动构造函数是C11中的新特性&#xff0c;它允许对象通过移动而不是复制来传递和初始化。移动构造函数通常用于提高性能&#xff0c;因为它避免了不必要的复制操作&#xff0c;特别是当处理大型对象或使用动态内存分配时。 2. 来源 当拷贝构造函数出现函数返回值 &a…

LeetCode(力扣)416. 分割等和子集Python

LeetCode416. 分割等和子集 题目链接代码 题目链接 https://leetcode.cn/problems/partition-equal-subset-sum/ 代码 class Solution:def canPartition(self, nums: List[int]) -> bool:sum 0dp [0]*10001for num in nums:sum numif sum % 2 1:return Falsetarget …

【Vuex+ElementUI】Vuex中取值存值以及异步加载的使用

一、导言 1、引言 Vuex是一个用于Vue.js应用程序的状态管理模式和库。它建立在Vue.js的响应式系统之上&#xff0c;提供了一种集中管理应用程序状态的方式。使用Vuex&#xff0c;您可以将应用程序的状态存储在一个单一的位置&#xff08;即“存储”&#xff09;中&#xff0c;…

MySQL数据生成工具mysql_random_data_load

在看MySQL文章的时候偶然发现生成数据的工具&#xff0c;此处直接将软件作者的文档贴了过来&#xff0c;说明了使用方式及下载地址 Random data generator for MySQL Many times in my job I need to generate random data for a specific table in order to reproduce an is…

Flutter_Slider_SliderTheme_滑杆/滑块_渐变色

调用示例以及效果 SliderTheme(data: SliderTheme.of(context).copyWith(trackHeight: 3,// 滑杆trackShape: const GradientRectSliderTrackShape(radius: 1.5),// 滑块thumbShape: const GradientSliderComponentShape(rectWH: 14, overlayRectSpace: 4, overlayColor: Colou…

Linux sed命令

在Linux系统中&#xff0c;有许多强大的文本处理工具&#xff0c;其中之一就是sed&#xff08;Stream Editor&#xff09;命令。sed是一个用于对文本进行编辑、替换、删除和过滤操作的命令行工具&#xff0c;一次处理一行内容。它具有强大的正则表达式支持和灵活的文本处理功能…

智能电表线路单回路双回路的区别

随着科技的发展和能源管理的需求&#xff0c;智能电表已经成为电力系统中不可或缺的一部分。智能电表可以通过数据通信网络将用电信息实时传输到电力公司&#xff0c;为电力公司提供更精确、实时的用电数据&#xff0c;同时也可以为用户提供更加智能化的用电服务。 在智能电表…

Peter算法小课堂—DP背包问题

大家好&#xff0c;我是Peter&#xff0c;我又来啦&#x1f388;&#x1f384;✨ &#x1f388;&#x1f9e8;&#x1f389;《动态规划》专栏来啦&#xff0c;目前为止&#xff0c;此专栏已经有四篇文章啦&#x1f381;&#x1f380;&#x1f384; 1.DP概念与编程方法 DP概念…

图扑 HT for Web 风格属性手册教程

图扑软件明星产品 HT for Web 是一套纯国产化独立自主研发的 2D 和 3D 图形界面可视化引擎。HT for Web&#xff08;以下简称 HT&#xff09;图元的样式由其 Style 属性控制&#xff0c;并且不同类型图元的 Style 属性各不相同。为了方便查询和理解图元的 Style 属性&#xff0…

Matlab地理信息绘图—数据诊断

文章目录 数据诊断分析&#xff08;均值方差&#xff09;Matlab代码实现结果展示 数据诊断分析&#xff08;均值方差&#xff09; 均值方差检测是一种简单但有效的异常检测方法&#xff0c;主要基于样本的均值和方差的统计信息。该方法的核心思想是假设正常的样本点应该聚集在…

Python 自定义包和模块随机生成6位验证码(详解版)

一、新建一个包&#xff08;两种方法&#xff09; 方法一&#xff1a;先新建一个空目录命名为"小功能包"&#xff0c;然后在新建的目录下新建一个空__init__.py&#xff08;目的是声明当前目录是一个包&#xff09; 方法二&#xff1a;直接在PyCharm用鼠标依次点击F…

多尺度retinex图像去雾算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 clc; clear; close all; warning off; addpath(genpath(pwd)); rng(default)img_in im2doub…

基于SpringBoot的学院班级回忆录

目录 前言 一、技术栈 二、系统功能介绍 管理员模块的实现 用户信息管理 班委信息管理 班级信息管理 班级相册管理 用户和班委模块的实现 班委注册 班级信息管理 加入班级 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越…

使用c++视觉处理----canny 边缘检测、sobel边缘检测、scharr 滤波边缘检测

使用c视觉处理canny 边缘检测、sobel边缘检测、scharr 滤波边缘检测 #include <opencv2/opencv.hpp>int main() {// 读取图像cv::Mat image cv::imread("1.jpg", cv::IMREAD_GRAYSCALE); // 转为灰度图像if (image.empty()) {std::cerr << "无法加…