使用CKEditor 5编辑器创建优质内容的完整指南

一、为什么选择CKEditor 5

CKEditor 5 是一个强大的富文本编辑器,可以帮助你创建各种类型的内容,并有许多可定制的选项。

对比于其他编辑器,CKEditor 5 有以下优点:

1、易于集成:与各种框架和库集成无需繁琐的设置,可以轻松实现。

2、丰富的可定制选项:可以根据需要对文本编辑器进行定制和调整,如添加自定义按钮或菜单栏项。

3、跨浏览器兼容性:CKEditor 5 在主要的现代浏览器中工作正常,并按照最新的Web标准进行开发。

因此,CKEditor 5是一个非常棒的工具,可以帮助您将文本编辑的美学和功能提高到一个新的水平。

二、CKEditor Editor的基本使用

CKEditor 5可以快速创建各种类型的内容。下面介绍如何创建一个基本的文本编辑器:

<!-- 引入CKEditor 5 --> 
<script src="https://cdn.cke-cs.com/ckeditor5/26.0.0/classic/ckeditor.js"></script>

<!-- 创建编辑器 -->
<textarea name="editor"></textarea>

<script>
    ClassicEditor
        .create( document.querySelector('textarea'))
        .catch( error => {
            console.error( error );
        } );
</script>

上面的代码将创建一个基本的CKEditor 5编辑器,并将其附加到id为”editor”的文本区域中。

三、自定义工具栏和按钮

CKEditor 5的一个很好的特性是它可以轻松地自定义编辑器的布局和功能。下面是一些步骤来自定义工具栏和按钮:

1、使用允许自定义的构建

CKEditor 5有两种构建类型:经典构建和基础构建。如果您需要自定义工具栏和按钮,则必须使用经典构建。创建一个自定义的CKEditor 5构建文件:

npx create-ckeditor5-app my-custom-build

cd my-custom-build

npm install

npm start 

2、添加自定义控件

您可以在工具栏上添加自定义按钮、下拉列表和许多其他控件。例如,下面的代码将添加一个名为“insertImage”的按钮,使用户可以插入图像:

ClassicEditor
    .create( document.querySelector( '#editor' ), {
        toolbar: {
            items: [
                'heading',
                '|',
                'bold',
                'italic',
                'link',
                'bulletedList',
                'numberedList',
                'insertImage',
                'blockQuote',
                'undo',
                'redo'
            ]
        },
        image: {
            toolbar: [
                'imageStyle:full',
                'imageStyle:side',
                '|',
                'imageTextAlternative'
            ]
        },
        language: 'en'
    } )
    .then( editor => {
        window.editor = editor;

        editor.model.document.on( 'change:data', () => {
            console.log( Array.from( editor.model.document.getChanges() ) );
        } );
    } )
    .catch( error => {
        console.error( error );
    } );

3、调整信息窗口

// 编辑器上方的信息窗口
<div class="ck-editor__top"> 

// 工具栏
<div class="ck-editor__toolbar">

// 工具栏项目
<div class="ck-toolbar">

// 项目容器
<div class="ck-tooltbar__item">

// 项目
<button class="ck-button ck-heading__button-level-1" title="H1">H1</button>

</div>
</div>
</div> 

四、集成CKEditor5和服务器保存

CKEditor 5 与服务器的相互作用是通过所谓的适配器完成的。它们负责将 CKEditor 5 接口和您的服务器端框架之间的差距抹平。

下面是如何与服务器集成的示例:

1、客户端上的配置:

ClassicEditor
    .create( document.querySelector( '#editor' ), {
        ckfinder: {
            // 配置CKFinder URL
            uploadUrl: '/ckfinder/core/connector/php/connector.php?command=QuickUpload&responseType=json'
        },
        // 其他配置信息
    } )
    .catch( error => {
        console.error( error );
    } );

2、添加CKFinder服务器

CKFinder是一个用于文件管理和上传的独立库。要使用CKFinder,您需要添加以下代码:

<!-- 引入CKFinder配置文件 -->
<script src="/ckfinder/ckfinder.js"></script>

<!-- 配置CKFinder -->
<script>
    CKFinder.config( {
        // 配置参考文档 https://ckeditor.com/docs/ckfinder/
        // ...
    } );
</script>

3、处理文件上传

// CKFinder路径
$path = '/ckfinder/userfiles/images/';

// 获取上传文件的数据
$data = file_get_contents( 'php://input' );

// 保存文件
file_put_contents( realpath( '.' ) . $path . $fileName, $data );

// 返回文件的URL
echo json_encode( [ 'default' => $publicPath . $fileName ] );

添加上述代码,并使用您自己的后端技术将所需的服务器代码插入即可。

五、使用CKEditor 5插件扩展功能

CKEditor 5 有可能不会满足您的每个需求,但是,您可以通过添加插件来扩展对编辑器的支持。

