工具栏配置
示例代码
typescript
new AiEditor({
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"
],
})
以上的配置为 AiEditor 工具类的默认配置,"|"
代表的是分割线,其他的含义如下:
- 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: 人工智能
另外,商业版还支持以下的配置:
- pdf-export:PDF 导出
- word-export: Word 导出
- word-import: Word 导入
- chat: AI 对话
设置工具栏按钮尺寸
通过配置 toolbarSize
用于设置工具栏按钮尺寸:
typescript
new AiEditor({
element: "#aiEditor",
toolbarSize: 'medium', // 默认 small,可选 'small' | 'medium' | 'large'
})
排除部分工具
通过配置 toolbarExcludeKeys
用于排除部分工具的初始化,示例代码如下:
typescript
new AiEditor({
element: "#aiEditor",
toolbarExcludeKeys: ["heading", "font-family", "font-size", "ai"],
})
自定义工具栏
在 AiEditor 中,我们可以通过在 toolbarKeys
配置中进行自定义工具栏的扩展,配置示例代码如下:
typescript
new AiEditor({
element: "#aiEditor",
toolbarKeys: ["undo", "redo", "brush", "eraser",
"|", "heading", "font-family", "font-size",
"|",
{
icon: "<svg .....>",
html: "<div ...>",
onClick: (event, editor) => {
//点击事件
},
tip: "鼠标移动上去的提示内容",
},
"printer", "fullscreen", "ai"
],
})
自定义工具类配置项说明:
- icon:用于菜单显示的 icon,暂时只支持 svg 配置,svg icon 建议使用 https://remixicon.com 提供的 icon,以保证和 AiEditor 的 icon 风格保持统一。
- html:自定义菜单的 html 内容,这个配置会覆盖 icon 配置,导致 icon 不生效,
icon
和html
只能配置其中一个。 - onClick:鼠标点击菜单的事件监听。
- tip:鼠标移动到菜单显示的文字提示,支持国际化配置。
tip国际化配置示例代码
ts
new AiEditor({
element: "#aiEditor",
toolbarKeys: ["undo", "redo", "brush", "eraser",
"|", "heading", "font-family", "font-size",
"|",
{
icon: "<svg .....>",
html: "<div ...>",
onClick: (event, editor) => {
//点击事件
},
tip: "myKey",
},
"printer", "fullscreen", "ai"
],
i18n: {
zh: {
"myKey": "自定义国际化显示中文内容",
},
en: {
"myKey": "Custom your i18n content",
}
}
})
工具栏分组
工具栏分组指的是可以把一部分工具,归类到一个分组里,通过点击分组的按钮,弹出菜单内容。如下图所示:
配置代码如下:
typescript
new AiEditor({
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:`<svg.... />`,
toolbarKeys: ["undo", "redo", "brush"]
}
],
})
如上所示,通过在 toolbarKeys
配置一个 MenuGroup
对象,即可对菜单进行分组。
MenuGroup
支持的配置如下:
- title: (非必填)鼠标移动上去默认显示的内容
- icon: (非必填)分组按钮的 icon
- toolbarKeys: (必填)分组的菜单 keys
高级用法:在工具栏分组中自定义菜单
在菜单分组中,添加自定义的菜单按钮,示例代码如下:
typescript
new AiEditor({
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:`<svg.... />`,
toolbarKeys: ["undo", "redo", "brush",
{
icon: "<svg .....>",
html: "<div ...>",
onClick: (event, editor) => {
//点击事件
},
tip: "myKey",
},
]
}
],
})
其具体含义参考:#自定义工具栏