Contribute to this guide

指南特殊字符

特殊字符功能使您可以插入数学运算符货币符号标点符号图形符号(如箭头或项目符号)或通常无法从键盘访问的 Unicode 字母(如变音符其他变音符号)。该功能还支持表情符号

# 演示

使用以下编辑器中的特殊字符工具栏按钮 特殊字符 打开一个 可配置 面板,其中包含一个可选择特殊字符的表格。

欧元外汇参考汇率

截至 2020 年 2 月 10 日

所有货币均以欧元 (€) 为基准货币进行报价

  • 货币:美元,符号:$,现汇:1.0582
  • 货币:英镑,符号:£,现汇:0.8639
  • 货币:印度卢比,符号:,现汇:88.0845
  • 货币:日元,符号:¥,现汇:157.7100
  • 货币:俄罗斯卢布,符号:,现汇:117.2010
  • 货币:土耳其里拉,符号:,现汇:29.3393

此演示展示了有限的功能集。访问 功能丰富的编辑器示例 以查看更多实际应用。

# 安装

⚠️ 新的导入路径

42.0.0 版 开始,我们更改了导入路径的格式。本指南使用新的、更短的格式。如果您使用的是 CKEditor 5 的旧版本,请参考 旧版设置中的包 指南。

安装编辑器 后,将该功能添加到您的插件列表和工具栏配置中

// Core plugin provides the API for the management of special characters and their categories.
// The other provide a basic set of special characters.
import { ClassicEditor, SpecialCharacters, SpecialCharactersEssentials } from 'ckeditor5';

ClassicEditor
    .create( document.querySelector( '#editor' ), {
        plugins: [ SpecialCharacters, SpecialCharactersEssentials, /* ... */ ],
        toolbar: [ 'specialCharacters', /* ... */ ],
    } )
    .then( /* ... */ )
    .catch( /* ... */ );

# 配置

默认情况下,已定义了一些特殊字符类别。您可以通过添加新类别、扩展现有类别或完全删除它们来轻松自定义 WYSIWYG 编辑器安装中可用的特殊字符。

# 添加新类别

可以使用 SpecialCharacters#addItems() 函数定义一个新的特殊字符类别。

例如,以下插件将“表情符号”类别添加到特殊字符下拉菜单。

import { ClassicEditor, SpecialCharacters, SpecialCharactersEssentials } from 'ckeditor5';

function SpecialCharactersEmoji( editor ) {
    editor.plugins.get( 'SpecialCharacters' ).addItems( 'Emoji', [
        { title: 'smiley face', character: '😊' },
        { title: 'rocket', character: '🚀' },
        { title: 'wind blowing face', character: '🌬️' },
        { title: 'floppy disk', character: '💾' },
        { title: 'heart', character: '❤️' }
    ], { label: 'Emoticons' } );
}

ClassicEditor
    .create( document.querySelector( '#editor' ), {
        plugins: [
            SpecialCharacters, SpecialCharactersEssentials, SpecialCharactersEmoji,
            // More plugins.
            // ...
        ],
        toolbar: [ 'specialCharacters', /* ... */ ],
    } )
    .then( /* ... */ )
    .catch( /* ... */ );

将上述插件添加到编辑器配置后,新类别将出现在特殊字符下拉菜单中。

特殊字符的标题在整个特殊字符集中必须是唯一的。

SpecialCharacters#addItems() 方法的第三个参数是可选的。您可以使用它来指定显示为类别名称的标签。当您的编辑器使用英语以外的语言时,这将很有用。查看 UI 语言指南 以了解更多信息。

以下是一个基于上面示例的演示。使用特殊字符工具栏按钮 特殊字符,然后从下拉菜单中选择“表情符号”。这将使您能够将表情符号插入内容中。

轻松构建您的 CKEditor 5。🌬 选择一种编辑器类型,并通过 5 个简单的步骤自定义其插件、工具栏和语言。😊

新的 CKEditor 5 在线构建器 终于来了!🚀

# 向现有类别添加字符

通过使用 SpecialCharacters#addItems() 函数,您还可以向现有类别添加新的特殊字符。

