指南格式刷

格式刷功能可以让您复制文本格式(例如粗体、斜体、字体大小、颜色等),并将其应用于编辑文档中的其他位置。它有助于保持格式一致,并加快创建丰富内容的速度。

此高级功能是 生产力包 的一部分。生产力包包含在我们的商业许可证中。如果您拥有有效的 CKEditor 5 许可证,请联系您的客户经理以检查您的资格。一些旧版许可证即使有效也不符合生产力包的资格。 联系我们 以了解更多详细信息。

您也可以注册 CKEditor 高级功能 30 天免费试用 以测试此功能。

# 演示

单击要复制格式的文本,然后使用涂刷格式工具栏按钮 格式刷 复制样式。然后使用鼠标选择目标文本以应用格式。请参见下面的演示以获取有关使用此功能的更多提示。

上市产品

  图片 名称 描述 可用性 价格
1. 新品!
Ultima Hikers 适用于所有地形类型和所有天气条件的高品质皮靴。舒适且价格合理。 $69.99 $49.99
2. 新品!
Teen Spirit 闪亮的黄色靴子,让人感觉像是来自过去,但它们是城市和野外步行的一种彻底的现代解决方案。 $49.99 $39.99
3. 新品!
Easy Lady 女士米色靴子,既优雅又实用。高鞋帮在办公室大厅和乡村后院都看起来很棒。 $79.99 $69.99
4. 新品!
RoughGyvers 由可持续生态皮革制成的全天候靴子。全年适合所有户外活动。 $49.99 $39.99

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

  • 要复制格式:将光标置于具有某些格式的文本中,然后单击涂刷格式工具栏按钮。请注意,鼠标光标将变为 格式刷文本光标

  • 要使用复制的格式进行涂刷:单击文档中的任何单词,新的格式将被应用。或者,您也可以选择文本片段(例如整个段落),而不是单击单个单词。请注意,在应用格式后,光标将恢复为默认光标。

  • 要使用相同的格式继续涂刷:打开工具栏下拉菜单并启用连续涂刷模式。复制后,可以使用相同的格式在不同的位置多次应用,直到单击涂刷格式按钮(然后光标将恢复为常规光标)。

# 安装

⚠️ 新的导入路径

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

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

import { ClassicEditor } from 'ckeditor5';
import { FormatPainter } from 'ckeditor5-premium-features';

ClassicEditor
    .create( document.querySelector( '#editor' ), {
        // Load the plugin.
        plugins: [ FormatPainter, /* ... */ ],

        // Provide the licence key (see explanation below)
        licenseKey: '<YOUR_LICENSE_KEY>',

        // Display the paint formatting button in the toolbar.
        toolbar: [ 'formatPainter', /* ... */ ],
    } )
    .then( /* ... */ )
    .catch( /* ... */ );

阅读有关 安装插件工具栏配置 的更多信息。

# 激活功能

要使用此高级功能,您需要使用正确的凭据激活它。有关详细信息,请参阅 许可证密钥和激活 指南。

# 集成

格式刷功能仅支持 文本属性,其中 isFormatting 属性 设置为 true

如果您希望您的自定义功能与格式刷兼容,请确保在您的功能的 模式 配置中将 isFormatting 属性设置为 true

// Allow myAttribute attribute on text nodes.
editor.model.schema.extend( '$text', { allowAttributes: 'myAttribute' } );

// Integration with the format painter feature.
editor.model.schema.setAttributeProperties( 'myAttribute', {
isFormatting: true
} );

如果您希望为现有的不支持格式刷的功能(例如 链接功能)启用格式刷,请在相关的文本属性上将 isFormatting 属性设置为 true

ClassicEditor
    .create( document.querySelector( '#editor' ), {
        // Load the plugin.
        plugins: [ FormatPainter, /* ... */ ],

        // Display the paint formatting button in the toolbar.
        toolbar: [ 'formatPainter', /* ... */ ],
    } )
    .then( editor => {
        // Enable format painter for links. The link feature uses the "linkHref" text attribute.
        editor.model.schema.setAttributeProperties( 'linkHref', {
            isFormatting: true
        } );
    } );

您可以使用 CKEditor 5 检查器 来了解其他功能带来的内容的模型结构。

# 限制

并非所有格式都能由格式刷默认处理。

  • 目前不支持使用块级格式(如 标题图像样式)进行刷涂。
    格式刷也不处理 链接文本高亮。这是因为在 CKEditor 5 中,它们被视为内容的一部分,而不是文本格式。但是,如果需要,您可以 解决此问题

以下是一些可以帮助您格式化内容的 CKEditor 5 功能。

# 通用 API

FormatPainter 插件注册

  • 用于工具栏的 'formatPainter' UI 按钮(下拉菜单)组件。
  • CopyFormatCommand 实现的 'copyFormat' 命令。
  • PasteFormatCommand 实现的 'pasteFormat' 命令。

您可以使用编辑器 API 复制当前文档选择的格式。

editor.execute( 'copyFormat' );

复制的格式存储在 copyFormat 命令的值 中。

// Logs the copied formatting.
console.log( editor.commands.get( 'copyFormat' ).value );

可以使用以下代码将先前复制的格式应用于其他位置。

editor.execute( 'pasteFormat' );

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