CKEditor 富文本编辑器

CKEditor 是一款知名的WYSIWYG富文本Web编辑器,WYSIWYG 的全称是what you see is what you get,也就是所见即所得。
富文本是指除了可以在编辑器中输入一般的文本之外, 还可以输入带有样式、格式的文本,以及上传文件以及数学公式等功能。
所见即所得则可以这样理解, 因为要在Web中显示一些样式,势必要用到一些HTML代码标签或者是CSS样式,对于终端的使用者来说,如果不熟悉相关语言的话,编辑代码就很困难了, 所以这类编辑器中输入的内容和最终显示的样式是一样的。目前也有一些比较流行的非所见即所得编辑器, 比如大名鼎鼎的MarkDown, 这些编辑器一般都提供了输入和预览两个部分, 在编辑器中输入带有代码的内容, 在预览窗口查看最终的效果。
CKEditor 历史悠久而且持续在更新和优化,百度也贡献过一个不错的编辑器UEditor,不过自2016年之后就不在更新了。CKEditor 目前的最新版本是CKEditor 5。

CKEditor 5 编辑器类型

考虑不同的使用场景,主要从将工具栏的部分以不同的方式 角度考虑,CKEditor 5提供了以下几种类型的编辑器:

  • Classic editor 经典编辑器, 工具栏位于输入框的上方。

  • Inline editor 内联编辑器 , 默认不显示工具栏, 当输入框获取焦点时,浮动显示工具栏。

  • Balloon editor 泡泡编辑器
    默认不显示工具栏,当选中输入框中的某行时,弹出工具栏

  • Balloon block editor 泡泡块编辑器
    默认不显示工具栏,当选中输入框中的某行时,在左侧有一个小图标块,点击图标时显示编辑器。

  • Document editor 文档编辑器,
    类似Word文档的编辑效果。

CKEditor 5 的下载和安装

相比CKEditor 4版,使用上有一些差别。
CKEditor 5下载的是一个或多个js文件, 官方提供了CKEditor 5的4种下载方式,分别是:

  1. CDN , 内容分发网络的方式, 也就是引用在线的js 文件
  2. npm , 使用JS包管理的方式,从中央库下载。 此方式需要安装Node.js
  3. Online builder, 在线构建, 访问官方的在线构建网站,根据需求选择需要的功能进行构建产生构建后的文件下载。
  4. Zip download 压缩包下载。
    对于初学者来说,这种方式1和方式4比较合适。

1. CDN

<script src="https://cdn.ckeditor.com/ckeditor5/[version.number]/[distribution]/ckeditor.js"></script>
  • [version.number] 是具体的版本号
  • [distribution] 则是不同类型的编辑器, 对应上面5 种类型的编辑器, 该值分别是:
    • classic - 经典编辑器
    • inline - 内联编辑器
    • balloon - 泡泡编辑器
    • balloon-block - 泡泡块编辑器
    • decoupled-document - 文档编辑器
      以引用25.0.0版本的经典编辑器为例, 代码如下:
<script src="https://cdn.ckeditor.com/ckeditor5/25.0.0/classic/ckeditor.js"></script>

2. npm

npm install --save @ckeditor/ckeditor5-build-classic
npm install --save @ckeditor/ckeditor5-build-inline
npm install --save @ckeditor/ckeditor5-build-balloon
npm install --save @ckeditor/ckeditor5-build-balloon-block
npm install --save @ckeditor/ckeditor5-build-decoupled-document

3. Online builder

在线构建的地址是:
https://ckeditor.com/ckeditor-5/online-builder/
以经典编辑器为例,勾选需要功能的页面如下:

4.Zip Download

压缩包下载的地址如下:

https://ckeditor.com/ckeditor-5/download/

该下载页面可以选择不同的编辑器版本,也提供了CDN和npm 的代码块和命令。

快速示例

此处以CDN引用在线js 的方式演示经典编辑器的使用。示例代码如下:

   <!DOCTYPE html>
<html lang="en">
<head><meta charset="utf-8"><title>CKEditor 5 – Classic editor</title><script src="https://cdn.ckeditor.com/ckeditor5/25.0.0/classic/ckeditor.js"></script>
</head>
<body><h1>Classic editor</h1><div id="editor"><p>This is some sample content.</p></div><script>ClassicEditor.create( document.querySelector( '#editor' ) ).catch( error => {console.error( error );} );</script>
</body>
</html>
  • 定义一个id为editor div
  • 使用 ClassicEditor对象的create方法创建编辑器
  • catch 方法用于处理异常
  • 这里的代码写法类似表达是的写法, 一行代码搞定

在线演示地址:

http://jsrun.net/mzaKp/edit

