npm 包 @ckeditor/ckeditor5-remove-format 使用教程

阅读时长 7 分钟读完

前言

随着前端技术的不断发展,越来越多的富文本编辑器被应用于各种业务场景。然而,由于富文本编辑器的处理机制、样式等各异,常常会带来难以预料的问题,比如粘贴过来的文本会带有各种奇怪的样式,或者用户使用了不符合业务规范的字体大小、颜色等。这时候,我们通常需要一个去格式化工具来过滤这些奇怪的样式,保证用户输入的内容的一致性和规范性。在这篇文章中,我将介绍一个非常实用的 npm 包:@ckeditor/ckeditor5-remove-format,它能够自动过滤 HTML 文本中的样式,非常适合在前端项目中使用。

@ckeditor/ckeditor5-remove-format 简介

@ckeditor/ckeditor5-remove-format 是 CKEditor 5 的一个插件,它提供了简单易用的 API,能够方便地过滤输入或者输出的文本,去除其中的所有样式。它支持的文本格式有 HTML、富文本编辑器的数据格式等,常常被应用于富文本编辑器、文本处理和数据格式化等方面。

@ckeditor/ckeditor5-remove-format 的主要功能如下:

  • 去除所有 HTML 标签和属性:将富文本编辑器所产生的 HTML 文本,自动去除所有标签和属性,只保留纯文本。例如,将 <p><strong><em>这是一段带样式的文本</em></strong></p> 转化为 这是一段带样式的文本
  • 去除所有样式类和样式属性:在 HTML 标签中,有时候会有样式类或者样式属性的设置,这会影响到我们输入文本的样式,比如字体、颜色等。@ckeditor/ckeditor5-remove-format 可以过滤这些干扰项,对于输入的文本只保留原本的样式。例如,<p class="alert"><strong style="color: red;">这是一段带样式的文本</strong></p> 会被过滤成 这是一段带样式的文本

@ckeditor/ckeditor5-remove-format 还支持配置项,比如可以自定义需要保留的标签和属性等。

安装和使用

@ckeditor/ckeditor5-remove-format 可以通过 npm 安装,使用前需要先安装 CKEditor 5。下面是具体的安装和使用步骤:

1. 安装 CKEditor 5

使用 npm 安装 CKEditor 5:

2. 安装 @ckeditor/ckeditor5-remove-format

使用 npm 安装 @ckeditor/ckeditor5-remove-format:

3. 编写代码

下面是一个基础的使用示例:

-- -------------------- ---- -------
------ ------------- ---- ------------------------------------
------ ------------ ---- ------------------------------------

--------------------- ----------------------- --------- -- -
    -------- - ------------ --
    -------- - -------------- -
- -
------ ------ -- -
    ------------ ------- --- ------------- ------ --
- -
------- ----- -- -
    -------------- ----------- --
- --

这段代码会创建一个 CKEditor 5 编辑器,并加载 RemoveFormat 插件。在 toolbar 中添加了移除格式的按钮。

API

@ckeditor/ckeditor5-remove-format 的 API 能够进一步地控制移除格式的细节。例如,可以设置允许保留的标签和属性等。下面是主要的 API:

RemoveFormatEditing

RemoveFormatEditing 类提供了编辑器的基础功能,可以用于处理编辑器中的文本。它有以下的属性和方法:

RemovalConfig

构造函数参数,一个对象,用于指定去除格式的选项。可选的属性有:

  • allowedTags: string[],用于指定需要保留的标签,默认为 null
  • allowedAttributes: Record<string, string[] | boolean>,用于指定需要保留的属性和值,默认为 null,表示不过滤属性和值。

例如:

removeFormat

方法,用于移除指定范围内的格式。它有以下的参数:

  • start: Position,开始位置。
  • end: Position,结束位置。
  • config?: RemovalConfig,去除格式的选项配置。

例如:

-- -------------------- ---- -------
------ - ------------ - ---- ------------------------------------------------------------

----- ------ - -- -----
----- ------------- - -- ---------

----- ----- - -------------
----- ----- - --------------------------------------------
----- --- - -------------------------------------------

------------- ------ ---- ------------- --

RemoveFormat

RemoveFormat 类是编辑器插件的主要类,它继承自 Plugin 基类。它的实例会被添加到编辑器的插件中,用于响应用户的手动操作。

RemoveFormat 类提供了以下的选项和方法:

config

静态属性,用于指定插件的一些默认选项,如:

-- -------------------- ---- -------
------ ------------ ---- ------------------------------------


------------------- - -
    ------------ - ---- ----- ----- ---- --
    ------------------ -
        ---- - -------- ------- -
    -
--

init

方法,用于初始化插件。

例如:

-- -------------------- ---- -------
------ - ------ - ---- ---------------------------
------ ------------------- ---- ------------------------------------------------------------

------ ------- ----- ------------ ------- ------ -
    ------ --- ---------- -
        ------ - ------------------- --
    -

    ------ -
        ------------ ------------- --- ------------ --
    -
-

总结

总之,@ckeditor/ckeditor5-remove-format 是一个非常实用的 npm 包,特别适合在前端项目中使用。它能够自动去除 HTML 文本中的样式和干扰项,保证输入和输出的文本的一致性和规范性。它还有丰富的 API 和配置,便于开发者进行定制和使用。这篇文章中,我们介绍了它的使用方法和 API,相信读者在日常开发中一定会有所收获。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f3209b43b0ab45f74a8bd4a

纠错
反馈