Skip to content

配置总览 ​

全部配置都写在 new LarkDoc({ ... }) 的入参里。关掉某个能力只是隐藏入口、阻止新操作,已有 JSON 仍能正常打开。

最常用的一段 ​

js
const doc = new LarkDoc({
  element: '#editor',
  title: '未命名文档',
  content: '<p></p>',
  placeholder: '输入正文,或输入 / 插入内容',
  readonly: false,
  theme: 'light',                     // 'light' | 'dark'

  storage: 'local',                   // 'none' = 完全不落盘
  autosave: { enabled: true, delay: 650 },

  features: { ai: false, folding: true },   // 关掉不需要的能力
  toolbarKeys: ['history', 'headings', 'marks', 'insert'],

  importExport: { importEnabled: true, exportEnabled: true },
  media: { htmlMode: 'inline' },      // HTML 产物里图片内嵌还是只留地址

  onReady: ({ editor }) => {},
  onUpdate: ({ html }) => {},
})

顶层配置 ​

配置项默认值说明
element必填挂载容器,CSS 选择器或 HTMLElement。
content''初始内容,HTML / Tiptap JSON / DocumentRecord 都行。
title'未命名文档'文档标题。
placeholder'输入正文,或输入 / 插入内容'空文档提示。
readonlyfalse只读模式。
theme'light'主题。
storage'local'草稿落点:IndexedDB → localStorage → 内存三级降级。'none' 则完全不落盘。
autofocusfalse挂载后自动聚焦。
contentFormat'auto'旧数据归一化:'auto' / 'vditor' / 'html',见旧数据导入。
toolbarKeys / toolbarExcludes-工具栏白名单 / 黑名单,见工具栏配置。
features全开能力开关,见下表。
uploader内置本地读取图片上传钩子,见上传器。
ai内置 MockAI 服务接管,见 AI 组件。
network{ mode: 'open' }出网策略,见网络策略。
mode / documentId / user / capabilities-会话与权限,见协同与权限。
collaboration / authorization / versioning / comments-五大 Provider 快捷注入。
onReady / onUpdate / onSave / onError / onDestroy-生命周期回调,见实例与事件。

features 能力开关 ​

features: { ai: false } 就关掉 AI 入口。键名全表:

键对应能力键对应能力
history撤销 / 重做search查找替换
headings标题outline目录
marks行内格式folding折叠块
textStyle文字样式blockHandle块句柄
blockStyle段落样式blockDrag块拖拽
tables表格aiAI 组件
images图片viewModes视图模式
codeBlocks代码块shortcuts快捷键面板
math数学公式insert插入菜单
emoji表情persistence草稿持久化
templates模板importExport导入导出
callouts高亮块diagram图表(mermaid)
columns分栏

几组高频配置 ​

autosave 自动保存 ​

字段默认值说明
enabledtrue默认开。改完正文后 delay 毫秒落一次草稿。
delay650防抖毫秒;0 = 每次改动立刻存。填负数 / NaN 会回落到 650。

两种「关」不一样,别混:

  • autosave.enabled: false → 只停自动那一层,手动保存按钮和 save() 照旧可用;
  • features.persistence: false 或 storage: 'none' → 整套持久化下线,不读草稿也不写。

importExport 导入 / 导出 ​

两个入口各自显隐,格式也各自白名单。features.importExport 是它们共同的总闸。

js
importExport: {
  importEnabled: true,                                  // false = 「导入」按钮消失
  exportEnabled: true,                                  // false = 「导出」下拉消失
  importLabel: '导入', exportLabel: '导出',
  importFormats: ['html', 'json', 'md', 'docx'],
  exportFormats: ['html', 'json', 'md', 'txt', 'docx', 'print'],   // 数组顺序 = 菜单顺序
}

importFormats 同时决定文件选择框的 accept;不在白名单里的扩展名会被挡下并提示,不会静默失败。格式 id 对照见导入导出。

media 媒体在 HTML 里的写法 ​

只影响 HTML 产物(getHTML()、导出 HTML);JSON 不动,永远可无损往返。

字段默认值说明
htmlMode'inline'inline = 直出 <figure><img>,正文能直接看到图;link = 只留一条媒体地址链接。两种档位都原样保留 src 是 https://… 的远程地址,不转存、不转 base64。
linkText''link 档的链接文案,支持 {name} / {url} / {type} 占位;留空用地址本身。
newTabtruelink 档是否新窗口打开。
js
// 全局:只留地址,适合贴到邮件 / IM / 工单系统
new LarkDoc({ element: '#editor', media: { htmlMode: 'link', linkText: '{name}' } })

// 单次覆盖,不改实例配置
const html = doc.getHTML({ media: { mode: 'link' } })

link 档是单向的:链接态 HTML 再导回编辑器会变成普通超链接,图片不会复原。要可逆请用 JSON。

modes 顶栏「编辑 / 修订 / 阅读」 ​

顶栏右上角那个按钮的三种状态。全部字段都可选,不传就是全开:

js
modes: {
  default: 'edit',                          // 首屏模式 'edit' | 'suggest' | 'read'
  allow: ['edit', 'suggest', 'read'],       // 下拉里保留哪几项
  persist: true,                            // 是否记住用户上次选的
  labels: { read: '预览' },                  // 改某一项的叫法
  shortcuts: true,                          // 要不要 ⌘⌥E / ⌘⌥X / ⌘⌥V
}
字段默认值说明
default'edit'初始模式。不在 allow 里就自动回落到 allow[0]。
allow三项全留下拉裁剪。只剩一项时按钮变成静态文字(无箭头、点不动)。传空数组或非法值会回落成三项全留 —— 想关切换请写 allow: ['edit']。
persisttruefalse = 不读写 localStorage,每次打开都从 default 开始。
labels{}只认 edit / suggest / read 三个键,值是非空字符串;提示条跟着改写(已切换为预览模式)。
shortcutstruefalse = 三套键位全部不接管,也不会 preventDefault,宿主可以自己用这些组合键。
js
// 只读站:不留修订入口,打开即阅读态,也不记住状态
new LarkDoc({ element: '#viewer', modes: { allow: ['edit', 'read'], default: 'read', persist: false } })

配置压不过协同权限

会话里没有编辑权限时,suggest 会被服务端降级成 read —— 配 allow: ['suggest'] 也强开不出修订态。详见协同与权限。

已知边界:shortcuts: false 只关实际按键,快捷键帮助面板(⌘/)里那三行仍是静态文案,不会跟着消失。

其余分组 ​

不想用扁平项、想直接传内部结构也可以:

分组关键字段用途
commandsdisabled / allow按命令 id 禁用或白名单。
blockMenudisabled / allow块句柄菜单动作裁剪(duplicate / delete 等)。
layoutheaderVisible / titleBarFixed / toolbarFixed顶栏显隐与吸附。headerVisible: false 时操作入口收进工具栏「⋯」。
modesdefault / allow / persist / labels / shortcuts顶栏编辑 / 修订 / 阅读三态,见上一节。
limitstitleLength 120、maxLength 0、maxImageSize 5MB、maxTableRows 9、maxIndent 5、maxSnapshots 20各项上限(maxLength: 0 = 不限)。
performancechangeDebounce 16、syntaxHighlight true、diagramScriptUrl null通知防抖、代码高亮、图表脚本地址(默认走包内懒加载,内网不用配)。