Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

braft-editor

margox19.9kMIT2.3.9TypeScript support: included

Rich Text Editor Based On Draft.js

braft, draft, draft-js, rich, text, editor, rich-text-editor, wysiwyg

readme

Braft Editor-EN

Thanks to Google Translate

A web rich text editor based on draft-js, suitable for React framework, compatible with mainstream modern browsers.

Use Document Online Demo

Note that the current version of the project is 2.x. If you are using 1.xx version, please refer to [Old Version Document](https://github.com/margox/braft-editor/blob/old-master/README. md)

Please understand before using

Braft Editor is an editor based on draft-js. Draft-js does not directly use HTML as the component state. It implements an EditorState type, which is essentially a JS object. In the traditional rich text editor, The piece of HTML content corresponding to EditorState is a block; this can be verified by looking at editorState.toRAW ().

The advantage of using EditorState instead of HTML strings is that a set of EditorState can be used on multiple ends, and the content produced by the editor is no longer limited to being displayed on the web platform (of course, each platform also needs to implement the corresponding EditorState to View conversion function) At the same time, it is more suitable for the component state of React.

However, in the above implementation, the biggest problem is that it cannot perfectly convert external HTML into EditorState, because its supported styles, tags, tag attributes, and so on are extremely limited, and there is no way to convert all the features in HTML to the state in EditorState. , When using third-party or historical HTML strings to initialize the editor content, and when pasting external HTML content, only a small number of styles and tag attributes supported by the editor can be retained, most of the content will be filtered or Ignore it.

Based on the above shortcomings, if your project strongly depends on the original HTML tags and attributes, etc., this editor is not recommended.

Editor-specific extension packs have been released, please see Braft Extensions

The form extension module has been released in a test version. Please upgrade craft-editor and craft-utils to the latest version and install the latest version of craft-extensions. For the usage, please see [form extension module]

Exchange feedback, please add QQ group: 725634541

Features

  • Perfect text content editing function
  • Many open editing interfaces, good scalability
  • Allows inserting multimedia content such as pictures, audio and video
  • Allows to customize the upload interface of multimedia content
  • Allow to set the image to float left and right (ie text wrapping function)
  • Allows setting the color list, font size, and fonts available to the editor
  • Allows customizing the control buttons and display order to be displayed
  • Allows adding additional custom buttons
  • Multi-language support (Simplified Chinese, Traditional Chinese, English, Polish, Japanese, Korean, Turkish)
  • ... More features under development

Thanks

Recent updates

  • 2019-08-06 v2.3.8
    • Fixed the issue that javascript statements in a tag href caused a warning
    • Merge PR # 560, # 593 , # 588, # 582
  • 2019-06-20 v2.3.7
    • Fix issues # 542, # 541 , # 467
    • Fix the problem # 512 and add the imageResizable attribute, which allows to turn off the drag and resize function of the image
  • 2019-06-18 v2.3.6
    • Supports inserting links without selecting text
    • Added allowInsertLinkText property, allowing link text to be entered when inserting a link directly, defaultfalse
  • 2019-06-14 v2.3.5
    • Perfect index.d.ts
  • 2019-06-11 v2.3.4
    • Support the retention of some more custom html attributes (need to upgrade craft-convert to v2.3.0)
    • Added Korean (kr), Japanese (jpn), Turkish (tr)
    • Add more hooks support
  • 2019-05-28 v2.3.2
    • Fixed the issue that incoming RAW strings could not be parsed normally
  • 2019-05-20 v2.3.1
    • Fixed fatal bug in v2.3.0
  • 2019-05-20 v2.3.0
  • 2019-04-29 v2.2.10
    • The picture supports dragging and resizing. Thanks to ArthasDragon for your contribution!
    • Optimized the use of pure numbers to initialize the editor's content. Thank you WzFFzW for your contribution!
    • Added fixPlaceholder attribute (Boolean), which is used to fix the problem that placeholder text is displayed abnormally in some cases. The default is false.
    • Optimize forceRender
  • 2019-03-06 v2.2.9
    • Modify index.d.ts
  • 2019-02-22 v2.2.7
    • Added boilerplate CSS files for beautifying output HTML(node_modules/braft-editor/dist/output.css)
  • 2019-02-22 v2.2.6
    • Optimize the blockRenerMap property and support passing in a function that returns a blockRenerMap object
    • Optimize the settings of subscript style
    • Optimize the display of text indentation and text alignment in the editor when colleagues are present
  • 2019-01-11 v2.2.4
    • Added the editorId property, which has the same effect as the id property, and is used to solve the problem that the id property will be overwritten in the Ant Design Form component and the extension module cannot be used normally
  • 2019-01-11 v2.2.2
    • Optimized the playback interaction between audio and video and embedded media, instead playing in the modal box
  • 2019-01-06 v2.2.1
  • 2018-12-29 v2.2.0

View history update record

installation

# Install using yarn
yarn add braft-editor
# Install using npm
npm install braft-editor --save

use

The editor supports value and onChange properties, which are similar to the native input components in React. In general, you can use this editor in the form of a typical controlled component:

import React from 'react'
import BraftEditor from 'braft-editor'
import 'braft-editor/dist/index.css'

export default class EditorDemo extends React.Component {

  state = {
      editorState: null
  }

  async componentDidMount () {
    // Assume here to get the editor content in html format from the server
    const htmlContent = await fetchEditorContent()
    // Use BraftEditor.createEditorState to convert html strings to editorState data needed by the editor
    this.setState({
      editorState: BraftEditor.createEditorState(htmlContent)
    })
  }

  submitContent = async () => {
    // Pressing ctrl + s when the editor has focus will execute this method
    // Before the editor content is submitted to the server, you can directly call editorState.toHTML () to get the HTML content
    const htmlContent = this.state.editorState.toHTML()
    const result = await saveEditorContent(htmlContent)
  }

  handleEditorChange = (editorState) => {
    this.setState({ editorState })
  }

  render () {

    const { editorState } = this.state

    return (
      <div className="my-component">
        <BraftEditor
          value={editorState}
          onChange={this.handleEditorChange}
          onSave={this.submitContent}
        />
      </div>
    )

  }

}

Of course, this editor also supports the defaultValue property, so you can also use this editor as a uncontrolled component.

For more introduction, please see Detailed Document

Buy me a beer

If you want to thank this editor for saving time for your project, or simply like this editor, you can scan the code and appreciate a few dollars to invite me for a beer!

  

    支付宝           WeChat

changelog

历史更新记录

  • 2019-08-06 v2.3.8
    • 修复a标签href中带有javascript语句导致警告的问题
    • 合并PR#560#593#588#582
  • 2019-06-20 v2.3.7
    • 修复问题#542#541#467
    • 修复问题#512并新增imageResizable属性,允许关闭图片的拖动调整尺寸功能
  • 2019-06-18 v2.3.6
    • 支持不选择文字的情况下直接插入链接
    • 新增allowInsertLinkText属性,允许直接插入链接时输入链接文字,默认false
  • 2019-06-14 v2.3.5
    • 完善index.d.ts
  • 2019-06-11 v2.3.4
    • 支持部分更多自定义html属性的保留(需要升级braft-convert至v2.3.0)
    • 加入韩语(kr)、日语(jpn)、土耳其语(tr)
    • 加入更多hooks支持
  • 2019-06-11 v2.3.3
    • 支持部分更多自定义html属性的保留(需要升级braft-convert至v2.1.13)
    • 加入更多hooks支持
  • 2019-05-28 v2.3.2
    • 修复传入RAW字符串无法正常解析为问题
  • 2019-05-20 v2.3.1
    • 修复v2.3.0的致命bug
  • 2019-05-20 v2.3.0
    • 支持嵌套列表以及部分内部细节优化,感谢SyMind的贡献:PR#486,PR#485
    • 优化在SSR中使用的问题
  • 2019-04-29 v2.2.10
    • 图片支持拖动调整大小,感谢ArthasDragon的贡献!
    • 优化使用纯数字初始化编辑器内容异常的问题,感谢WzFFzW的贡献!
    • 新增fixPlaceholder属性(Boolean),用于修复部分情况下placeholder文本显示异常的问题,默认false
    • 优化forceRender
  • 2019-03-06 v2.2.9
    • 修改index.d.ts
  • 2019-02-22 v2.2.7
    • 新增用于美化输出HTML的样板CSS文件(node_modules/braft-editor/dist/output.css)
  • 2019-02-22 v2.2.6
    • 优化blockRenerMap属性,支持传入一个返回blockRenerMap对象的函数
    • 优化上下标样式的设置
    • 优化编辑器内文本缩进和文本对齐同事存在时的显示效果
  • 2019-01-11 v2.2.4
    • 新增editorId属性,作用与id属性完全一样,用于解决在Ant Design Form组件中id属性会被覆盖导致无法正常使用扩展模块的问题
  • 2019-01-11 v2.2.2
    • 优化音视频和嵌入式媒体的播放交互,改为在模态框中播放
  • 2019-01-06 v2.2.1
  • 2018-12-29 v2.2.0
    • 新增d.ts文件,在TypeScript项目中使用更友好,感谢幅川大佬的贡献!
    • 修复弹窗组件中的输入框无法使用的问题
    • 其他优化和问题修复:Issue#336,Issue#331,Issue#328
  • 2018-12-24 v2.1.36
    • 修复弹窗组件偶尔无法正常关闭的问题
  • 2018-12-03 v2.1.34
    • 修复v2.1.32优化编辑器内复制粘贴后导致复制编辑器内容粘贴到其他地方异常的问题
  • 2018-11-30 v2.1.33
    • 优化DropDown组件展示问题
    • 优化Switch组件的尺寸
    • 修复字体设置无效的问题
  • 2018-11-27 v2.1.32
    • 优化图片工具栏的展示
    • 优化编辑器内复制粘贴
    • 修复部分图标在某些情况下显示异常的问题
    • 修复其他问题
  • 2018-11-14 v2.1.29
    • 尝试修复选中多行内容后输入中文导致页面报错的问题[#295],依赖braft-utils@3.0.6
    • 新增triggerChangeOnMount属性,用于指定在编辑器组件加载完成后是否触发一次onChange,默认为true
    • 修复传入className属性导致编辑器显示异常的问题
  • 2018-11-13 v2.1.28
    • 修复图片工具栏无法使用的问题#293
    • 部分细节优化#291
  • 2018-11-12 v2.1.27
    • 修复readOnly为true时图片工具栏依然可用并导致readOnly属性失效的问题
  • 2018-10-29 v2.1.24
    • 弹窗组件新增closeOnBlur属性,用以指定是否在点击弹窗周围的蒙层时关闭弹窗,默认为true
  • 2018-10-29 v2.1.23
    • 优化编辑器对扩展模块的使用方式,详见[Issue#278]
  • 2018-10-27 v2.1.22
    • 修复弹窗组件数据更新异常的问题
  • 2018-10-26 v2.1.21
    • 修复在编辑器中拖动图片移动位置导致脚本报错的问题(请更新braft-convert至v2.1.9+)
  • 2018-10-25 v2.1.20
    • 支持在uploadFn中调用param.success传入width和height属性(需要更新braft-utils至v3.0.5)
    • imageControls中的自定义控件显示优化
  • 2018-10-23 v2.1.19
    • 支持在引语块中输入多行内容,按Shift+Enter可跳出引语块
    • 修复部分扩展模块会导致无法外部更改editorState无效的问题
    • 优化代码块内容输出
  • 2018-10-19 v2.1.18
    • 新增(伪)全屏控制组件(控件名:fullscreen)和onFullscreen回调
    • 新增editorState.toText方法用于获取编辑器纯文本内容
    • 新增readOnly属性,与disabled属性区别是不会禁止选择编辑器区域的内容
    • 修复了React15.x中脚本报错的问题
  • 2018-10-18 v2.1.16
    • 修复编辑器组件卸载后未关闭的媒体库弹窗没有自动关闭的问题
    • extendControls数组元素支持传入函数,可以从函数参数中获取到编辑器实例与editorState
  • 2018-10-16 v2.1.13
    • 修复了部分样式设置异常的问题
    • 移除React.Fragment相关的代码,提高React旧版兼容性
  • 2018-10-15 v2.1.10
    • 优化defaultValue传值方式
    • 优化行高展示
  • 2018-10-15 v2.1.8
    • 优化设置设置左右浮动的图片工具栏被遮挡的问题
    • 内置颜色选择器外观调整
  • 2018-10-14 v2.1.7
    • 优化工具栏按钮换行展示
    • 优化下拉组件在低高度编辑器中的展示
    • 优化按钮在Ant Design中行高显示异常的问题
  • 2018-10-12 v2.1.6
    • 修复controlBarClassName和controlBarStyle属性无效的问题
  • 2018-10-11 v2.1.4
    • 修复异步设置编辑器数据不会触发onChange的问题
  • 2018-10-09 v2.1.3
    • 优化BraftEditor.use
  • 2018-10-09 v2.1.2
    • BraftEditor.use支持includeEditors和excludeEditors参数以针对不同编辑器启用不同扩展
    • 修复问题#244
    • 尝试优化#243
  • 2018-10-08 v2.1.1
    • 更换清除内容按钮的图标
    • 修复部分样式异常的问题
  • 2018-10-08 v2.1.0
    • 进一步增加可扩展性,包括增加自定义的entity、block和inline-style,以及扩展编辑器的转换规则
    • 新增BraftEditor.use静态方法,用于载入全局扩展模块
    • 新增单位转换功能(converts.unitImportFn和converts.unitExportFn属性)
    • 新增onDelete、handleKeyCommand、handleReturn、handleBeforeInput等属性
    • 新增defaultLinkTarget属性,用于指定链接的默认打开方式
    • 新增editorState.isEmpty()实例方法,用于判断编辑器内容是否为空
    • 新增段落缩进功能
    • 其他细节优化
  • 2018-09-29 v2.0.10
    • 为onBlur和onFocus事件增加editorState参数
  • 2018-09-29 v2.0.9
    • 增加media.items属性用于初始化媒体库内容
  • 2018-09-27 v2.0.8
    • 修复了无法检测初始化内容中的文字颜色的问题
    • 新增了BraftEditor.createEditorState静态方法
  • 2018-09-26 v2.0.7
    • 修复扩展下拉组件无法使用的问题
    • 修复扩展弹窗组件再次点开时底栏消失的问题
  • 2018-09-18 v2.0.6
    • 部分控件支持开关模式,例如加粗、斜体等
    • 支持拖动图片到编辑器区域
    • 修复插入外部视频导致脚本报错的问题
  • 2018-09-06 v2.0.5
    • 打包字体文件,免除额外的loader配置
  • 2018-09-05 v2.0.4
    • 修复defaultValue中包含图片时,鼠标移入图片导致报错的问题
  • 2018-09-04 v2.0.3
    • 修复代码块中按Tab导致报错的问题
    • 修复控件文字提示被遮挡的问题
  • 2018-09-04 v2.0.1
    • 图片工具栏自定义控件增加render属性
  • 2018-09-03 v2.0.0

    • v2.0.0船新版本发布,几需体验3分钟,你就会爱上杰个编辑器

    以下为旧版本更新记录

  • 2018-05-29 v1.9.7

    • 支持在编辑器内播放嵌入式媒体
  • 2018-05-24 v1.9.6
    • 新增forceNewLine属性,设置为true时,按回车键将插入<br>而非<p></p>
    • 部分细节优化
  • 2018-05-23 v1.9.5
    • 部分细节优化
  • 2018-05-22 v1.9.4
    • 优化了viewWrapper属性,无需再手动设置
  • 2018-05-15 v1.9.3
    • 修复插入图片后输出内容异常的问题
  • 2018-05-14 v1.9.2
    • 修复图片工具栏输入框无法点击的问题
  • 2018-05-11 v1.9.1
    • 修复列表项目异常的问题
  • 2018-05-11 v1.9.0
    • 支持编辑器内部拖动图片调整位置
    • 支持直接粘贴本地图片文件到编辑器
    • 支持直接拖入本地图片文件到编辑器
    • 新增insertHTML实例方法
  • 2018-05-09 v1.8.15
    • 去除乱入的内容
  • 2018-05-09 v1.8.14
    • 优化代码块的转换展示(感谢@杨圆建大神的贡献)
    • 强化media.onInsert属性
  • 2018-05-08 v1.8.13
    • 优化代码块的转换展示(使用历史版本生产的代码块若出现展示错误,需要重新整理格式再保存)
  • 2018-05-04 v1.8.12
    • 修复再次编辑时上标和下标丢失的问题
  • 2018-05-02 v1.8.11
    • 修复再次编辑时字间距失效的问题
  • 2018-04-23 v1.8.10
    • 修复再次编辑导致图片尺寸单位失效的问题
  • 2018-04-21 v1.8.9
    • 新增Embed媒体类型,方便嵌入第三方视频或者嵌入式网页内容
    • 支持上传多媒体文件时设置多媒体标签(img,audio,video)的部分属性(id, title, alt, loop, autoplay, controls, poster)
    • 提升稳定性
  • 2018-04-17 v1.8.8
    • 细节调整
  • 2018-04-13 v1.8.7
    • 修复v1.8.6改动导致部分图标显示异常的问题
    • 微调Modal组件的top定位
    • Headings下拉组件增加“常规”选项
  • 2018-04-12 v1.8.6
    • 修改项目所用的字体图标font-family名称以防止与同名font-family冲突
  • 2018-04-11 v1.8.5
    • 新增extendAtomics属性,用于在编辑器中插入自定义组件,该功能由@filow贡献,非常感谢
  • 2018-04-09 v1.8.4
    • 修复换行文本设置居中/右异常的问题
    • modal类型的自定义组件增加onCreate属性,用于获取modal实例
    • 支持Shift+单击以访问编辑器内的链接
  • 2018-03-23 v1.8.3
    • 修复无法粘贴从word文档复制的内容的问题
    • 暂时回退v1.8.1的部分优化项目
  • 2018-03-23 v1.8.2
    • 修复了图标样式名可能会与宿主项目冲突的问题
  • 2018-03-21 v1.8.1
    • 修复了html与raw的相互转换的一些问题,部分功能由@joacy贡献,非常感谢
    • 在输出的html中为设置了float和alignment的图片增加对应的className属性
    • 新增onTab属性
  • 2018-03-16 v1.8.0
    • 新增excludeControls属性,用于指定不需要显示的控制栏按钮
    • 媒体库增加快捷选取/删除工具栏
    • 新增media.onInsert子属性
    • 新增media.removeConfirmFn子属性,用于实现删除媒体库内容前的确认操作
    • 新增清除内容工具和editorInstance.clear()方法
    • 新增editorInstance.isEmpty()方法
    • media.onRemove参数类型更改为数组
    • 增加多个媒体库(mediaLibrary)实例方法实例方法
  • 2018-03-15 v1.7.5
    • 修复特殊区块文本居左/中/右后再次编辑时失效的问题
  • 2018-03-15 v1.7.4
    • 新增清除样式工具
    • 修复进行部分操作后编辑器没有重新获得焦点的问题
  • 2018-03-15 v1.7.3
    • 修复raw格式在使用未包含在颜色列表内的颜色时,无法正常显示颜色的问题
    • 其他优化
  • 2018-03-14 v1.7.2
    • 优化media.onRemove传参
    • 支持height属性设置为0
  • 2018-03-13 v1.7.1
    • 新增contentId属性,用于支持动态更新initialContent属性
    • 其他优化
  • 2018-03-13 v1.7.0
    • 新增插入水平线功能
    • 支持设置文字间距与段落的两端缩进,此功能由@joacy贡献,非常感谢
    • 新增textAlignOptions属性,用于设置文本对齐选项,此功能由@joacy贡献,非常感谢
    • 新增allowSetTextBackgroundColor属性,用于开启/关闭文字背景色设置功能,此功能由@joacy贡献,非常感谢
    • 新增media.onRemove和media.onChange子属性,用于增强媒体库的扩展性
    • 其他优化
  • 2018-03-09 v1.6.2
    • 增加与Ant.Design的兼容性
    • allowPasteImage属性更改为media属性的子属性
    • 图片宽高填写数字时自动加px
  • 2018-03-03 v1.6.1
    • 支持直接粘贴截图到编辑器(目前仅支持chrome浏览器和微软EDGE浏览器,其他浏览器支持请期待后续更新)
    • 增加自定义控制栏组件类型[component],允许直接将一个React组件添加到工具栏(感谢@avdbg的建议)
    • 增加onFocus/onBlur属性
    • 修复代码块转换错误的问题
    • 其他优化
  • 2018-02-28 v1.6.0
    • 支持行高设置,此功能由@Belial贡献,非常感谢
  • 2018-02-27 v1.5.0
    • 支持简单设置图片的宽度和高度
    • 支持设置扩展控制按钮的html和hoverTitle(感谢@TnWah反馈)
    • 优化扩展DropDown组件(感谢@Belial反馈)
    • 增强与Ant.Design的兼容性(感谢@Belial反馈)
  • 2018-02-24 v1.4.3
    • 提升代码块功能稳定性
  • 2018-02-24 v1.4.2
    • 修复在IE11浏览器中无法选择多媒体文件的问题(感谢@Errshao反馈)
  • 2018-02-23 v1.4.1
    • 修复在Ant.Design中会导致表单非正常提交的问题,感谢@tgy9310提交的PR
  • 2018-02-22 v1.4.0
    • 修复自定义弹窗(extendControls/modal)内容无法动态更新的问题(感谢@SadCreeper反馈)
    • 修复代码块转换出错的问题(感谢@SadCreeper反馈)
  • 2018-02-02 v1.3.2
    • 新增繁体中文语言[zh-hant],感谢@JackLam的贡献
  • 2018-02-02 v1.3.1
    • 新增disabled属性,用以禁用编辑功能
  • 2018-01-30 v1.3.0
    • 支持编辑代码块时按tab插入缩进,并可配置缩进空格数(感谢@atmjs建议)
    • 支持列表项目的文字居中\居右显示(感谢@ug1989反馈)
    • 修复媒体库拖放上传功能异常的问题(感谢@jane900618反馈)
    • 部分细节优化
  • 2018-01-29 v1.2.0
    • 支持配置可插入的外部媒体类型(感谢@jane900618建议)
    • 支持配置图片的工具栏按钮(感谢@jane900618建议)
    • 部分细节优化
  • 2018-01-24 v1.1.14
    • 支持纯文本粘贴(感谢@IveChen建议) + 部分细节优化
  • 2018-01-24 v1.1.13
    • 部分BUG修复+UI优化
  • 2018-01-24 v1.1.12
    • 增强与Ant.Design的兼容性
  • 2018-01-22 v1.1.11
    • 修复内容初始化时候的错误
  • 2018-01-19 v1.1.10
    • 修复safari等浏览器下部分操作无效的问题
  • 2018-01-17 v1.1.9
    • 修复列表模式下连续按回车出现脚本报错的问题
    • 支持Ctrl|Shift + Enter实现软换行,感谢@qjp88995反馈
  • 2017-12-14 v1.1.8
    • 修复与jquery等库存在冲突的问题,感谢@juyongxia反馈
  • 2017-11-30 v1.1.7
  • 2017-10-25 v1.1.6
    • 修复SwitchButton激活状态显示异常的bug
  • 2017-10-11 v1.1.5
    • 升级draft-convert
  • 2017-09-30 v1.1.3
    • 支持react16
  • 2017-09-29 v1.1.2
    • 增加稳定性
  • 2017-09-18 v1.1.1
    • 修复一些无法插入表情和无法清除超链接的bug
  • 2017-09-18 v1.1.0
    • addonControls更名为extendControls
    • extendControls支持弹出框控件
    • 增加media.validateFn属性,用于在选择本地文件时进行校验
    • 音频和视频内容增加删除按钮和简单预览功能
  • 2017-09-06 v1.0.0
    • 升级架构,抽象编辑器操作模块,大幅提升可扩展性
  • 2017-08-31 v0.3.4
    • 修复initialContent设置无效的问题
  • 2017-08-31 v0.3.3
    • 增强颜色功能,支持从粘贴的内容中识别临时颜色
    • 修复了一些bug,引入了一些新的未知bug
  • 2017-08-30 v0.3.2
    • 修复极细分割线在部分浏览器下不显示的问题
  • 2017-08-29 v0.3.1
    • 修复粘贴包含颜色的HTML内容时可能会报错的问题
    • TODO: 完善颜色转换函数,提高粘贴稳定性
  • 2017-08-29 v0.3.0
    • 增加setContent等实例方法
    • 支持外部操作媒体库内容
    • 部分文案调整
  • 2017-08-28 v0.2.9
    • 部分CSS权重调整,减少与其他UI框架的冲突
  • 2017-08-28 v0.2.8
    • 修复引入编辑器之后导致antd等框架的图标无法显示的问题
  • 2017-08-24 v0.2.7
    • 链接插入功能优化
    • 通过控制栏组件操作内容后,保持编辑器焦点
  • 2017-08-21 v0.2.6
    • 修复无法粘贴纯文本的问题
  • 2017-08-19 v0.2.5
    • 支持列表模式下连续回车跳出列表
    • 支持从网页复制图片粘贴到编辑器