前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >发现一个超好用的文本编辑器!!!

发现一个超好用的文本编辑器!!!

作者头像
裴大头
发布2022-01-17 13:58:27
8810
发布2022-01-17 13:58:27
举报
文章被收录于专栏:裴大头的专栏

前言:

之前用的文本编辑器是mavonEditor,总是觉得看着md格式的内容怪怪的,于是乎发现了这么一款超好用的文本编辑器——TinyMCE

如何使用:(vue项目中引入TinyMCE)

一、下载依赖

npm install tinymce -S //当前版本^5.1.1

npm install @tinymce/tinymce-vue -S //当前版本^3.0.1

二、使用

首先要将node_modules 中找到 tinymce/skins 文件夹拷贝出来放到我们的项目中,vue-cli3以上的版本放到public中(2版本放到static文件夹里)

截图中的zh_CN.js是所需要汉化包

代码点此下载:zh_CN.js

三、开始使用

一般我们需要再次封装一下。

代码语言:javascript
复制
<!--
 * @File: index
 * @Author: PHY
 * @Date: 2022/1/6 18:03
 * @Description: tinymce富文本编辑器
-->
<template>
    <div class="tinymce">
        <editor id="tinymce" :style="'width: 100%;height: ' + tinymceHeight" v-model="value" :init="init"/>
    </div>
</template>

<script>
import tinymce from "tinymce";
import Editor from "@tinymce/tinymce-vue";
import 'tinymce/themes/silver/theme'
import 'tinymce/icons/default/icons.min.js'
import 'tinymce/plugins/image'
import 'tinymce/plugins/link'
import 'tinymce/plugins/code'
import 'tinymce/plugins/table'
import 'tinymce/plugins/lists'
import 'tinymce/plugins/contextmenu'
import 'tinymce/plugins/wordcount'
import 'tinymce/plugins/colorpicker'
import 'tinymce/plugins/textcolor'
import {uploadImage} from "@/api/system/image";
export default {
    name: "index",
    components: {
        Editor
    },
    props: {
        tinymceHtml: '',
        tinymceHeight: {
            type: String,
            default: '100%'
        }
    },
    watch: {
        tinymceHtml(newV,oldV) {
            this.value = newV
        }
    },
    data() {
        return {
            value: this.tinymceHtml, //父组件通过ref拿到该组件的值
            init: {
                plugins: "image link code table lists wordcount", //引入插件
                toolbar: "h1 h2 h3 h4 | " +
                    "fontselect fontsizeselect | " +
                    "bold italic underline strikethrough lineheight forecolor backcolor  | " +
                    "alignleft aligncenter alignright alignjustify numlist bullist | " +
                    "link image quicklink blockquote table preview fullscreen", //工具栏
                selector: "#tinymce", //tinymce的id
                language_url: "/tinymce/zh_CN.js",
                language: "zh_CN",
                skin_url: "/tinymce/skins/ui/oxide", //编辑器需要一个skin才能正常工作,所以要设置一个skin_url指向之前复制出来的skin文件
                browser_spellcheck: true, // 拼写检查
                branding: false, // 去水印
                elementpath: false, //禁用编辑器底部的状态栏
                statusbar: false, // 隐藏编辑器底部的状态栏
                paste_data_images: true, // 允许粘贴图像
                menubar: false, // 隐藏最上方menu
                fontsize_formats: "14px 16px 18px 20px 24px 26px 28px 30px 32px 36px", //字体大小
                font_formats:"微软雅黑=Microsoft YaHei,Helvetica Neue;PingFang SC;sans-serif;苹果苹方=PingFang SC,Microsoft YaHei,sans-serif;宋体=simsun;serifsans-serif;Terminal=terminal;monaco;Times New Roman=times new roman;times", //字体

                file_picker_types: 'image',
                images_upload_credentials: true,
                // 图片上传三个参数,图片数据,成功时的回调函数,失败时的回调函数
                images_upload_handler: (blobInfo, success, failure) => {
                    let formData = new FormData();
                    formData.append("image", blobInfo.blob());
                    //uploadImg是上传图片的请求接口
                    uploadImage(formData).then(res => {
                        const img = "https://phy0412.top" + process.env.VUE_APP_BASE_API + res.imgUrl;
                        success(img);
                    })
                }
            }
        }
    },
    mounted() {
        tinymce.init({});
    },
    methods: {},
}
</script>

<style lang="scss" scoped>
</style>

这是完整的一个组件代码。

其中uploadImage接口是自己的上传图片的接口,success是将url展示到页面文档里。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言:
  • 如何使用:(vue项目中引入TinyMCE)
    • 一、下载依赖
      • 二、使用
        • 三、开始使用
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档