# Basic configuration

## Samples

```typescript
new LinwitDocEditor({
    element: "#aiEditor",
    placeholder: "Click to Input Content...",
    theme: "light",
    content: 'LinwitDocEditor is an Open Source Rich Text Editor Designed for AI. ',
    contentIsMarkdown: false,
    contentRetention: true,
    contentRetentionKey: 'ai-editor-content',
    draggable: true,
    pasteAsText: false,
    textCounter: (text: string) => number,
    ai: {
        models: {
            spark: {
                appId: "***",
                apiKey: "***",
                apiSecret: "***",
            }
        }
    }
})
```


- **element**: The DOM node mounted by the editor, which can be a node description of the string type, such as `#editor` or  `.editor`, or a DOM node object.
- **placeholder**: A placeholder that appears when the editor has nothing to offer.
- **theme**: The theme can be configured as "light" or "dark", and the default is the light theme.
- **content**: The content of the edit.
- **contentIsMarkdown**: Whether the initialized content is markdown content. If so, you need modify this value to `true`.
- **contentRetention**: Whether to automatically save (cache) the currently edited content, which is set to the following `false` by default.
- **contentRetentionKey**: The key value localStorage that is automatically saved (cached) to , defaults to: `ai-editor-content` .
- **draggable**: Whether the editor can be resized by dragging the lower right corner.
- **pasteAsText**: When pasting, paste as text. When set to `true`, the pasted web page content automatically clears the color, link, font, font size, bold, strikethrough and other styles.
- **textCounter**: Text counter, used to display the current amount of text in the lower right corner. You can customize the counting algorithm here.
- **AI**: For more information about AI-related configurations, see [AI Configuration](/zh/ai/base.md).

> Note: Starting from v1.2.0, if the initialized content is `markdown` content, you need to add the `contentIsMarkdown:true` configuration at the same time.
