跳转到主要内容
一篇在线文档是由若干个块元素组成的树,不同类型的 BlockElment 内部可嵌套的元素的类型是不同,例如 高亮块 里可以嵌套任意的BlockElement,但是 段落块 下只能其嵌套 InlineElement 。 1 个块元素的数据结构如下:
{
  "blockType": enum(BlockType),             // 块元素类型,详见文档底部的 `BlockType` 枚举类型
  /**
   * 以下为所有支持的 Block 类型,如 Heading、Paragraph。 
   * 不同类型的 Block 有自己的 property。
  */
  "blockquote": Object(Callout),
  "callout": Object(Callout),
  "columns": Object(Columns),
  "heading": Object(Heading),
  "paragraph": Object(Paragraph),
  "orderedList": Object(OrderedList)
  "unorderedList": Object(UnorderedList),
  "table": Object(Table),
  // 每1种 Block 都有自己能支持的 BlockChildren,详见每个 Block 类型里的 `children` 的描述

  "children": BlockChildren[ ],

}

块元素数据结构说明

一篇在线文档由若干块元素 组成的树状结构构成。不同类型的块元素内部可嵌套的子元素类型不同:
  • calloutcolumnschildren只能是 BlockElement 数组
  • paragraphheadingorderedListunorderedListblockquotechildren只能是 InlineElement 数组
  • table暂不支持指定children

BlockType 枚举

枚举值描述
paragraph段落块。
heading标题块。
blockquote引用块。
callout高亮块。
columns分栏块。
orderedList有序列表块。
unorderedList无序列表块。
table表格块。
tableRow表格行块(表格块的子块)。
tableCell表格单元格块(表格块的子块)。
暂未支持的元素类型统一返回Undefined

段落

{
  "blockType": "paragraph",
  "paragraph": {
    "text": "段落文字内容",
    "indent": { "left": 32 },
    "folded": false
  },
  "children": [InlineElement]
}
字段名类型必填含义
textstring段落的文本内容。
indentobject(Indent)缩进值,left必须是大于 0 的整数。
foldedboolean是否折叠段落(折叠 indent 值比当前段落大的块元素)。
  • childrenInlineElement 数组
  • paragraph对象不可省略,内容为空时须传{}

标题

{
  "blockType": "heading",
  "heading": {
    "level": 1,
    "text": "一级标题"
  },
  "children": [InlineElement]
}
字段名类型必填含义
textstring标题的文本内容。
levelinteger(enum)标题级别,取值16,1 表示一级标题。
  • childrenInlineElement 数组

引用

{
  "blockType": "blockquote",
  "blockquote": {
    "text": "引用内容",
    "indent": { "left": 32 }
  },
  "children": [InlineElement]
}
字段名类型必填含义
textstring引用里的文字。
indentobject(Indent)具体的缩进值。
  • childrenInlineElement 数组

高亮块

{
  "blockType": "callout",
  "callout": {
    "sticker": "灯泡",
    "showstk": true,
    "color": "#333333",
    "border": "#FFD700",
    "bgcolor": "#FFF9C4"
  },
  "children": [BlockElement]
}
字段名类型必填含义
stickerstring(enum Emoji)表情编码,详见 表情(Emoji)枚举值
showstkboolean是否显示表情。
colorstring字色。
borderstring边框颜色。
bgcolorstring背景色。
  • childrenBlockElement 数组(不能是 InlineElement)。

分栏

{
  "blockType": "columns",
  "columns": {
    "size": 2,
    "noFill": false
  },
  "children": [BlockElement]
}
字段名类型必填含义
sizenumber分栏数量。
noFillboolean是否自动填充背景色。
  • childrenBlockElement 数组(不能是 InlineElement)。

有序列表

{
  "blockType": "orderedList",
  "orderedList": {
    "list": {
      "listId": "list-001",
      "level": 0,
      "listStyleType": "decimal",
      "listStyle": {
        "format": "decimal",
        "text": "%1.",
        "align": "left"
      },
      "symbolStyle": {
        "bold": false
      }
    },
    "indent": { "left": 32 }
  },
  "children": [InlineElement]
}
字段名类型必填含义
listobject(ListObject)有序列表的具体属性,详见ListObject(列表对象)说明。
indentobject(Indent)缩进值,left必须是大于 0 的整数。
  • childrenInlineElement 数组

无序列表

{
  "blockType": "unorderedList",
  "unorderedList": {
    "list": {
      "listId": "list-002",
      "level": 0,
      "listStyleType": "disc",
      "listStyle": {
        "format": "disc",
        "text": "%1",
        "align": "left"
      },
      "symbolStyle": {
        "bold": false
      }
    },
    "indent": { "left": 32 }
  },
  "children": [InlineElement]
}
字段名类型必填含义
listobject(ListObject)无序列表的具体属性,详见ListObject(列表对象)说明。
indentobject(Indent)缩进值,left必须是大于 0 的整数。
  • childrenInlineElement 数组

表格

