import { Document } from 'slate'

The top-level node in Slate's document model.

Documents are made up of block nodes, inline nodes, and text nodes—just like in the DOM. Note that direct descendants of a document node have to be block nodes.

In some places, you'll see mention of "fragments", which are also Document objects, just that aren't attached to the main Value. For example, when cutting-and-pasting a selection of content, that content will be referred to as a document "fragment".

Properties

Document({
nodes: Immutable.List<Node>,
})

data

Immutable.Map

kind

String

An immutable string value of 'document' for easily separating this node from Block, Inline or Text nodes.

Arbitrary data associated with the document. Defaults to an empty Map.

nodes

Immutable.List

A list of child nodes.

Computed Properties

text

String

A concatenated string of all of the descendant Text nodes of this node.

Static Methods

Document.create

Document.create(properties: Object) => Document

Create a document from a plain Javascript object of properties.

Document.fromJSON

Document.fromJSON(object: Object) => Document

Create a document from a JSON object.

Document.isDocument

Document.isDocument(maybeDocument: Any) => Boolean

Returns a boolean if the passed in argument is a Document.

Node Methods

Documents implement the Node interface. For information about all of the node methods, see the Node reference.

Instance Methods

toJSON

toJSON() => Object

Returns a JSON representation of the document.

Was this page helpful? Let us know how we did: