前提说明
- vue3
- tinymce 7.2.1
- tinymce-vue 6.0.1
准备工作
安装tinymce和tinymce-vue
复制代码到public
为什么不直接引用node_modules的文件 Tiny does not recommend bundling tinymce and tinymce-vue with a module loader. Bundling these packages can be complex and error prone.
如果一定想用node_moudule 文件参考上面的链接说明即可。可以忽略复制文件这一步。
复制文件只保留min.js相关即可。可以根据自己的需求保留哪些文件即可。也可以存放在自己的cdn,使用远程链接。
public
tinymce
icons
default
icons.min.js
langs
zh_CN.js
models
dom
model.min.js
plugins
accordion
plugin.min.js
advlist
plugin.min.js
anchor
plugin.min.js
autolink
plugin.min.js
autoresize
plugin.min.js
autosave
plugin.min.js
charmap
plugin.min.js
code
plugin.min.js
codesample
plugin.min.js
directionality
plugin.min.js
emoticons
js
emojiimages.min.js
emojis.min.js
plugin.min.js
fullscreen
plugin.min.js
help
js
i18n
keynav
zh_CN.js
plugin.min.js
image
plugin.min.js
importcss
plugin.min.js
insertdatetime
plugin.min.js
link
plugin.min.js
lists
plugin.min.js
media
plugin.min.js
nonbreaking
plugin.min.js
pagebreak
plugin.min.js
preview
plugin.min.js
quickbars
plugin.min.js
save
plugin.min.js
searchreplace
plugin.min.js
table
plugin.min.js
visualblocks
plugin.min.js
visualchars
plugin.min.js
wordcount
plugin.min.js
skins
content
default
content.css
content.js
content.min.css
QZD
content.css
content.min.css
ui
QZD
fonts
tinymce-mobile.woff
content.css
content.inline.css
content.inline.min.css
content.min.css
content.mobile.css
content.mobile.min.css
skin.css
skin.min.css
skin.mobile.css
skin.mobile.min.css
themes
silver
theme.min.js
tinymce.min.js
新建组件
TinyMceEditor.vue
常见问题
如何做语言本地化?
上方的组件已经做了本地化操作。主要配置就是lang字段。可以去下载文档,language-packages, 如果需要自定义修改下载的文件即可。
如何添加自定义字体?
如何添加自定义icon?
tinymce 的多套皮肤,是需要付费的,如果觉得不好看就自己改tinymce/icons/default/icons.min.js文件
如果只有个别自己新增的icon,可以自己使用api 添加,(只支持svg文件。)
a 标签的href属性被编辑器自动修改了
具体原因尚未定位到,目前推测是link插件内部做了某些格式化导致的,具体表现为:
当以上内容通过insertContent方法插入到编辑器中时,再编辑器中回车操作时,当前内容会变成
编辑器会自动将href更新为https://www.baidu.com?id=1&search=2, 也就是保持跟a标签内容一致,从而导致属性丢失。
最终解决方案是,将a标签的内容变成更href毫无关联的内容,就不会替换。
后续可以跟进此issue After insertContent 'a' tag, the href parameter is lost after pressing enter.
