mirror of
https://github.com/ianstormtaylor/slate.git
synced 2025-02-24 09:13:24 +01:00
201 lines
5.6 KiB
Markdown
201 lines
5.6 KiB
Markdown
|
|
# `Node`
|
|
|
|
`Node` is not a publicly accessible module, but instead an interface that [`Document`](./document.md), [`Block`](./block.md) and [`Inline`](./inline.md) all implement.
|
|
|
|
- [Properties](#properties)
|
|
- [`nodes`](#nodes)
|
|
- [Computed Properties](#computed-properties)
|
|
- [`kind`](#kind)
|
|
- [`length`](#length)
|
|
- [`text`](#text)
|
|
- [Methods](#methods)
|
|
- [`filterDescendants`](#filterdescendants)
|
|
- [`findDescendant`](#finddescendant)
|
|
- [`getBlocksAtRange`](#getblockatrange)
|
|
- [`getBlocks`](#getblocks)
|
|
- [`getCharactersAtRange`](#getcharactersatrange)
|
|
- [`getChild`](#getchild)
|
|
- [`getClosestBlock`](#getclosestblock)
|
|
- [`getClosestInline`](#getclosestinline)
|
|
- [`getClosest`](#getclosest)
|
|
- [`getDepth`](#getdepth)
|
|
- [`getDescendant`](#getdescendant)
|
|
- [`getFragmentAtRange`](#getfragmentatrange)
|
|
- [`getInlinesAtRange`](#getinlinesatrange)
|
|
- [`getMarksAtRange`](#getmarksatrange)
|
|
- [`getNextBlock`](#getnextblock)
|
|
- [`getNextSibling`](#getnextsibling)
|
|
- [`getNextText`](#getnexttext)
|
|
- [`getParent`](#parent)
|
|
- [`getPreviousBlock`](#getpreviousblock)
|
|
- [`getPreviousSibling`](#getprevioussibling)
|
|
- [`getPreviousText`](#getprevioustext)
|
|
- [`getTextAtOffset`](#gettextatoffset)
|
|
- [`getTextsAtRange`](#gettextsatrange)
|
|
- [`hasChild`](#haschild)
|
|
- [`hasDescendant`](#hasdescendant)
|
|
|
|
|
|
## Properties
|
|
|
|
### `key`
|
|
`String`
|
|
|
|
A short-lived, unique identifier for the node.
|
|
|
|
By default, keys are **not** meant to be long-lived unique identifiers for nodes that you might store in a database, or elsewhere. They are meant purely to identify a node inside of a single Slate instance. For that reason, they are simply auto-incrementing strings. (eg. `'0'`, `'1'`, `'2'`, ...)
|
|
|
|
If you want to make your keys uniqueness long-lived, you'll need to supply your own key generating function via the [`setKeyGenerator`](../utils/utils.md#setkeygenerator) util.
|
|
|
|
### `nodes`
|
|
`Immutable.List`
|
|
|
|
A list of child nodes. Defaults to a list with a single text node child.
|
|
|
|
|
|
## Computed Properties
|
|
|
|
### `kind`
|
|
`String`
|
|
|
|
An immutable string value of `'block'` for easily separating this node from [`Inline`](./inline.md) or [`Text`](./text.md) nodes.
|
|
|
|
### `length`
|
|
`Number`
|
|
|
|
The sum of the lengths of all of the descendant [`Text`](./text.md) nodes of this node.
|
|
|
|
### `text`
|
|
`String`
|
|
|
|
A concatenated string of all of the descendant [`Text`](./text.md) nodes of this node.
|
|
|
|
|
|
## Methods
|
|
|
|
### `filterDescendants`
|
|
`filterDescendants(iterator: Function) => List`
|
|
|
|
Deeply filter the descendant nodes of a node by `iterator`.
|
|
|
|
### `findDescendant`
|
|
`findDescendant(iterator: Function) => Node || Void`
|
|
|
|
Deeply find a descendant node by `iterator`.
|
|
|
|
### `getBlocksAtRange`
|
|
`getBlocksAtRange(range: Selection) => List`
|
|
|
|
Get all of the bottom-most [`Block`](./block.md) nodes in a `range`.
|
|
|
|
### `getBlocks`
|
|
`getBlocks() => List`
|
|
|
|
Get all of the bottom-most [`Block`](./block.md) node descendants.
|
|
|
|
### `getCharactersAtRange`
|
|
`getCharactersAtRange(range: Selection) => List`
|
|
|
|
Get a list of all of the [`Charaters`](./character.md) in a `range`.
|
|
|
|
### `getChild`
|
|
`getChild(key: String || Node) => Node || Void`
|
|
|
|
Get a child by `key`.
|
|
|
|
### `getClosestBlock`
|
|
`getClosestBlock(key: String || Node) => Node || Void`
|
|
|
|
Get the closest [`Block`](./block.md) node to a descendant node by `key`.
|
|
|
|
### `getClosestInline`
|
|
`getClosestInline(key: String || Node) => Node || Void`
|
|
|
|
Get the closest [`Inline`](./inline.md) node to a descendant node by `key`.
|
|
|
|
### `getClosest`
|
|
`getClosest(key: String || Node, match: Function) => Node || Void`
|
|
|
|
Get the closest parent node of a descendant node by `key` that matches a `match` function.
|
|
|
|
### `getDepth`
|
|
`getDepth(key: String || Node) => Number`
|
|
|
|
Get the depth of a descendant node by `key`.
|
|
|
|
### `getDescendant`
|
|
`getDescendant(key: String || Node) => Node || Void`
|
|
|
|
Get a descendant node by `key`.
|
|
|
|
### `getFragmentAtRange`
|
|
`getFragmentAtRange(range: Selection) => Document`
|
|
|
|
Get a document fragment of the nodes in a `range`.
|
|
|
|
### `getInlinesAtRange`
|
|
`getInlinesAtRange(range: Selection) => List`
|
|
|
|
Get all of the top-most [`Inline`](./inline.md) nodes in a `range`.
|
|
|
|
### `getMarksAtRange`
|
|
`getMarksAtRange(range: Selection) => Set`
|
|
|
|
Get a set of all of the marks in a `range`.
|
|
|
|
### `getNextBlock`
|
|
`getNextBlock(key: String || Node) => Node || Void`
|
|
|
|
Get the next, bottom-most [`Block`](./block.md) node after a descendant by `key`.
|
|
|
|
### `getNextSibling`
|
|
`getNextSibling(key: String || Node) => Node || Void`
|
|
|
|
Get the next sibling of a descendant by `key`.
|
|
|
|
### `getNextText`
|
|
`getNextText(key: String || Node) => Node || Void`
|
|
|
|
Get the next [`Text`](./text.md) node after a descendant by `key`.
|
|
|
|
### `getParent`
|
|
`getParent(key: String || Node) => Node || Void`
|
|
|
|
Get the parent node of a descendant by `key`.
|
|
|
|
### `getPreviousBlock`
|
|
`getPreviousBlock(key: String || Node) => Node || Void`
|
|
|
|
Get the previous, bottom-most [`Block`](./block.md) node before a descendant by `key`.
|
|
|
|
### `getPreviousSibling`
|
|
`getPreviousSibling(key: String || Node) => Node || Void`
|
|
|
|
Get the previous sibling of a descendant by `key`.
|
|
|
|
### `getPreviousText`
|
|
`getPreviousText(key: String || Node) => Node || Void`
|
|
|
|
Get the previous [`Text`](./text.md) node before a descendant by `key`.
|
|
|
|
### `getTextAtOffset`
|
|
`getTextAtOffset(offset: Number) => Text || Void`
|
|
|
|
Get the [`Text`](./text.md) node at an `offset`.
|
|
|
|
### `getTextsAtRange`
|
|
`getTextsAtRange(range: Selection) => List`
|
|
|
|
Get all of the [`Text`](./text.md) nodes in a `range`.
|
|
|
|
### `hasChild`
|
|
`hasChild(key: String || Node) => Boolean`
|
|
|
|
Check whether the node has a child node by `key`.
|
|
|
|
### `hasDescendant`
|
|
`hasDescendant(key: String || Node) => Boolean`
|
|
|
|
Check whether the node has a descendant node by `key`.
|