跳至主要内容

Class: CodeNode

@lexical/code.CodeNode

層次結構

構造函式

constructor

new CodeNode(language?, key?): CodeNode

參數

名稱類型
language?null | string
key?string

返回值

CodeNode

覆蓋

ElementNode.constructor

定義於

packages/lexical-code/src/CodeNode.ts:90

函式

canIndent

canIndent(): false

返回值

false

覆蓋

ElementNode.canIndent

定義於

packages/lexical-code/src/CodeNode.ts:315


collapseAtStart

collapseAtStart(): boolean

返回值

boolean

覆蓋

ElementNode.collapseAtStart

定義於

packages/lexical-code/src/CodeNode.ts:319


createDOM

createDOM(config): HTMLElement

在對應過程中調用,以確定要插入到 DOM 中的節點。

此函式必須返回一個 HTMLElement。嵌套元素不受支持。

在更新生命周期的此階段,請勿嘗試更新 Lexical EditorState。

參數

名稱類型描述
configEditorConfig在對應過程中允許訪問像 EditorTheme(以應用類別)等事物。

返回值

HTMLElement

覆蓋

ElementNode.createDOM

定義於

packages/lexical-code/src/CodeNode.ts:97


exportDOM

exportDOM(editor): DOMExportOutput

控制此節點如何序列化為 HTML。這對於 Lexical 和非 Lexical 編輯器之間的複製和粘貼,或具有不同命名空間的 Lexical 編輯器很重要,此情況下主要的傳輸格式是 HTML。如果您通過 $generateHtmlFromNodes 序列化為 HTML,這也很重要。您還可以使用此函式來構建自己的 HTML 渲染器。

參數

名稱類型
editorLexicalEditor

返回值

DOMExportOutput

覆蓋

ElementNode.exportDOM

定義於

packages/lexical-code/src/CodeNode.ts:137


exportJSON

exportJSON(): SerializedCodeNode

控制此節點如何序列化為 JSON。這對於共享相同命名空間的 Lexical 編輯器之間的複製和粘貼很重要。如果您將 JSON 序列化為某個地方的持久存儲,也很重要。參見 Serialization & Deserialization

返回值

SerializedCodeNode

覆蓋

ElementNode.exportJSON

定義於

packages/lexical-code/src/CodeNode.ts:227


getIsSyntaxHighlightSupported

getIsSyntaxHighlightSupported(): boolean

返回值

boolean

定義於

packages/lexical-code/src/CodeNode.ts:338


getLanguage

getLanguage(): undefined | null | string

返回值

undefined | null | string

定義於

packages/lexical-code/src/CodeNode.ts:334


insertNewAfter

insertNewAfter(selection, restoreSelection?): null | ParagraphNode | TabNode | CodeHighlightNode

參數

名稱類型預設值
selectionRangeSelectionundefined
restoreSelectionbooleantrue

返回值

null | ParagraphNode | TabNode | CodeHighlightNode

覆蓋

ElementNode.insertNewAfter

定義於

packages/lexical-code/src/CodeNode.ts:237


setLanguage

setLanguage(language): void

參數

名稱類型
languagestring

返回值

void

定義於

packages/lexical-code/src/CodeNode.ts:327


updateDOM

updateDOM(prevNode, dom, config): boolean

當節點更改並且應根據更新中可能發生的任何更改更新 DOM 時調用。

返回 "true" 將導致 lexical 卸載並重新創建 DOM 節點(通過調用 createDOM)。如果元素標籤發生變化,則需要這樣做。

參數

名稱類型
prevNodeCodeNode
domHTMLElement
configEditorConfig

返回值

boolean

覆蓋

ElementNode.updateDOM

定義於

packages/lexical-code/src/CodeNode.ts:111


clone

clone(node): CodeNode

克隆此節點,創建一個具有不同鍵的新節點並將其添加到 EditorState(但不附加到任何地方!)。所有節點必須實現此函式。

參數

名稱類型
nodeCodeNode

返回值

CodeNode

覆蓋

ElementNode.clone

定義於

packages/lexical-code/src/CodeNode.ts:86


getType

getType(): string

返回此節點的字串類型。每個節點必須實作此函式,並且在編輯器上註冊的節點中必須是唯一的。

返回值

string

覆蓋

ElementNode.getType

定義於

packages/lexical-code/src/CodeNode.ts:82


importDOM

importDOM(): null | DOMConversionMap

返回值

null | DOMConversionMap

覆蓋

ElementNode.importDOM

定義於

packages/lexical-code/src/CodeNode.ts:152


importJSON

importJSON(serializedNode): CodeNode

控制如何從 JSON 反序列化此節點。這通常是樣板,但提供了節點實作與序列化介面之間的抽象,這在您對節點架構進行重大更改(例如添加或刪除屬性)時可能很重要。參見 序列化與反序列化

參數

名稱類型
serializedNodeSerializedCodeNode

返回值

CodeNode

覆蓋

ElementNode.importJSON

定義於

packages/lexical-code/src/CodeNode.ts:219