尝鲜editor.js编辑器

2,690 阅读2分钟

关于

关于为什么要写editor.js编辑器的文章,是最近在项目中使用到了笔记编辑器.我们对编辑器有些要求,

  • 要所见即所得
  • 同时数据必须干净

而社区大多数都是富文本或者markdown,数据很脏.或者带有特殊字符,或者就是带有html标签,都不符合我们的需求,于是我们便使用到了这款编辑器.

介绍

Editor.js是一个块样式的编辑器,他是以块为基本元素来使用的,每个功能作为插件集成到编辑器中,主要的特点就是得到是干净的json数据而非传统的html标签数据.所以你可以将数据转成你想要的任何格式的数据.

使用

安装

npm i @editorjs/editorjs --save

导入

import EditorJS from '@editorjs/editorjs';
const editor = new EditorJS('editorjs');

这样就可以实例出一个编辑器来了. 默认提供得是最基本的文本功能,当然你可以安装插件来拓展功能,同时官方提供了如何开发插件的api,也可以帮助你定制化自己想要的功能.

链接工具

import EditorJS from '@editorjs/editorjs'; 

const editor = new EditorJS({ 
  /** 
   * Id of Element that should contain the Editor 
   */ 
  holder: 'editorjs', 
})

在tools加入一下更多的工具,工具代码应该放在实例化代码之上. 像这样:


import EditorJS from '@editorjs/editorjs'; 
import Header from '@editorjs/header'; 
import List from '@editorjs/list'; 

const editor = new EditorJS({ 
  /** 
   * Id of Element that should contain the Editor 
   */ 
  holder: 'editorjs', 
  
  /** 
   * Available Tools list. 
   * Pass Tool's class or Settings object for each Tool you want to use 
   */ 
  tools: { 
    header: Header, 
    list: List 
  }, 
})

结尾

本文介绍了一款基于块内容的 editor.js 编辑器,并介绍了他的一些优点和最基本的使用,包含 editorjs的特点以及配置。希望对有想用基于块内容(block)编辑需求的朋友所帮助。当前市面上 editrojs 应该是最好的基于 block 实现的编辑器。类似 notition、国产的这些商业的笔记服务都是基于 block 的编辑器,只是大家的方案各有不同。