api.document

Document manipulation methods

document.insertTextNode(options) ⇒ object | undefined

Insert a text node in specified place of the document using an insert strategy based on the options object. The options object and all properties are optional. Return the created node only if using an existing transaction (tx).

  • tx: Optional TransactionDocument
  • mode: Insert node where: first, last, before or after
  • refNode: If insert mode is before or after a reference node is mandatory
  • text: Optional text content
  • type: Text style type, ie paragraph, preamble, etc
Param Type Description
options Object Optional object with optional properties

Example

// Insert new empty paragraph at cursor position (or last if no cursor in text)
import {api} from 'writer'
api.document.insertTextNode()

Example

// Insert a preamble with content after the first node in the document as part of your own transaction
import {api} from 'writer'
const firstNode = api.document.nodes()
api.editorSession.transaction(tx => {
  api.document.insert({
    tx: tx,
    type: 'preamble',
    text: 'My new preamble',
    mode: 'after',
    refNode: nodes[0] // First node
  })
})

document.insertBlockNode(options) ⇒ object | undefined

Insert a block node in specified place of the document using an insert strategy based on the options object. The data property that defines the node is mandatory. All other properties are optional. (To insert a node the node type must be defined by a plugin and known to the Writer.) Return the created node only if using an existing transaction (tx).

  • data: Mandatory object describing the node, may or may not have an id
  • tx: Optional TransactionDocument
  • mode: Insert node where: first, last, before or after
  • refNode: If insert mode is before or after a reference node is mandatory
Param Type Description
options Object | string Optional object with optional properties

Example

// Insert a new node of type "myquote"
import {api} from 'writer'

api.document.insertBlockNode({
  data: {
    type: 'myquote',
    content: 'People who deny the existence of dragons are often eaten by dragons'
    attribution: 'Ursula K. Le Guin'
  }
})

Example

// Insert a new node after the first node in the document as part of your own transaction
import {api} from 'writer'

const firstNode = api.document.nodes()
api.editorSession.transaction(tx => {
  api.document.insert({
    tx: tx,
    data: {
      type: 'myquote',
      content: 'People who deny the existence of dragons are often eaten by dragons'
      attribution: 'Ursula K. Le Guin'
    },
    mode: 'after',
    refNode: nodes[0] // First node
  })
})

document.nodes(filter) ⇒ array

Fetch all nodes in the document, optionally filtered by type

Param Type Default Description
filter string | null null Optional filter returned nodes by type

Example

// Fetch all image nodes in the document
import {api} from 'writer'

const nodes = api.document.nodes('ximimage')

document.triggerFetchResourceNode(node, info)

Triggers a fetch resource from a nodes url property. For example when node has properties that is only referenced through an external url.

Param Type Description
node BlockNode The resource node
info Object Object with information to created substance transaction

Example

import {api} from 'writer'

// Fetch oauth from Instagram, don't save this fetch in undo/redo history
api.document.triggerFetchResourceNode(this.props.node, { history: false })

document.insertInlineNode(name, data) ⇒ *

Insert an inline node at current selection

Param Type Description
name string The plugin which inserts inline node
data object Data defined by node schema

document.getPreviousNode(nodeId) ⇒ *

Retrieve the previous node. Uses the focused surface to get all nodes in that surface/container and then returns the previous node from the one sent in

Param Type
nodeId string

document.deleteNode(name, node, options)

Deletes a node from the document. Triggers a 'document:changed' event to all document:changed listeners except the plugin making the change.

Emits: document:changed

Param Type Description
name string Plugin name
node object Node to delete, must contain an id
options object Optional options object. Set replaceWithDefaultTextNode to true to replace node with default text node

Example

import {api} from 'writer'
api.deleteNode(this.props.node);

document.getDocumentNodes() ⇒ Array

Deprecated

Get all nodes in the document

results matching ""

    No results matching ""