CKEditor快速介绍与入门示例相关推荐

  1. 【Unity 3D 游戏开发】Unity3D 入门 - 工作区域介绍 与 入门示例

    一. 工作区域详解 1. Scence视图 (场景设计面板) scence视图简介 : 展示创建的游戏对象, 可以对所有的游戏对象进行 移动, 操作 和 放置; -- 示例 : 创建一个球体, 控制摄 ...

  2. JVM插桩之一:JVM字节码增强技术介绍及入门示例

    字节码增强技术:AOP技术其实就是字节码增强技术,JVM提供的动态代理追根究底也是字节码增强技术. 目的:在Java字节码生成之后,对其进行修改,增强其功能,这种方式相当于对应用程序的二进制文件进行修 ...

  3. Scala变量介绍及入门示例

    Scala变量 变量是程序的基本组成单位 不论是使用哪种高级程序语言编写程序,变量都是其程序的基本组成单位,比如: object ScalaFuncDemo01 {def main(args: Arr ...

  4. 微信公众号api关注接口php,微信公众平台接口开发入门示例

    本文实例讲述了微信公众平台接口开发入门示例.分享给大家供大家参考.具体如下: 微信公众平台的接口开发是一个现在比较常用的功能了,很多的人都会去了解一下微信公众平台一些简单开发应用,这里就来给大家介绍一 ...

  5. Castle Active Record for .NET2.0快速入门示例

    一.创建Web工程 创建一个Web站点或者Web应用程序,添加对Castle.ActiveRecord.dll的引用. 二.创建需要持久化的业务实体 在.NET2.0下,由于引入了泛型,创建业务实体比 ...

  6. Spring入门示例及相关概念介绍

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! Spri ...

  7. Java日志框架 -- 日志框架介绍、日志门面技术、JUL日志(JUL架构、JUL入门示例、JUL日志级别、JUL日志的配置文件)

    1. 日志的概念 日志文件是用于记录系统操作事件的文件集合,可分为事件日志和消息日志.具有处理历史数据.诊断问题的追踪以及理解系统的活动等重要作用. 2. Java日志框架 问题: 控制日志输出的内容 ...

  8. TIA博途中变长数组的介绍与使用入门示例

    TIA博途中变长数组的介绍与使用入门示例 使用变长数组的注意事项: 接口参数Array[*] of -,实参使用指定类型数组: 可以使用的范围:FC的Input.InOut,FB的InOut: FC或 ...

  9. OUYA游戏开发核心技术剖析OUYA游戏入门示例——StarterKit

    第1章  OUYA游戏入门示例--StarterKit StarterKit是一个多场景的游戏示例,也是OUYA官方推荐给入门开发者分析的第一个完整游戏示例.本章会对StarterKit做详细介绍,包 ...

最新文章

  1. 为什么你那么努力,却很难突破技术瓶颈?
  2. 今天看到一个关于营销学和广告创意研究的文章
  3. Java Native Interface 二 JNI中对Java基本类型和引用类型的处理
  4. mysql主外键引用关系,关于mysql:数据主/外键关系
  5. python压缩文件夹为zip_python打包压缩文件夹zip+组装文件夹
  6. 活动选择(信息学奥赛一本通-T1323)
  7. Redis内核原理及读写一致企业级架构深入剖析1-综合组件环境实战
  8. 注意:ORACLE 11G ADG RAC 这个情况下并不能高可用
  9. C#程序加密工具.Net Reactor教程
  10. 模糊综合评价法(FCE)-快速理解
  11. 读书笔记-大型网站技术架构:核心原理与案例分析
  12. 【HANA系列】SAP 一位SAP培训顾问的建议:SAP HANA应该如何学习?
  13. CF1389G Directing Edges
  14. 给服务器下载补丁及安装补丁
  15. 记一次突如其来的小米前端面试
  16. pandas数据分析给力教程【完整版】(七)
  17. 智能电动车骑行头盔安全帽方案/APP/PCBA/小程序/开发
  18. C10k-problem
  19. 使用 Jackson 操作 JSON 数据
  20. 步步分析爬取知乎用户头像

热门文章

  1. [原创]Nexus5 内核编译烧录过程记录
  2. Jfinal集成Spring
  3. UIlabel 显示模糊
  4. c++数字转化为字符串、字符串转换为数字
  5. mysql collate
  6. PHP 异常处理 throw new exception
  7. 【白皮书分享】2021年智慧城市白皮书:依托智慧服务,共创新型智慧城市.pdf(附下载链接)
  8. Ubuntu 14.04 安装配置 cairo-dock 实现美化+特效
  9. 2022年,图机器学习Graph ML发展到哪了?
  10. bat启动脚本 springboot_Windows系统配置.bat启动spring boot项目jar