{
  "blockType": "table",
  "table": {
    "rolSize": 3,
    "colSize": 4,
    "cells": [
      ["Row1-Col1", "Row1-Col2", "Row1-Col3", "Row1-Col4"],
      ["Row2-Col1", "Row2-Col2", "Row2-Col3", "Row2-Col4"],
      ["Row3-Col1", "Row3-Col2", "Row3-Col3", "Row3-Col4"]
    ]
  }
}
字段名类型必填含义
rolSizenumber行数。
colSizenumber列数。
cellsString[][]单元格文本内容,二维String数组。
  • children暂不支持指定 children

InlineElement 数据结构说明

行内元素用于文本类块元素(段落、标题、列表等)的children中。

InlineType 枚举

枚举值描述
text文本。
sticker表情。
image图片。
link链接。

文本

{
  "text": "加粗红色文字",
  "sz": 16,
  "color": "red",
  "highlight": "yellow",
  "bold": true,
  "italic": false,
  "stike": false,
  "underline": false,
  "fonts": "monospace"
}
字段名类型必填含义
textstring文本内容。
sznumber字号(默认单位 px)。
colorstring文字颜色。
highlightstring高亮背景色。
boldboolean是否加粗。
italicboolean是否斜体。
stikeboolean是否中划线。
underlineboolean是否下划线。
fontsstring(enum Fonts)字体,枚举值如下: - monospace:等宽字体 - STSong:华文宋体 - Microsoft YaHei:微软雅黑 - FangSong_GB2312:仿宋 GB2312 - Helvetica:Helvetica 字体 - Helvetica Neue:Neue Helvetica 字体 - Consolas:Consolas 字体 - 宋体:宋体 - Impact:Impact 字体 - sanrif:sanrif 字体 - Calibri:Calibri 字体

表情

{
  "elementType": "sticker",
  "properties": {
    "code": "大笑"
  }
}
字段名类型必填含义
codestring(enum Emoji)表情编码,详见表情(Emoji)枚举值

图片

{
  "elementType": "image",
  "properties": {
    "src": "https://example.com/image.jpg"
  }
}
字段名类型必填含义
srcstring图片资源地址。

链接

{
  "elementType": "link",
  "properties": {
    "href": "https://example.com"
  },
  "children": [
    { "text": "点击跳转链接" }
  ]
}
字段名类型必填含义
hrefstring链接地址。
  • childrenText 数组,插入链接时必须指定children,且至少包含 1 个text不为空的文本节点。

通用数据结构

Indent(缩进)

字段名类型必填含义示例
leftnumber具体缩进值,必须是大于 0 的整数,否则报错。32

ListObject(列表对象)

字段名类型必填含义
listIdstring当前列表的 ID;若插入多级有序列表,需确保同组多级列表的listId一致,否则展示错误。
levelnumber列表的层级(从 0 开始)。
listStyleTypestring列表样式类型。
listStyleobject(ListStyle)列表的具体样式,详见ListStyle(列表样式)说明。
symbolStyleobject(SymbolStyle)列表符的样式,详见SymbolStyle(列表符样式)说明。

ListStyle(列表样式)

字段名类型必填含义
formatstring项目符号格式。
textstring文本。
alignstring对齐方式,如leftcenterright

SymbolStyle(列表符样式)

字段名类型必填含义
sznumber项目符号字体大小。
shdstring项目符号背景色。
fontsstring项目符号字体格式。
colorstring项目符号字体颜色。
boldboolean是否加粗。
strikeboolean是否展示删除线。
italicboolean是否展示斜体。

Emoji 枚举值(表情编码完整列表)

以下枚举值可用于callout.sticker和行内表情元素sticker.properties.code
表情表情表情表情
优先级: 1优先级: 2优先级: 3优先级: 4
优先级: 5优先级: 6优先级: 7进度: 未开始
进度: 20%进度: 40%进度: 50%进度: 70%
进度: 90%进度: 已完成微笑憨笑
大笑加油偷笑
跳舞捂脸哭笑哭流泪
疑问傻笑流鼻血狗子
OK抱拳向上
向下向左向右资料
本子笔记本折线图柱状图
羽毛笔钢笔警告问号
禁止禁行气泡
沙漏公文包火箭
奖牌灯泡钉子旗子
休假气球锦鲤
咖啡奶茶调色板感谢
打招呼666握手胜利
一点点鼓掌送花花比心
加一100分KPI对勾
爱心可爱发呆老板
害羞闭嘴大哭
尴尬调皮惊讶流汗
广播自信你强怒吼
惊愕快哭了无聊
算账摸摸飞吻
鄙视思考亲亲
感冒对不起再见投降
欠扁坏笑拜托
可怜舒服爱意财迷
迷惑PK委屈灵感
天使鬼脸凄凉郁闷
吃瓜嘿嘿抠鼻呲牙
彩虹捂眼睛推眼镜
暗中观察开心惊喜回头
发怒忍者脑暴
冷笑黑眼圈恭喜费解
收到炸弹白眼一团乱麻
无奈敲打专注忙疯了
鞠躬摊手抱抱举手
跪了猫咪二哈三多
承让撒花邮件文档
演示表格生日快乐心碎
红包嘴唇鲜花残花
干杯出差时间
月饼礼物幼苗烟花
灯笼爆竹鸡腿高铁
三连OKRDone