Movatterモバイル変換


[0]ホーム

URL:


API Reference -@liveblocks/node-lexical

@liveblocks/node-lexical provides a Node.js package to export and modifyLexical documents on the server.

withLexicalDocument

withLexicalDocument is the main entry point to modifying a document on theserver. It takes a room ID and aLiveblocks Node client,and returns a callback used to work with Lexical documents stored in Liveblocks.

import{ Liveblocks}from"@liveblocks/node";import{ withLexicalDocument}from"@liveblocks/node-lexical";
const liveblocks=newLiveblocks({ secret:"",});
awaitwithLexicalDocument({ roomId:"your-room-id", client: liveblocks},async(doc)=>{// Modify your Lexical `doc`// ...});
Returns
  • returnsT

    Returns the value you return from thedoc callback.

Options
  • roomIdstringRequired

    The ID of the room to use.

  • clientLiveblocksRequired

    TheLiveblocksclient to use.

  • nodesKlass<LexicalNode>[] | LexicalNodeReplacement[]

    Optional. The Lexical nodes used in the document. Will extend the defaultschema which uses Liveblocks mentions and Liveblocks comments.

Returning data

Get your editor’s text content by returningdoc.getTextContent inside thecallback.

const textContent=awaitwithLexicalDocument({ roomId:"my-room-id", client: liveblocks},async(doc)=>{return doc.getTextContent();});
// "My content"console.log(TextContent);

Custom nodes

If your Lexical document has custom nodes, they must be passed into thewithLexicalDocument, similarly to with a front end Lexical client.

import{ CodeNode}from"@lexical/code";
awaitwithLexicalDocument({ roomId:"my-room-id", client: liveblocks, nodes:[CodeNode]},async(doc)=>{// Modify your Lexical `doc`// ...});

Lexical document API

You can easily modify your document with the Lexical document API.

doc.update

Liveblocks providesdoc.update which is a callback function similar toLexical’seditor.update. This makes it easy to use Lexical’s editor functions.Any edits will be persisted and appear in realtime to connected users as soon astheupdate promise resolves. Unlike Lexical’seditor.update, this change isalways discrete. The callback can also be anasync function.

awaitwithLexicalDocument({ roomId:"my-room-id", client: liveblocks},async(doc)=>{await doc.update(()=>{// Make your modifications// ...});});
Returns
Nothing
Arguments
  • callback() => void

    Callback function where you should handle your modifications.

Example usage

Here’s an example of some modifications to a Lexical document.

import{ $getRoot}from"lexical";import{ $createParagraphNode, $createTextNode}from"lexical/nodes";
awaitwithLexicalDocument({ roomId:"my-room-id", client: liveblocks},async(doc)=>{await doc.update(()=>{// Adding a paragraph node with contained text nodeconst root=$getRoot();const paragraphNode=$createParagraphNode();const textNode=$createTextNode("Hello world"); paragraphNode.append(textNode); root.append(paragraphNode);});});

doc.getTextContent

Returns the text content from the root node as astring.

const textContent=awaitwithLexicalDocument({ roomId:"my-room-id", client: liveblocks},async(doc)=>{return doc.getTextContent();});
Returns
  • contentstring

    Returns the text retrieved from the document.

Arguments
None

doc.getEditorState

Returns Lexical’seditorState.

const editorState=awaitwithLexicalDocument({ roomId:"my-room-id", client: liveblocks},async(doc)=>{return doc.getEditorState();});
Returns
  • editorStateEditorState

    Your editor’s Lexical state.

Arguments
None

doc.getLexicalEditor

Returns a headless Lexical editor.@lexical/headless.

const headlessEditor=awaitwithLexicalDocument({ roomId:"my-room-id", client: liveblocks},async(doc)=>{return doc.getLexicalEditor();});
Returns
  • headlessEditorLexicalEditor

    Your headless Lexical editor.

Arguments
None

doc.toJSON

Returns a serialized JSON object representation of your document. See Lexical’sSerialization & Deserializationpage for more information.

const docAsJSON=awaitwithLexicalDocument({ roomId:"my-room-id", client: liveblocks},async(doc)=>{return doc.toJson();});
Returns
  • docAsJsonSerializedEditorState<SerializedLexicalNode>

    A serialized JSON object representation of your document.

Arguments
None

doc.toMarkdown

Returns a markdownstring of your document. See Lexical’s@lexical/markdown page formore information.

const markdown=awaitwithLexicalDocument({ roomId:"my-room-id", client: liveblocks},async(doc)=>{return doc.toMarkdown();});
Returns
  • markdownstring

    Returns the markdown string.

Arguments
None

We use cookies to collect data to improve your experience on our site. Read ourPrivacy Policy to learn more.


    [8]ページ先頭

    ©2009-2025 Movatter.jp