element-tiptap富文本编辑器
npm安装
npm install element-tiptap --save
yarn安装
yarn add element-tiptap
全局引入
import Vue from 'vue';
import ElementUI from 'element-ui';
import { ElementTiptapPlugin } from 'element-tiptap';
import 'element-ui/lib/theme-chalk/index.css';
import 'element-tiptap/lib/index.css';
Vue.use(ElementUI);
Vue.use(ElementTiptapPlugin, {
lang: 'zh',
});
局部引入
<script>
import {
ElementTiptap,
Doc,
Text,
Paragraph,
Heading,
Bold,
Underline,
Italic,
Strike,
ListItem,
BulletList,
OrderedList,
Link,
Image,
CodeBlock,
Blockquote,
TodoItem,
TodoList,
TextAlign,
FontSize,
FontType,
Fullscreen,
TextHighlight,
TextColor,
FormatClear,
Table,
TableHeader,
TableCell,
TableRow,
History,
TrailingNode,
HardBreak,
HorizontalRule,
LineHeight,
Indent
} from 'element-tiptap';
export default {
data () {
return {
extensions: [
new Doc(),
new Text(),
new Paragraph(),
new Heading({ level: 6 }),
new Bold({ bubble: true }),
new Underline({ bubble: true, menubar: false }),
new Italic({ bubble: true }),
new Strike({ bubble: true }),
new ListItem(),
new BulletList({ bubble: true }),
new OrderedList({ bubble: true }),
new Link(),
new Image(),
new CodeBlock({ bubble: true }),
new Blockquote(),
new TodoItem(),
new TodoList(),
new TextAlign({ bubble: true }),
new FontSize({ bubble: true }),
new FontType({ bubble: true }),
new Fullscreen(),
new TextHighlight({ bubble: true }),
new TextColor({ bubble: true }),
new FormatClear({ bubble: true }),
new Table({ resizable: true }),
new TableHeader(),
new TableCell(),
new TableRow(),
new History(),
new TrailingNode(),
new HardBreak(),
new HorizontalRule(),
new LineHeight(),
new Indent()
],
content: `
<h1>Heading</h1>
<p>This Editor is awesome!</p>
`,
};
},
},
</script>
注意:局部引入同样需要在main.js中引入element-tiptap样式文件
import 'element-tiptap/lib/index.css';
使用
<template>
<div>
<el-tiptap
v-model="content"
:extensions="extensions"
lang="zh"
/>
</div>
</template>
注意:如果使用的是局部引入,需要在使用的时候指定 lang="zh" ,否则会报错
自定义图片上传
element-tiptap的本地图片上传默认将图片转换成base64格式,然后与内容保存在一起,可以在extensions中自定义图片的上传方式
new Image({
uploadRequest(file) {
}
}),
报错(Duplicate use of selection JSON ID cell)
找到根目录下的 node_modules/tiptap-extensions/node-modules ,将最后的 node-modules 改为node-modules– ,即可解决
element-tiptap中文文档
|