跳到正文
Notion 系统课程

功能追踪 01:详细解读 Notion Formula 2.0,这 10+ 个新特性、新函数让 Notion 更强大更好用

试读版

本文是本课程功能追踪章节的第一篇,这一章持续追踪到 2024 年 12 月底,详细解读 Notion 在此期间发布的所有重大新功能或新变化

本文是本课程功能追踪章节的第一篇,这一章持续追踪到 2024 年 12 月底,详细解读 Notion 在此期间发布的所有重大新功能或新变化。 另外,Formula 2.0 的上线导致此前更新的 3 篇 Formula 1.0 解析文章的内容需要进行一定程度的调整,我也会尽快上线调整后的内容,在此之前各位读者可先阅读本文所提及的诸多变化。 以下是阅读本文需要知悉的一些注意事项:

  1. 本文所解析的功能细节以 Notion 官方发布的这篇 文章 为参考
  2. 阅读本文需要具备一定的 Formula 1.0 使用经验,否则可能难以领会 2.0 的更新要点
  3. 作者本人没有一般的编程基础,仅能通过自己对公式应用的理解去为大家解析这些函数的用法,因此可能在一些专业术语的表达上存在错误,欢迎各位读者及时纠正反馈

细节变化

去掉了 prop() 的函数格式

在 Formula 1.0 中,每个字段都需要带上 prop() 的固定格式,于是当你的公式写得复杂,过长的函数格式就会使得阅读体验急剧下降,例如这样: Formula 2.0 去除了 prop() 后就能非常直观地让公式缩短,极大提升了可读性: 不过需要注意的是,当你复制这串新的 Formula 并粘贴于别处(例如 Code block),则会发现粘贴的文本中依然带有 prop() 的格式:

if(and(or(prop("任务状态") == "Not started", prop("任务状态") == "In progress"), prop("剩余时间") <= 0), "😡 已逾期", if(and(or(prop("任务状态") == "Not started", prop("任务状态") == "In progress"), (prop("剩余时间") > 0) and (prop("剩余时间") <= 7)), "😱 即将逾期", "🤗 状态正常"))

也因此,本文所展示的诸多函数都将继续带有 prop() 的固定样式。

支持代码换行与注释添加

现在的编辑器终于支持换行和添加注释了,这使得公式的书写更加便利,不会写着写着就迷失在各种括号之中:

now()                 /* 获取当前日期 */
.dateAdd(1,"days")    /* 在当前日期的基础上增加 1 天*/

换行的方式为 Shift+回车键,添加注释的方法则是用 /* 与 */ 将注释文本包围起来即可。

更快显示计算结果 & 更直观的错误提示

现在的编辑器会在函数下方实时显示计算结果,这样能让你更快地判断函数书写正确与否: 如果书写错误,它也会出现更加直观易读的错误提醒:

新增撤销按钮

当我们对现有的公式进行编辑,但编辑结果出现错误的时候,现在可以直接点击右上角的 Revert 按钮,来将所有的操作进行复位:

全新函数写法 Dot-notation

在 Formula 1.0 中,如果我们想实现诸如 「计算特定日期与今天的天数差」,则需要这么写:

dateBetween(now(),prop("Date"),"days")

如果你想继续将计算得出的天数转换为字符串,则需要再用 format() 将其包括在内:

format(dateBetween(now(),prop("Date"),"days"))+ "" + "天"

以上是传统的函数调用写法,当函数一长,就会出现无数个括号,我们就总是会因为漏写了哪一个括号而需要花半天时间去排查,在阅读的时候又需要先去找括号,才能找到正确的阅读顺序。 不过现在我们可以在 Formula 中使用如下所示的全新写法:

now().dateBetween(prop("Date"),"days").format()

这项更新几乎彻底改变了 Formula 的写法与阅读顺序:

  • 最左边的 now() 表示我们要进行操作的对象
  • 其后的 .dateBetween() 函数表示我们要对 now() 进行日期间隔计算
  • 最后的 .format() 表示我们要对前一步的计算结果进行字符串转换 结合可换行的特性,这样函数就变得更加和易读了:
now()                            /* 获取当前时间 */
	.dateBetween(prop("Date"),"days")     /* 与 Date 字段的时间进行计算 */
	.format()                      /* 将上一步的计算结果转换为字符串 */
	+" " + "天"                    /* 拼接字符串 */

now()
	.dateAdd(1,"weeks")   /* 将今天的日期加上 1 周时间 */
	.format()             /* 将日期计算结果转换成字符串 */

新增四个默认字段

现在 Notion 在编辑器中内置了四个默认字段,分别是:

  • Created By、创建者
  • Created Time、创建时间
  • Last Edited By 、最近一位编辑者
  • Last Edited Time 、最近一次编辑时间 这样一来当我们需要用到这些字段的时候,就不用再特意新建一个字段了: 鉴于 Created By 与 Last Edited By 都与某个 Member 有关,所以我们还可以用 .name() 或者 .email() 这两个函数来直接返回创建者(或编辑者)的姓名或邮箱: 所以,如果你将 Notion 用于团队协作,并且同一个数据库会有多人参与编辑,就可以用这些默认的内置字段来实时显示编辑者的名字、邮箱或者编辑时间等操作,然后就能达到如下图所示的效果:

最后更新于