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

Package detail

draft-js-autolist-plugin

icelab8.2kMIT3.0.0

Automatically create ordered/unordered lists in draft-js as you type

draft-js, draft-js-plugins, plugins, plugin

readme

Draft.js Auto-list Plugin

This is a plugin for the draft-js-plugins-editor, a plugin system that sits on top of Draft.js.

This plugin adds support for automatic unordered/ordered list creation within Facebook’s Draft.js editor based on the input text. It looks something like:

Auto-list creation in action

In short, the plugin will turn a sequence of Markdown-like lists into their actual HTML representation:

  • * will become an unordered list
  • - will become an unordered list
  • 1. will become an ordered list
  • 2. will become an ordered list
  • 123. will become an ordered list

You’ll notice that the plugin also enables support for breaking out of lists like you’d expect in a WYSIWYG editor. That is, if you press "Return" on an empty list item, the current block is turned back into a standard block type.

Usage

import createAutoListPlugin from 'draft-js-autolist-plugin'
const autoListPlugin = createAutoListPlugin()

This can then be passed into a draft-js-plugins-editor component:

import Editor from 'draft-js-plugins-editor'
// Within another React component
<Editor plugins={[autoListPlugin]}/>

Caveats

To ensure that we aren’t constantly querying the content of the editor, the plugin keeps track of the characters that are typed in order and only attempts to create a list if the full sequence matches the examples above. If make a mistake while typing a list it won’t create one. For example, the following sequence would fail (typed characters delineated by []:

[*][m][backspace][space]

Even though it would seem like a list should be created here (because the final visible sequence is *), we don’t attempt to.

TODO

  • <input disabled="" type="checkbox"> Allow the various list regexes to be overridden.
  • <input disabled="" type="checkbox"> Add test coverage for, you know, the actual functionality within a Draft.js instance.

changelog

Change Log

All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.

v3.0.0 2020-04-07

  • Added support for draft-js v0.11.0

v2.0.0 2017-06-19

v1.0.0 2017-01-30

Fixed

v0.0.3 2016-07-27

Fixed

  • Add support for azerty keyboards (thanks, @grsmto!)

v0.0.2 2016-07-25

Fixed

  • Don’t return the default key bindings if we’re not handling the event. Returning it stops any other plugins halts the callback chain, and so stops any other plugins from being able to insert behaviour.

v0.0.1 2016-04-21

First public release