关于Baklib的编辑器Editorjs/:s

2019-11-14 1036

我们为什么会选择EditorJS作为Baklib的编辑器。

Baklib是一个面向未来的先进文档存储工具,支持结构化解构以实现人工智能语义识别,支持多终端自适应预览的流畅体验。固我们放弃了类Markdown和传统富文本编辑器功能,采用支持结构化块样式编辑的Editorjs。
面向未来的多终端用户体验
Editor.js是下一代块样式的Web编辑器,可返回干净的JSON数据输出,而HTML标记输出数据。更重要的是,Editor.js设计为可扩展和可插入API。
因此,有几个主要功能:
  1. 清除数据输出
  2. API可插拔
  3. 开源的

block-styled块样式是什么

在其他编辑器中,工作区由单个contenteditable元素提供,您可以在其中创建不同的HTML标记。我们所有人都看到了永久错误,这些错误带有移动的文本片段或缩放的图像,而页面部分在跳跃和抽动。或者突出显示文本的大部分内容,以防万一您只想让几个单词成为标题或粗体。
Editor.js工作空间由单独的块组成:段落,标题,图像,列表,引号等。它们每个都是由Plugin提供并由Editor's Core统一的独立的contenteditable元素(或更复杂的结构)。
同时,箭头导航,复制和粘贴,跨块选择等最有用的功能几乎与熟悉的编辑器一样工作。

什么是干净数据

但是,更有趣的是,如上所述,Editor.js返回的是干净数据而不是HTML标记。看一下这个例子。
{ "time" : 1550476186479, "blocks" : [ { "type" : "paragraph", "data" : { "text" : "The example of text that was written in <b>one of popular</b> text editors." } }, { "type" : "header", "data" : { "text" : "With the header of course", "level" : 2 } }, { "type" : "paragraph", "data" : { "text" : "So what do we have?" } } ], "version" : "2.8.1" }
如您所见,仅需要数据:结构块列表及其内容描述。
您可以使用此数据轻松在PC电脑、移动端、手表、桌面应用程序中呈现,以及传送数据给音频阅读器,会话系统,AMP,RSS创建模板,创建聊天机器人等。
同样,干净的数据对于后端处理也可能有用:清理,验证,注入广告或其他东西,提取标题,从Image Blocks覆盖社交网络等。

API可插拔吗?

A key value of the Editor is the API. All main functional units of the editor — Blocks, Inline Formatting Tools, Block Tunes — are provided by external plugins that uses Editor's API.
编辑器的核心功能就是API,编辑器的所有功能单元如:块Blocks、行内格式化工具、块调整Block Tunes等,都是通过API的方式提供。
我们决定将所有这些工具提取为单独的脚本,以使编辑器的Core更加抽象,并使API更加强大。您自己的插件可以使用API​​来实现您面临的任何挑战和任务。
同时,API被创建为易于理解和易于使用。

开源?

Editor.js不仅仅是一个编辑器。这是一个由开发人员和贡献者组成的大型开源社区。任何人都可以提出改进或错误修复的建议。任何人都可以创建新的酷API功能和插件。
我们将为每个Editor.js插件开发人员提供支持:最佳解决方案将收集到令人敬畏的列表中,并推广到社区。我们可以一起创建一大套不同的块,内联工具,块调整,它们可以完成各种各样的任务。
了解更多Editor.js内容,请点击: https://opencollective.com/editorjs