下面让我们来看一下如何为CKEditor 5添加插件的示例:

// 在编辑器中添加插件
import Alignment from '@ckeditor/ckeditor5-alignment/src/alignment';

ClassicEditor
    .create( document.querySelector( '#editor' ), {
        plugins: [ Alignment ],
        toolbar: [ 'alignment:left', 'alignment:right' ]
    } )
    .then( editor => {
        console.log( editor );
    } )
    .catch( error => {
        console.error( error );
    } );

上述代码将添加Alignment插件到CKEditor 5,并通过工具栏添加对齐左/右的选项。

六、使用CKEditor 5创建自定义微件

CKEditor 5 运行时提供了一个内置的小部件系统,可用于支持自定义 UI 小部件。您可以根据自己的要求自己创建小部件。

下面是一个简单的在编辑器中添加自定义微件的示例:

// 注册自定义小部件
editor.ui.componentFactory.add( 'myPlugin', locale => {
    // 创建小部件
    const container = new ContainerElement();

    // 设置小部件的渲染模板
    // ...

    // 将该微件添加到工具栏中
    editor.ui.get( 'MyCustomPlugin' )
        .setChild( 'myPlugin', container );
} ); 

上述代码将添加一个名为”MyPlugin”的自定义微件,并将其附加到 CKEditor 5 的工具栏上。

七、结论

使用CKEditor 5 编辑器创建优质的内容既简单又有趣。本指南总结了必要的步骤和工具来开始使用该编辑器,设计和自定义文本编辑器,并集成该编辑器与服务器。同时,您可以通过添加插件或创建自定义微件等来扩展编辑器的功能,以满足您的具体需求。

原创文章,作者:GWGLY,如若转载,请注明出处:https://www.506064.com/n/362709.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
GWGLYGWGLY
上一篇 2025-02-27 19:28
下一篇 2025-02-27 19:28

相关推荐

  • Java JsonPath 效率优化指南

    本篇文章将深入探讨Java JsonPath的效率问题,并提供一些优化方案。 一、JsonPath 简介 JsonPath是一个可用于从JSON数据中获取信息的库。它提供了一种DS…

    编程 2025-04-29
  • 运维Python和GO应用实践指南

    本文将从多个角度详细阐述运维Python和GO的实际应用,包括监控、管理、自动化、部署、持续集成等方面。 一、监控 运维中的监控是保证系统稳定性的重要手段。Python和GO都有强…

    编程 2025-04-29
  • Python wordcloud入门指南

    如何在Python中使用wordcloud库生成文字云? 一、安装和导入wordcloud库 在使用wordcloud前,需要保证库已经安装并导入: !pip install wo…

    编程 2025-04-29
  • Python应用程序的全面指南

    Python是一种功能强大而简单易学的编程语言,适用于多种应用场景。本篇文章将从多个方面介绍Python如何应用于开发应用程序。 一、Web应用程序 目前,基于Python的Web…

    编程 2025-04-29
  • Python小波分解入门指南

    本文将介绍Python小波分解的概念、基本原理和实现方法,帮助初学者掌握相关技能。 一、小波变换概述 小波分解是一种广泛应用于数字信号处理和图像处理的方法,可以将信号分解成多个具有…

    编程 2025-04-29
  • 打造照片漫画生成器的完整指南

    本文将分享如何使用Python编写一个简单的照片漫画生成器,本文所提到的所有代码和技术都适用于初学者。 一、环境准备 在开始编写代码之前,我们需要准备一些必要的环境。 首先,需要安…

    编程 2025-04-29
  • 如何在Java中拼接OBJ格式的文件并生成完整的图像

    OBJ格式是一种用于表示3D对象的标准格式,通常由一组顶点、面和纹理映射坐标组成。在本文中,我们将讨论如何将多个OBJ文件拼接在一起,生成一个完整的3D模型。 一、读取OBJ文件 …

    编程 2025-04-29
  • Python字符转列表指南

    Python是一个极为流行的脚本语言,在数据处理、数据分析、人工智能等领域广泛应用。在很多场景下需要将字符串转换为列表,以便于操作和处理,本篇文章将从多个方面对Python字符转列…

    编程 2025-04-29
  • Python初学者指南:第一个Python程序安装步骤

    在本篇指南中,我们将通过以下方式来详细讲解第一个Python程序安装步骤: Python的安装和环境配置 在命令行中编写和运行第一个Python程序 使用IDE编写和运行第一个Py…

    编程 2025-04-29
  • Python起笔落笔全能开发指南

    Python起笔落笔是指在编写Python代码时的编写习惯。一个好的起笔落笔习惯可以提高代码的可读性、可维护性和可扩展性,本文将从多个方面进行详细阐述。 一、变量命名 变量命名是起…

    编程 2025-04-29

发表回复

登录后才能评论