# 工具栏配置 ## 示例代码 ```typescript new LinwitDocEditor({ element: "#aiEditor", toolbarKeys: ["undo", "redo", "brush", "eraser", "|", "heading", "font-family", "font-size", "|", "bold", "italic", "underline", "strike", "link", "code", "subscript", "superscript", "hr", "todo", "emoji", "|", "highlight", "font-color", "|", "align", "line-height", "|", "bullet-list", "ordered-list", "indent-decrease", "indent-increase", "break", "|", "image", "video", "attachment", "quote", "code-block", "table", "|", "source-code", "printer", "fullscreen", "ai" ], }) ``` 以上的配置为 LinwitDocEditor 工具类的默认配置,`"|"` 代表的是分割线,其他的含义如下: - undo: 撤销 - redo: 重做 - brush: 格式刷 - eraser: 清除格式 - heading: 正文/标题 - font-family: 字体 - font-size: 字号 - bold: 加粗 - italic: 斜体 - underline: 下划线 - strike: 删除线 - link: 链接 - code: 行内代码 - subscript: 下标 - superscript: 上标 - hr: 分割线 - todo: 任务列表 - emoji: 表情 - highlight: 高亮 - font-color: 字体颜色 - align: 对齐 - line-height: 行高 - bullet-list: 无序列表 - ordered-list: 有序列表 - indent-decrease: 减少缩进 - indent-increase: 增加缩进 - break: 强制换行 - image: 图片 - video: 视频 - attachment: 附件 - quote: 引用 - container: 高亮块 - code-block: 代码块 - table: 表格 - source-code: 源代码 - printer: 打印 - fullscreen: 全屏 - ai: AI改写 另外,商业版还支持以下的配置: - pdf-export:PDF 导出 - word-export: Word 导出 - word-import: Word 导入 - chat: AI 对话 ## 设置工具栏按钮尺寸 通过配置 `toolbarSize` 用于设置工具栏按钮尺寸: ```typescript new LinwitDocEditor({ element: "#aiEditor", toolbarSize: 'medium', // 默认 small,可选 'small' | 'medium' | 'large' }) ``` ## 排除部分工具 通过配置 `toolbarExcludeKeys` 用于排除部分工具的初始化,示例代码如下: ```typescript new LinwitDocEditor({ element: "#aiEditor", toolbarExcludeKeys: ["heading", "font-family", "font-size", "ai"], }) ``` ## 自定义工具栏 在 LinwitDocEditor 中,我们可以通过在 `toolbarKeys` 配置中进行自定义工具栏的扩展,配置示例代码如下: ```typescript 7-12 new LinwitDocEditor({ element: "#aiEditor", toolbarKeys: ["undo", "redo", "brush", "eraser", "|", "heading", "font-family", "font-size", "|", { icon: "", html: "
", onClick: (event, editor) => { //点击事件 }, tip: "鼠标移动上去的提示内容", }, "printer", "fullscreen", "ai" ], }) ``` 自定义工具类配置项说明: - **icon**:用于菜单显示的 icon,暂时只支持 svg 配置,svg icon 建议使用 https://remixicon.com 提供的 icon,以保证和 LinwitDocEditor 的 icon 风格保持统一。 - **html**:自定义菜单的 html 内容,这个配置会覆盖 icon 配置,导致 icon 不生效, `icon` 和 `html` 只能配置其中一个。 - **onClick**:鼠标点击菜单的事件监听。 - **tip**:鼠标移动到菜单显示的文字提示,支持国际化配置。 **tip国际化配置示例代码** ```ts 12,18,21 new LinwitDocEditor({ element: "#aiEditor", toolbarKeys: ["undo", "redo", "brush", "eraser", "|", "heading", "font-family", "font-size", "|", { icon: "", html: "
", onClick: (event, editor) => { //点击事件 }, tip: "myKey", }, "printer", "fullscreen", "ai" ], i18n: { zh: { "myKey": "自定义国际化显示中文内容", }, en: { "myKey": "Custom your i18n content", } } }) ``` ## 工具栏分组 工具栏分组指的是可以把一部分工具,归类到一个分组里,通过点击分组的按钮,弹出菜单内容。如下图所示: ![](../../assets/image/menu-group.png) 配置代码如下: ```typescript 11-15 new LinwitDocEditor({ element: "#aiEditor", toolbarKeys: ["undo", "redo", "brush", "eraser", "|", "heading", "font-family", "font-size", "|", "bold", "italic", "underline", "strike", "link", "code", "subscript", "superscript", "hr", "todo", "emoji", "|", "highlight", "font-color", "|", "align", "line-height", "|", "bullet-list", "ordered-list", "indent-decrease", "indent-increase", "break", "|", "image", "video", "attachment", "quote", "code-block", "table", "|", "source-code", "printer", "fullscreen", "ai", { // title:"menu group", // icon:``, toolbarKeys: ["undo", "redo", "brush"] } ], }) ``` 如上所示,通过在 `toolbarKeys` 配置一个 `MenuGroup` 对象,即可对菜单进行分组。 `MenuGroup` 支持的配置如下: - **title**: (非必填)鼠标移动上去默认显示的内容 - **icon**: (非必填)分组按钮的 icon - **toolbarKeys**: (必填)分组的菜单 keys **高级用法:在工具栏分组中自定义菜单** 在菜单分组中,添加自定义的菜单按钮,示例代码如下: ```typescript 15-22 new LinwitDocEditor({ element: "#aiEditor", toolbarKeys: ["undo", "redo", "brush", "eraser", "|", "heading", "font-family", "font-size", "|", "bold", "italic", "underline", "strike", "link", "code", "subscript", "superscript", "hr", "todo", "emoji", "|", "highlight", "font-color", "|", "align", "line-height", "|", "bullet-list", "ordered-list", "indent-decrease", "indent-increase", "break", "|", "image", "video", "attachment", "quote", "code-block", "table", "|", "source-code", "printer", "fullscreen", "ai", { // title:"menu group", // icon:``, toolbarKeys: ["undo", "redo", "brush", { icon: "", html: "
", onClick: (event, editor) => { //点击事件 }, tip: "myKey", }, ] } ], }) ``` 其具体含义参考:[#自定义工具栏](#自定义工具栏)