Home

Awesome

/**
* 感谢各位对本仓库的star和关注,以及提出的宝贵意见,万分抱歉没有及时跟进issue list,
* 本仓库最近着手使用ts进行重写,但会保持向下兼容,修复之前出现的问题,增加移动端适配等特性
*/

中文 npm license

react-lz-editor

An open source react rich-text editor ( mordern react editor includes media support such as texts, images, videos, audios, links etc. ), development based on Draft-Js and Ant-design, good support html, markdown, draft-raw mode. It's supports multiple languages well and welcome you add your language supports.

Language Contributors

Li ZhenLi ZhenBoris ChernyshSibaService.incQuốc KhánhThis JJ
Li ZhenLi ZhenBoris ChernyshSibaService.incQuốc KhánhThis JJ
EnglishChinese (S. & T.)RussianJapaneseVietnameseThai

Live demo

react-lz-editor: https://leejaen.github.io/react-lz-editor/index.html

Disabled media insert feature on demo page, because of there was no online API support for the time being, here is The server side API demo in java you may want.

Install

npm install react-lz-editor --save
OR
yarn add react-lz-editor

Version note: React 15.4.2+ and react-dom 15.4.2+ is required. Antd version at least from 2.8.3 in your project is recommended.

Git

git+ssh://git@github.com/leejaen/react-lz-editor.git

Usage & Examples

clicking to code example

import React from 'react';
import ReactDOM from 'react-dom';
import LzEditor from './editor/index.jsx'
class Test extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      htmlContent: `<h1>Yankees, Peeking at the Red Sox, Will Soon Get an Eyeful</h1>
                <p>Whenever Girardi stole a glance, there was rarely any good news for the Yankees. While Girardi’s charges were clawing their way to a split of their four-game series against the formidable Indians, the Boston Red Sox were plowing past the rebuilding Chicago White Sox, sweeping four games at Fenway Park.</p>`,
      markdownContent: "## HEAD 2 \n markdown examples \n ``` welcome ```",
      responseList: []
    }
    this.receiveHtml=this.receiveHtml.bind(this);
  }
  receiveHtml(content) {
    console.log("recieved HTML content", content);
    this.setState({responseList:[]});
  }
  render() {
    let policy = "";
    const uploadProps = {
      action: "http://v0.api.upyun.com/devopee",
      onChange: this.onChange,
      listType: 'picture',
      fileList: this.state.responseList,
      data: (file) => {

      },
      multiple: true,
      beforeUpload: this.beforeUpload,
      showUploadList: true
    }
    return (
      <div>
        <div>Editor demo 1 (use default html format ):
        </div>
        <LzEditor active={true} importContent={this.state.htmlContent} cbReceiver={this.receiveHtml} uploadProps={uploadProps}
        lang="en"/>
        <br/>
        <div>Editor demo 2 (use markdown format ):
        </div>
        <LzEditor
          active={true}
          importContent={this.state.markdownContent}
          cbReceiver={this.receiveMarkdown}
          image={false}
          video={false}
          audio={false}
          convertFormat="markdown"/>
      </div>
    );
  }
}

ReactDOM.render(
  <Test/>, document.getElementById('test'));

screenshot

API

propstypedefaultdescription
activeboolfalseIs reloading content after changing
importContentstring""Editor content value, default to ""
langstring""Editor using language, default to your browser language settings
cbReceiverfunctionnullCallback function, the changed value will be sent to its parameter.
undoRedobooltrueEnabled undo and redo feature, default to true
removeStylebooltrueEnabled remove style feature, default to true
pasteNoStylebooltrueEnabled paste plan text feature, default to true
blockStylebooltrueEnabled block style (H1,ol,pre etc.) feature, default to true
alignmentbooltrueEnabled text alignment feature, default to true
inlineStylebooltrueEnabled inline style (bold, italic, underline etc.) feature, default to true
colorbooltrueEnabled color text feature, default to true
imagebooltrueEnabled insert image feature, default to true
videobooltrueEnabled insert video feature, default to true
audiobooltrueEnabled insert audio feature, default to true
urlsbooltrueEnabled add hyper link feature, default to true
autoSavebooltrueEnabled auto save to draft-box feature, default to true
fullScreenbooltrueEnabled full screen feature, default to true
convertFormatstring"html"Set support format (html, markdown, raw), default to "html"
disabledboolfalseDisabled editor or not
uploadPropsobjectnullCustomize uploading settings. API: Antd.Upload