import { ClassicEditor, SpecialCharacters, SpecialCharactersEssentials } from 'ckeditor5';

function SpecialCharactersExtended( editor ) {
    editor.plugins.get( 'SpecialCharacters' ).addItems( 'Mathematical', [
        { title: 'alpha', character: 'α' },
        { title: 'beta', character: 'β' },
        { title: 'gamma', character: 'γ' }
    ] );
}

ClassicEditor
    .create( document.querySelector( '#editor' ), {
        plugins: [
            SpecialCharacters, SpecialCharactersEssentials, SpecialCharactersExtended,

            // More plugins.
            // ...
        ],
        toolbar: [ 'specialCharacters', /* ... */ ],
    } )
    .then( /* ... */ )
    .catch( /* ... */ );

特殊字符的标题在整个特殊字符集中必须是唯一的。

以下是一个基于上面示例的演示。使用特殊字符工具栏按钮 特殊字符,然后从下拉菜单中选择“数学”。您将看到该类别现在包含由上面配置引入的附加希腊字母。

希腊字母表字母

希腊字母表字母用作数学和科学符号。

以下是一些您可以用来表示三角形中角度的希腊字母的示例

  • 字母名称:alpha,希腊字母:α
  • 字母名称:beta,希腊字母:β
  • 字母名称:gamma,希腊字母:γ

# 删除类别

特殊字符功能将每个类别作为单独的插件公开。虽然 SpecialCharactersEssentials 插件可用于方便地包含所有类别,但您可以通过添加包含特定类别的单个插件来自定义类别列表。

默认情况下,@ckeditor/ckeditor5-special-characters 包提供以下类别分组的特殊字符。

例如,您可以通过选择 SpecialCharactersMathematicalSpecialCharactersCurrency 插件来将类别限制为“数学”和“货币”。

import { ClassicEditor, SpecialCharacters, SpecialCharactersCurrency, SpecialCharactersMathematical } from 'ckeditor5';

ClassicEditor
    .create( document.querySelector( '#editor' ), {
        plugins: [
            SpecialCharacters, SpecialCharactersCurrency, SpecialCharactersMathematical,

            // More plugins.
            // ...
        ],
        toolbar: [ 'specialCharacters', /* ... */ ],
    } )
    .then( /* ... */ )
    .catch( /* ... */ );

下面您可以看到一个基于上面示例的演示。单击特殊字符工具栏按钮 Special characters 后,您会发现与本页上的其他编辑器相比,它包含的类别更少。

欧元外汇参考汇率

截至 2020 年 2 月 10 日

所有货币均以欧元 (€) 为基准货币进行报价

  • 货币:美元,符号:$,现货:1.0951
  • 货币:英镑,符号:£,现货:0.8463
  • 货币:印度卢比,符号:,现货:78.1070
  • 货币:日元,符号:¥,现货:120.1800
  • 货币:俄罗斯卢布,符号:,现货:70.1120
  • 货币:土耳其里拉,符号:,现货:6.5897

# 类别排序

UI 中类别的顺序由它们注册的顺序决定。但是,根据您使用编辑器的上下文,您可能希望更改此顺序,以便更容易访问常用字符。

可以使用 order 数组自定义类别顺序。

ClassicEditor
    .create( document.querySelector( '#editor' ), {
        plugins: [ SpecialCharacters, SpecialCharactersEssentials, ... ],
        specialCharacters: {
            order: [
                'Text',
                'Latin',
                'Mathematical',
                'Currency',
                'Arrows'
            ]
        }
    } )
    .then( /* ... */ )
    .catch( /* ... */ );

# 通用 API

SpecialCharacters 插件注册 UI 按钮组件 ('specialCharacters')。

我们建议使用官方 CKEditor 5 检查器 进行开发和调试。它将为您提供有关编辑器状态的大量有用信息,例如内部数据结构、选择、命令等等。

# 贡献

该功能的源代码可在 GitHub 上的 https://github.com/ckeditor/ckeditor5/tree/master/packages/ckeditor5-special-characters 中找到。