# Disallow nested lists

**URL:** https://discuss.prosemirror.net/t/disallow-nested-lists/291
**Category:** Uncategorized
**Created:** [April 19, 2016, 7:44am UTC](https://discuss.prosemirror.net/t/disallow-nested-lists/291 "2016-04-19T07:44:59Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![borriglione](https://discuss.prosemirror.net/user_avatar/discuss.prosemirror.net/borriglione/32/176_2.png) [@borriglione](https://discuss.prosemirror.net/u/borriglione)
#### Post date: [April 19, 2016, 7:44am UTC](https://discuss.prosemirror.net/t/disallow-nested-lists/291/1 "2016-04-19T07:44:59Z")

</div>

Hello,

I want to disallow nested lists like:

- List item
- Sub item

or:

1. List item

- sub item

in the editor. I found this ticket: [Prevent nested Lists · Issue #31 · ProseMirror/prosemirror · GitHub](https://github.com/ProseMirror/prosemirror/issues/31) but I could not get it working. Both OrderedList and BulletList use NodeKind.list\_item. So my idea was to allow only Text or Paragraph nodes in NodeKind.list\_item.

But contains() in ListItem:

```
  export class ListItem extends Block {
    get kind() { return NodeKind.list_item }
    get contains() { return NodeKind.text }
  }

```

returned an error:

> RangeError: Wrap not possible

Any ideas? Thx a lot

---

<div class="post-metadata">

### Author: ![marijn](https://discuss.prosemirror.net/user_avatar/discuss.prosemirror.net/marijn/32/15_2.png) [@marijn](https://discuss.prosemirror.net/u/marijn)
#### Post date: [April 19, 2016, 8:06am UTC](https://discuss.prosemirror.net/t/disallow-nested-lists/291/2 "2016-04-19T08:06:13Z")

</div>

It might be easier to make list items contain only paragraphs (though that will also require giving paragraph a new, specific kind). To make list items contain text you’ll have to make them textblocks (i.e. you’ll need a new class that inherits from `Textblock`).

---

<div class="post-metadata">

### Author: ![borriglione](https://discuss.prosemirror.net/user_avatar/discuss.prosemirror.net/borriglione/32/176_2.png) [@borriglione](https://discuss.prosemirror.net/u/borriglione)
#### Post date: [April 19, 2016, 8:34am UTC](https://discuss.prosemirror.net/t/disallow-nested-lists/291/3 "2016-04-19T08:34:03Z")

</div>

I would definitely prefer to use paragraphs.

So I have to:

1. Giving the Paragraph-class a new kind ? Currently it has NodeKind.block
2. Setting List Item class to contains only Paragraph-class

?

Can you may give a rough example plz?

---

<div class="post-metadata">

### Author: ![marijn](https://discuss.prosemirror.net/user_avatar/discuss.prosemirror.net/marijn/32/15_2.png) [@marijn](https://discuss.prosemirror.net/u/marijn)
#### Post date: [April 19, 2016, 7:36pm UTC](https://discuss.prosemirror.net/t/disallow-nested-lists/291/4 "2016-04-19T19:36:24Z")

</div>

I think you should be ok if you

- Define a variable `paragraphKind` which is `new NodeKind("paragraph", [NodeKind.block])`.

- Use a subclass of the default `Paragraph` which has a `get kind() { return paragraphKind }` getter.

- Use a subclass of the default `ListItem` with has a `get contains() { return paragraphKind }` getter.

(I realize this is awful, and am working on a more usable and powerful system for this stuff right now, which will hopefully make it into 0.7.0.)

---

<div class="post-metadata">

### Author: ![borriglione](https://discuss.prosemirror.net/user_avatar/discuss.prosemirror.net/borriglione/32/176_2.png) [@borriglione](https://discuss.prosemirror.net/u/borriglione)
#### Post date: [April 25, 2016, 10:08am UTC](https://discuss.prosemirror.net/t/disallow-nested-lists/291/5 "2016-04-25T10:08:18Z")

</div>

Thx marijn. I’m looking forward o see 0.7.0 🙂
