集成多种自动化服务,完全免费的在线文档工具:Coda
说到文档撰写与排版,我相信几乎每个人都用过 Microsoft Office 套件。得益于微软在操作系统上取得的巨大成就,Microsoft Office 几乎成为了办公套件的代名词。Microsoft Office 很强大,但缺点也不少。为了使用它,你最好是拥有一台装有 Windows 操作系统的电脑,需要下载 GB 体积的安装包并支付一定的费用。 此外,版本的不兼容也让人头疼,也许你已经遇到过高版本文档无法在低版本 Office 中打开,或者低版本文档在高版本 Office 中排版错落的尴尬局面。
近年来,随着云技术和 Web 技术的进步,文档工具也开始在线化。例如老牌大厂推出的 Office 365 ,Google Docs 等都是大众熟悉的在线(云端)文档工具。以 Office 365 为例,在线版本无需安装,且在任何操作系统中都可以打开浏览器访问使用。此外,分享和管理文档也变得更为方便,如果服务做得足够好,体验和本地应用已经趋于一致。我曾经在 Mac 上使用 Office 365 完成了近百页的论文撰写。
除了微软等传统大厂推出的在线文档服务,许多创业公司也开始在这个领域发力。例如国内的 石墨文档,国外的 Quip,Notion 等,这些新颖的在线文档服务更在意产品的设计和体验。
今天要介绍的 Coda 同样是一款更现代化的在线文档工具,Coda 的设计和第一感觉与 Quip 和 Notion 这两款优秀的在线文档工具比较接近。所以,接下来我将结合对三款工具的使用经历,从多个方面来介绍 Coda 的使用体验。
文档管理模式
在介绍 Coda 的功能体验之前,我们先聊一聊文档的管理模式。以 Microsoft Office 为代表的办公套件在管理文档时,通常会将单类型文档独立存放。例如你新建一个 Word 文档用于撰写材料,新建 Excel 文档用于记录数据。这些文档是独立的,以平行层级的方式进行存放。事实上,大部分在线文档工具也借鉴了这一方法,例如上面提到的 Office 365、Google Docs、石墨文档,以及 Quip。
Notion 与众不同,其可以使用嵌套层级结构来管理文档。举例来讲,你可以在一个文本文档下方再新建一个表格文档,而表格文档下方可以继续新建其他或同类型的文档。这种模式下,文档管理更加方便,也更有逻辑层次。这种以文档管理文档的方式,使得你可以在同一个窗口中快速切换不同的文档,并且一个项目仿佛只存在一个「大文档」。
我再针对这种嵌套层级结构的易用性举一个例子。当我在撰写一篇文章时,之前一般会建立一个文件夹,然后新建 3 个文档。这三个文档分别用于存放搜集到的资料和链接,文章大纲,以及文章正文内容。当然,你可能会问为什么不将这 3 部分放在同一个文档里?我觉得这样太混乱了。
前面就是平行层级文档管理方法,如果在嵌套层级结构模式下,我只需要建立一个文档用于撰写内容,然后在其中建立不同类型的内容分别存放大纲和资料。文档间的浏览,复制都非常方便,Notion 还提供了针对整个层级文档的导出功能。
本文的主角 Coda 也采用了与 Notion 相似的方式来管理文档。你可以创建一个项目文档,然后再其中分别创建文本、表格、看板等独立的文档。与 Notion 支持多层级不同,Coda 最多只支持 2 个层级。2 个层级适用于大部分情况,当然对于重度用户和复杂项目而言,Notion 支持的更多层级的确更好一些。
编辑器易用性
编辑器是一款在线文档的核心功能,编辑器的体验很大程度决定了一款文档工具的整体体验。首先,我们看一下 Quip 和 Notion 这两个具有代表性的在线文档编辑器设计。
Quip 的编辑器看上去中规中矩,常用的段落样式工具均放置在顶部菜单栏中,非常直观。与此同时,当鼠标放置在文档中时,会触发段落内下拉菜单(如图),例如插入图片、视频等。相比而言,而 Notion 的编辑器设计更为激进,完全取消了顶部菜单栏,只保留了段落内的下拉菜单。
我更喜欢 Quip 的设计,原因在于 Notion 的下拉菜单实在是太长了。大量的选项集中放置在一个下拉菜单中,滑动的过程容易导致来回错过需要的选项,从而导致选择效率低下。
当然,段落内的菜单从一开始应该是为了提升效率而设计的。例如 Quip 中可以使用 @ 呼出菜单,而 Notion 则是 / 标记。如果你能记忆像 /image
这样的命令,那么就可以做到快速选择,但需要一个适应过程。
Coda 完全放弃了在段落中调出选项菜单的设计,其将常用的段落样式固定在顶部的菜单条中,更多的模块插入则同样以一个醒目的 + 号放置在菜单中。
当然,上面这三种不同风格的编辑器设计,我相信各有所爱。Coda 的门槛最低,但 Notion 和 Quip 可以一定程度提升效率。
设计是一方面,体验又是另一方面。整体上看,Coda 编辑器体验不如 Notion 和 Quip 细腻。例如,Coda 的编辑器竟然无法自适应居中,这就导致 Coda 在高分辨率外接显示器上使用时,右边存在巨大的「留白」。更严重的是,如此写作时脖子就会不自觉地偏向左边了,体验非常不好。在字体和段落间距等细节方面,Coda 也有进一步优化的空间。
功能模块对比
一款在线文档工具不同与本地文档编辑器,理应结合线上的特点具备更多的功能。实际上,丰富实用的功能模块也是我用来判定一款文档工具是否「现代」的特征之一。接下来,我们通过横向对比 Quip,Notion 以及本文主角 Coda 所支持的功能模块。对比时,我们不考虑插入图片、列表等基础且常用的功能,主要是对比一些在传统文档工具中不一定会有的模块。
从上表可以看出,三者支持的功能模块都算是丰富全面。其中 Quip 支持插入调查选项和项目追踪模块,Notion 和 Coda 都不具备。表格中的常见服务指的是支持以 iframe 的方式嵌入 Youtube 视频,Twitter 或者 Google Drive 文件等第三方内容。
下面重点说一说 Coda 支持的特色功能,首先是图表。Coda 支持在文档中插入 7 种不同的图表,分别是:甘特图、条形图、饼状图、线形图、面积图、散点图和气泡图。每一种图表都支持动态编辑和可交互,非常美观。图表功能看似平常,但在大部分在线文档工具中都难觅踪影。
此外,Coda 还有两个特色功能模块 Button 和 Formula,我将这两个选项译作:快捷按钮和动态公式。
其中,Button 快捷按钮支持打开超链接、点击提醒、修改数据、发送邮件等数种实用动作,甚至可以将这些动作与其他模块组件关联起来。快捷按钮支持放置在文档中的任意位置,并支持插入任意数量的按钮。举个例子,你可以通过快捷按钮来修改表格中的数据,向指定协作用户发送消息,或者快捷添加日历事项等。
Formula 动态公式更加强大,其提供了十余类近百余种针对数据的操作方法,涉及对数组、集合、日期等数据的操作、判断以及计算。Formula 的使用是和 Coda 文档中的功能模块紧密结合的。文档中的表格、看板、日历等内置模块,以及 Coda 支持链接的更多第三方工具均可变身为数据接口,然后与 Formula 配合使用。
举例而言,文档中有一个销售数据的表格,而段落中需要引用表格中指定数据的总和或平均值,此时你就可以使用动态公式来计算这些值并直接显示在段落中。段落中的值后续也会自动跟随表格中数值的更新而变动。此外,动态公式更强大的用法是和很多第三方服务结合在一起,例如你可以通过动态公式计算出 Google 日历中的空闲或忙碌时间等。关于动态公式、快捷按钮以及更多的第三方服务结合使用的方法,下文会进一步介绍。
Notion 实际上也提供了一个叫 Formula 的功能,但类似于 Excel 提供的函数,其只能应用于表格之中。Coda 的 Formula 操作是我目前见过的所有文档类工具中最强大的运算模块,其提供的内置 API 和第三方 API 等丰富程度,足以相当于一门简单的编程语言。你可以访问 Formula API 列表查看这些函数。
服务集成与自动化
我平常用的最多的在线文档工具是 Notion,但 Notion 有一个致命弱点,那就是基本不支持自动化,且无法与其他常用的服务进行集成。服务集成与自动化对于我而言是非常关键的,我并不希望一款文档工具中的所有内容都需要靠手动输入。支持与第三方服务集成可以很大程度提升文档内容的丰富性和使用的便捷度。
Coda 的出现让我非常兴奋,其支持与数十种常用工具集成,并将此功能命名为 Coda Packs。Coda Packs 可以同步来自第三方的服务数据,但需要和 Coda 本身的功能模块配合才能发挥最大作用。从我的使用体验来看,与 Packs 服务联系最紧密的功能模块分别是 Table 表格、Formula 动态公式以及 Button 快捷按钮。
首先,通过授权 Packs 中支持的服务,例如 Google 日历,GitHub,Dropbox 等,我们可以直接将数据同步到 Coda 表格中。下图演示了 Google 日历数据同步的过程。
其他一些常用的服务列举如下:
- Dropbox :文件列表,分享的文件和链接,修改版本等。
- Github:仓库名称,Pull Request,Commits 和 Issues 列表等。
- Gmail:邮件列表和内容。
- Spotify:Top Tracks,Top Artists,New Releases 等歌单。
与表格关联的数据实际上是单向同步的过程,即从第三方服务到表格。如果你想直接通过 Coda 修改第三方服务数据,例如向 Google Calendar 中添加日历事件,或者是发送邮件,就需要用到前面提到的 Formula 动态公式以及 Button 快捷按钮。
举一个简单的例子,我们有如下所示的日程安排表格,此时可以创建一个写入 Google 日历的快捷按钮。选中 Action 中向 Google 日历添加事件的动作,结合 Formula 提供的一系列操作函数,我们可以调用表格或其他模块中的数据,并对这些数据进行组合运算以满足需要的格式。最后就可以通过快捷按钮向第三方服务新增数据了。如果你创建了多个快捷按钮,甚至可以单独创建一个总按钮一键控制其他的快捷按钮。
对于向 Slack 发送消息,使用 Gmail 发送邮件等与其他服务结合的操作,实际上和上面的添加日历事件非常类似。授权对应的服务之后,结合 Formula 动态公式以及 Button 快捷按钮即可完成。
Coda Packs 目前只支持与 10 余项常见的服务集成,虽然数量看起来不多,但其中有一项特别厉害的第三方服务 Zapier。Zapier 是一款强大的自动化工具,其支持与超过 1500 项服务进行数据交换,这样就相当于 Coda 也可以与这些服务集成在一起了。
当 Coda 和 Zapier 结合在一起时,就变成了只有你想不到,没有做不到的事情。再加上 Coda 本身提供了开发者 API 接口,而 Zapier 同时也支持 Webhook 传递数据,Coda 就实现了最大程度的「数据自由」。
除了强大的服务集成功能,Coda 还有一个 Automations 的选项,意为自动化。该选项实际上是结合文档内的其他模块使用的。例如从第三方导入表格中的数据需要刷新,就可以设定一个以小时自动刷新的自动化规则。
此外,自动化规则还可以结合快捷按钮来使用,例如某项数据发生变化,然后同时触发文档内指定的快捷按钮。总之,Automations 选项还是非常实用的。
关于 Coda 提供的服务集成和自动化相关功能,你还可以从官方提供的 Template 模版中获取应用灵感,例如使用其作 会议管理,OKRs 追踪都非常不错。
优缺点总结
至此,我们已经基本了解了 Coda 的功能和特点。接下来,我仍然结合最熟悉的 Quip 和 Notion 来对比这三款工具在多个常见维度下的优缺点。
作为 Notion 的付费用户,我对 Notion 是非常喜爱的。且正如上文所说,Notion 的数据非常封闭,服务集成近乎残废。此外,Notion 不支持中文搜索也让人十分抓狂。
Quip 非常适合于多人协作,免费版本基本够用,国内的访问速度很快。但 Quip 在编辑器体验,文档导出等方面有待加强。
Coda 的优势非常明显,结合强大的第三方服务集成,再加上 Button 和 Formula 功能,Coda 的自由度非常之高。但 Coda 的细节体验仍需优化,访问速度和稳定性有待加强。当然,Coda 还有一个优势是完全免费。
总之,就我个人而言,我可能还是会以 Notion 为主力,同时会在合适的场景之下使用 Quip 和 Coda,发挥各自的优势。