# API documentation ## Initialize LinwitDocEditor is the core class of the entire editor, and its initialization code is as follows: ```typescript const aiEditor = new LinwitDocEditor({ element: "#aiEditor", placeholder: "Click to Input Content...", }) ``` ## Methods Sample: ```typescript const aiEditor = new LinwitDocEditor({ element: "#aiEditor", placeholder: "Click to Input Content...", }) //Get the editing content and read it as an HTML string. const html = aiEditor.getHtml(); console.log(html) ``` LinwitDocEditor provides the following methods: - `getHtml()`: Get the HTML content of the current editor. - `getJson()`: Get the JSON description data of the current editor. - `getText()`: Get the plain text content (excluding HTML) of the current editor. - `getSelectedText()`: Get the plain text content (excluding HTML) of the currently selected text in the editor. - `getMarkdown()`: Get the markdown-formatted content of the current editor. - `getOptions()`: Get the configuration information of the current editor. - `getAttributes(name)`: get the properties of the node or mark at the current focus position. - `getOutline()`: Get the outline of the content, returning an array with the following format: ```json [ { "id":"aie-heading-1", "text":"Installation", "level":2, "pos":1203, "size":4 }, { "id":"aie-heading-2", "text":"Usage", "level":2, "pos":1229, "size":4 }, { "id":"aie-heading-3", "text":"Configuration", "level":2, "pos":2744, "size":4 } ] ``` In the above outline content, each field's meaning is as follows: > -text: Directory name (or content) > -level: Directory level, values range from 1 to 6, corresponding to HTML tags h1 to h6 > -pos: Position of the directory node in the document > -size: Size of the content of the directory node - `focus()`: Focus the editor. - `focusPos(pos)`: Focus on the specified position in the editor. - `focusStart()`: Focus the editor and set the cursor at the beginning. - `focusEnd()`: Focus the editor and set the cursor at the end. - `isFocused()`: Check if the editor is currently focused. - `blur()`: Blur the editor. - `insert(content)`: Dynamically insert HTML, text content. **Note:** This method is ineffective when the aiEditor has not gained focus. You can first focus by calling `aiEditor.focus().insert(string)` and then insert content. - `insertMarkdown(content)`: Dynamically insert markdown content. - `clear()`: Delete all content in the editor. - `setEditable(value)`: Set the editing mode of the editor. The value can be true or false. - `setContent(value)`: Dynamically set the content of the editor, supporting json, html, and text settings. - `setMarkdownContent(value)`: Dynamically set the content of the editor, supporting the setting of markdown content. - `clear()`: Delete all content in the editor. - `isEmpty()`: Check if the editor has any content. - `removeRetention()`: Remove automatically recorded and saved editing content from the editor. - `destroy()`: Destroy the current instance, commonly used in React or Vue. It's called when the component is unmounted. - `changeLang(lang)`: Switch the internationalization language of the current editor. For more information, refer to the 《[Internationalized](../config/i18n.md)》 section in the documentation. ## Listening ## content change ```typescript const aiEditor = new LinwitDocEditor({ element: "#aiEditor", placeholder: "Click to Input Content...", onChange:(aiEditor)=>{ // When the editor content changes, console.log the editor's HTML content... console.log(aiEditor.getHtml()) } }) ``` ### AIEditor get focus ```typescript const aiEditor = new LinwitDocEditor({ element: "#aiEditor", placeholder: "Click to Input Content...", onFocus:(aiEditor)=>{ console.log("get the focus....") } }) ``` ### AIEditor Instance Destroy On Blur ```typescript const aiEditor = new LinwitDocEditor({ element: "#aiEditor", placeholder: "Click to Input Content...", onBlur:(aiEditor)=>{ console.log("blur....") } }) ``` ### AIEditor Instance Created ```typescript const aiEditor = new LinwitDocEditor({ element: "#aiEditor", placeholder: "Click to Input Content...", onCreated:(aiEditor)=>{ console.log("AIEditor instance created....") } }) ``` ### AIEditor Instance Destroy ```typescript const aiEditor = new LinwitDocEditor({ element: "#aiEditor", placeholder: "Click to Input Content...", onDestroy:(aiEditor)=>{ console.log("AIEditor instance destory....") } }) ```