把飞书云文档变成 HTML 邮件:问题挑战与解决历程
一、背景 云文档转HTML邮件 基于公司内部的飞书办公套件,早在去年6月,我们就建设了将飞书云文档转译成HTML邮件的能力,方便同学们在编写邮件文档和发送邮件时,都能有较好的体验和较高的效率。 当下问题 要被邮件客户端识别,飞书云文档内容需要转译成HtmlEmail格式,该格式为了兼容各种版本的邮箱客户端(特别是Windows Outlook),对于现代HTML5和CSS3的很多特性是不支持的,飞书云文档的多种富文本块格式都需要转译,且部分格式完全不支持,造成编辑和预览发送不一致的情况。 因此,我们对转译工具做了一次大改版和升级,对大部分常用文档块做了高度还原。 实现效果 经过我们的不懈努力,最终实现了较为不错的还原效果: 二、系统架构改版 飞书云文档结构 在展开我们如何做升级之前,先要简单了解下飞书云文档的信息结构(详情可参考官方API),在此仅做简单阐述。 TypeScript简要定义,一个平铺的文档块数组,根据block_id和parent_id确定各块的父子关系,从而形成一个树: { /** 文档块唯一标识。*/ block_id: string; /** 父块 ID。*/ p...
