div contenteditable 富文本字数限制_据说这是一个革命性的富文本编辑框架——Slate...

介绍

Slate 是一个完全可定制的富文本编辑框架。通过 Slate,你可以构建出类似 Medium、Dropbox Paper 或者 Canvas 这样使用直观、富交互、体验也已成为 Web 应用标杆的编辑器。Slate 本身并不是一个编辑器,而是一套在 React 和 Immutable 的基础上,用于操作富文本数据的框架。基于 Slate 实现一个富文本编辑器,相当于是使用 React(视图层)+ Immutable(数据层)开发一个普通 Web 应用,Slate相当于Controller。


395b5c77af7ecedfb48f3943f028fa51.png

地址

Github:

https://github.com/ianstormtaylor/slate#

文档:

https://docs.slatejs.org/

在线示例:

https://www.slatejs.org/#/rich-text


db537e0ca0c7f1310a75fcd88ca5f220.png

快速入门

  • 安装

使用npm包管理


npm install slate slate-react

//确保安装了react的依赖npm install react react-dom immutable

  • 导入组件

Slate 开放了一套用于构建编辑器的模块。其中,最重要的是 Editor 组件:


// 导入 Slate Editorimport { Editor } from 'slate-react'

  • 为了省事,我将官网的Demo下载下来进行演示

28b7183f6c700768c98a66008167dd32.png

npm installnpm start

启动的时候我第一次失败了,然后重新启动下就行了,然后打开浏览器localhost:8080


  • 富文本

71146f132f3ddaacde8c9f430992519c.png

  • 列表项中的呈现复选框

c81e120163c19af58d4940189e3a6693.png

  • 代码高亮

204ccbe40ac3b2c5d2f5d61776778b5d.png

  • 排版布局

5e36468e5928e08c60afe7acc6480264.png

  • 嵌入功能

e9e0eb190242c039c4429d0a0bcd3631.png

  • 表情

7417cebbf82521cd1abcf148bc3e0bd3.png

  • 强制布局

627c4da95abacfdf4022b79cec20543d.png

  • 历史撤回和重做

8ff83b31ee484f12836816a5e9c7ce56.png

  • 悬停菜单

ca76ce374b52598b9f5038d4992186af.png

  • 图片和链接

b8567729c6e1d98c72bcba1a40b6760f.png

3052f0c3d99d1cb3bc4a1d41dad5696e.png

  • Markdown 预览

63fd674bf1e6b9d8b9868f53458fd7a3.png

  • 所见即所得的Markdown

通过简单的语法实现Markdown的编写


7cbb4727fbda9748d67498af4ab5442f.png

  • HTML粘贴

你可以从别的网站直接粘贴带有样式的文本


961f115246b476e3ac3f7f899e0636b1.png

  • 占位符(Placeholders)

写过html标签的都知道


c3bbf3a8dbf92e049bf79240f1ff9b09.png

  • 文本编辑

类似


461d48c2bc72032ef63a7818d5478f76.png

  • 搜索高亮

3de15091454be9d1fa5163e83700a220.png

  • 多个编辑器同步

f3533d0caad75f6121f5c5b8b6a9be3c.png

  • 表格

d44bb13bfaadc5b7c8eb68a6fca22353.png

  • 版本记录功能

可以在应用某些更改后保存新版本,然后随时回滚到以前的版本


bba59d69427804df853647f6dc008c56.png

为什么使用Slate?

以下是开发者的一些说明(文档有中文版):

https://doodlewind.github.io/slate-doc-cn/reference/slate/change.html


  • 编辑器硬编码了文档的结构规范,难以定制。

类似加粗和斜体的结构可以开箱即用,但评论、嵌入内容以及更多的定制性需求呢?

  • 对文档的编程式变换非常错综复杂。

用户的编写体验可能不错,但在执行编程式变更时却不必要地复杂,而这对于构建高级的编辑行为至关重要。

  • 对 HTML、Markdown 等内容的序列化支持看起来像是事后加上的。

这是一个非常常见的使用场景,但要实现将文档转换为 HTML 或 Markdown 的简单功能都需要编写大量的模板代码。

  • 重新学习一个新的视图层效率不高且十分受限。

各种编辑器在重新发明视图层的轮子,而非使用 React 这样已有的技术方案。你必须学习一套带着自有限制和陷阱的新系统。

  • 对协同编辑没有预先设计好的支持。

编辑器内部的数据结构使其无法用于实时、协作的编辑场景中,除非重写编辑器。

  • 代码仓库是单体的,而非小而可复用的。

许多编辑器没有对外开放本应为开发者所复用的内部工具,以至于不得不重新发明轮子。

  • 无法构建复杂而存在嵌套关系的文档。

不少编辑器是围绕简单的【扁平】文档结构设计的,这使得表格、嵌入内容和字幕等内容难以理解,有时甚至无法实现。

总结

Slate是一个可以高度定制化博众家之所长的富文本编辑器框架,其强大之处远不是本文所展现的这一点,你可以使用它来创建复杂且优雅的富文本编辑器,相对其他很多编辑器本身来说非常的灵活,文档也非常的详细,目前也正在不断地迭代当中,对富文本编辑器定制化需求比较高的可以尝试,希望能对你有所帮助!


9b0ad845b02e33636633dbc002ca7770.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值