Angular6.x安装配置本地加载汉化版TinyMCE Angular集成配置HTML富文本编辑器方法

这篇文章由 DeathGhost 编辑,发布于

归类于 Angular » 👋分享到微博 当前评论 0 条。

项目中时常会应用到HTML富文本编辑器,例如:后台项目中文章内容管理、产品详情信息管理、评论回复等功能版块都会多多少少应用到;所以在这里整理下配置安装过程,TinyMCE相对配置简单,仅供参考。

在PC项目中Angular普遍会应用到后台管理系统项目中,对于后台或多或少会应用到HTML文本编辑器,最多的就是HTML文本信息,我们需要对其排版美化处理渲染到前台显示区域,这时我们就会用到富文本编辑器进行管理操作。

以前Angular项目中使用过百度UEditor,功能挺丰富,感觉UI不太美观,目前好像也不更新了,同时配置在NG6.x遇到问题了,索性放弃,选择TinyMCE,感觉还是比较简单,这里就记录下,仅供参考(上传图片暂时接口没写好,没测,后续再说)。

TinyMCE富文本编辑器示例图

测试环境: Angular6.1.0 工具:VScode

1、首先在VSCODE项目目录下执行命令:

npm install @tinymce/tinymce-angular

2、安装完毕后,将其导入到根模块或共享模块中。

import { EditorModule } from '@tinymce/tinymce-angular';

3、在需要显示的组件html中引入

<editor [init]="initTool" [(ngModel)]="form.content"></editor>

4、initTool配置工具,在ts中我们设置所需plugins,具体可以参考官方文档。

initTool = {
  selector: 'textarea',
  height: '400',
  fontsize_formats: '10px 12px 14px 18px 24px 36px',
  plugins : [
    'preview advlist autolink link image lists textcolor hr table emoticons code colorpicker codesample',
  ],
  toolbar: 'code insertfile undo redo | fontselect fontsizeselect | bold italic underline strikethrough | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link unlink image | preview media fullpage | forecolor backcolor codesample emoticons',
  language_url: 'assets/tinymce/langs/zh_CN.js',
  image_caption: true
};

这一步我们运行NG项目后,已经可以看到编辑器了,由于加载的plugins默认是官方的,我们可以将整个文档下载到本地自己的项目中归入assets文件夹下。

assets/tinymce
------📂langs // 这里放置汉化文件
------------📂:https://www.tiny.cloud/docs/configure/localization/
------📂plugins
------📂skins
------📂themes
------📂jquery.tinymce.min.js
------📂license.txt
------📂tinymce.min.js

最后,我们在项目的根目录src/index.html中加载主js文件

<script src="assets/tinymce/tinymce.min.js"></script>

运行后,方可看到plugins js文件均已加入自己的服务器。

如果需要隐藏或去除右下角的版权信息“POWERED BY TINYMCE”或汉化版本的“由 TINYMCE驱动”字样,只需在初始化时添加branding:false即可。

initTool = {
  // ...
  branding: false,
  // ...
};

扩展有效元素

部分元素在源码输入后会被自动清空的问题。e.g. 文档中插入SVG元素,默认情况下会被自动清空。

extended_valid_elements: 'svg[*],defs[*],pattern[*],desc[*],metadata[*],g[*],mask[*],path[*],line[*],marker[*],rect[*],circle[*],ellipse[*],polygon[*],polyline[*],linearGradient[*],radialGradient[*],stop[*],image[*],view[*],text[*],textPath[*],title[*],tspan[*],glyph[*],symbol[*],switch[*],use[*]',

上传图片简单配置

/*服务器接口地址*/
images_upload_url: 'http://localhost:3000/upload',
automatic_uploads: true
/*服务器端保存图片成功后,将图片地址返回即可*/
{location: imgPath}

上传图片后会自动添加widthheight属性(图片宽高尺寸),若不想自带宽高属性值,可以在配置对象里添加如下即可。

// <img src="***.jpg" width="640px" height="400px">
// 取消上述示例width与height,在上传图片插入时。
image_dimensions: false

其他配置

如style样式被自动过滤掉~

valid_elements: '*[*]',
valid_children: '*[*]',
extended_valid_elements: 'style,link[href|rel],script',
custom_elements: 'style,link,~link,script',

Angular TinyMCE 富文本编辑器 Angular6.x集成TinyMCE Angular2 配置文本编辑器 HTML富文本编辑器配置 隐藏版权 上传图片

上一篇:

下一篇: