20minutes / draft-convert

Extensibly serialize & deserialize Draft.js ContentState with HTML.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

@20minutes/draft-convert

Node CI npm version npm downloads

Forked version:

  • with deps up to date
  • CI on GitHub Actions
  • new validateHTML function parameter for convertToHTML

For the official readme, check the official project.

validateHTML (option of convertToHTML)

validateHTML take the final HTML of the current block as parameter and must return a boolean saying if every thing is ok.

We do have some custom entity/block generation and sometimes, the produced HTML might be wrong. So we validate it using ReactDomServer, like:

import ReactDOMServer from 'react-dom/server'
import { Parser as HtmlToReactParser } from 'html-to-react'

// ...

const html = convertToHTML({
  // ...
  validateHTML: (html) => {
    try {
      const htmlToReactParser = HtmlToReactParser()

      ReactDOMServer.renderToString(htmlToReactParser.parse(html))

      return true
    } catch (e) {
      return false
  }
})(editorState.getCurrentContent());

About

Extensibly serialize & deserialize Draft.js ContentState with HTML.

License:Apache License 2.0


Languages

Language:JavaScript 100.0%