帖子及评论内容格式转换
公司圈为了能够在帖子或评论内容中支持 At及超链接,使用了一套富文本方案,对外简化后,用户只需要将内容理解为不同节点的数组。
整体设计思想上,内容为二维数组,内层元素的数组表示一个段落,段落的数组组合成内容
段落数组可以包含四类元素,使用对象表示,通过tag属性区分类型
文本
{ "tag": "text", "text": "文本内容" }超链接
{ "tag": "a", "text": "飞书链接", "href": "https://..." }At
{ "tag": "at", "user_id": "ou_xxxxxx" , "user_name": "Abracadabra Cheng" }Hashtag
{ "tag": "hashtag", "text": "#ExampleHashtag" }- Hashtag 仅在发布动态接口中支持,发布评论不支持 Hashtag
- Hashtag 需满足规则:以 # 开头,后面跟随 1-50 个字符,无标点符号、空格等特殊字符
例如:
你好 飞书链接 @程成
是吗 #ExampleHashtag
转成:
json
[
[
{
"tag":"text",
"text":"你好"
},
{
"tag":"a",
"text":"飞书链接",
"href":"https://bytedance.feishu.cn"
},
{
"tag":"at",
"user_id":"ou_xxxxx",
"user_name":"Abracadabra Cheng"
}
],
[
{
"tag":"text",
"text":" 是吗"
},
{
"tag":"hashtag",
"text":"#ExampleHashtag"
}
]
]例如:
你好
飞书链接 @程成
转成:
json
[
[
{
"tag":"text",
"text":"你好"
}
],
[
{
"tag":"a",
"text":"飞书链接",
"href":"https://bytedance.feishu.cn"
},
{
"tag":"at",
"user_id":"ou_xxxxx",
"user_name":"Abracadabra Cheng"
}
]
]