Skip to content

Extensibly serialize & deserialize Draft.js ContentState with HTML.

License

Notifications You must be signed in to change notification settings

20minutes/draft-convert

Repository files navigation

@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.

Resources

License

Stars

Watchers

Forks

Languages

  • JavaScript 100.0%