Costflow 语法 v0.3:Formula 公式

我们刚刚发布了 Costflow 语法的 v0.3 版本。 v0.3 最大的更新就是引入了 Formula 功能。可以说 Costflow 语法简化了纯文本记账的记录方式,Formula 又一次简化了 Costflow 的记录方式

我们在使用纯文本记账的时候,很多交易都是有一定规律的。例如 Spotify / Netflix / 1Password 订阅这种每月金额固定且支付方式和用途固定的交易,或者 Uber / AWS 这种绑定了固定支付方式但金额不固定的交易,甚至是每天使用微信零钱支付饭钱这种支付方式和用途固定的交易。只要有一定规律,Formula 就可以帮你节省很多时间。

在 Formula 的帮助下,你可以使用一个关键词来记录一笔交易,甚至是使用一个 emoji。

Formula 工作流程图

如何使用 Formula

一、配置 Formula

和 Replacements 一样,使用 Formula 需要先进行配置:

  • Costflow Hub 用户可以在 Dashboard 的 Formula 页面进行配置;
  • Costflow CLI 用户在用户根目录的 ~/.costflow.json 进行配置,增加 formula 对象即可;
  • Costflow Playground 用户点击页面中的 “Show Config” 进行配置。

配置采用 key: value 形式,key 为 formula 关键字,key 可以为子母、数字组成的无空格字符串(甚至可以是 emoji),但 key 值不能是任何 Costflow 默认指令符。value 为 formula 转换值,value 中可以使用以下变量(使用时变量用两层大括号 {{}} 包含):

  • amount:金额,取值为录入语句中的第一个数字。在使用 amount 变量时,还可以使用简单的加减乘除运算,例如 {{ amount * 0.8 }}
  • pre: 除 formula 名称外的所有字符串;

之后版本会增加更多 Formula 变量。Formula 的执行方式是:先按照用户自定义的配置进行变量替换,然后再重新执行一次解析。所以 value 转换后的内容也要符合 Costflow 语法

例如上文提到的几个例子,配置大致如下:

{
  "formula": {
    "aws": "@AWS {{ amount }} USD visa > aws",
    "cashback": "Airline Cash Back {{ amount }} visa > {{ amount * 0.95 }} expenseFlight + {{ amount * 0.05 }} incomeCashback",
    "netflix": "@Netflix 15.99 USD visa > netflix",
    "split": "Dinner {{ amount }} visa > food + rx + ry",
    "spotify": "@Spotify 14.99 USD visa > spotify",
    "uber": "@Uber {{ amount }} USD visa > uber",
    "rent": "Rent {{ amount }} USD visa > rent",
    "v2f": "{{ pre }} visa > food",
    "☕️": "@Leplays ☕️ {{ amount }}  Liabilities:CreditCard:Visa > Expenses:Coffee"
  }
}

二、使用 Formula

在配置好 Formula 后,便可以在对应产品中使用了。例如 Costflow Hub 用户可以在 Telegram 中发送消息触发 Formula。Formula 的指令符是 f ,你可以使用 f keyword ... 形式来触发。为了提供更好体验,在没有发现任何指令符的时候,并且语句中的第一个词是配置好的 formula 关键词时,也可以触发。

例如为 AWS 配置一个 Formula: {"aws": "@AWS {{ amount }} USD visa > aws"},你可以使用 f aws 50 或者 aws 50 来使用这个 formula。

Formula 会解析原始输入语句中的数字金额,然后替换 formula 的语句再运行一次 Costflow 语法。流程图见上方图片。

Formula 的关键字还可以是 emoji,例如 ☕️ / ? / ? / ? 等,这样未必能提高记账效率,但可以让记账变得有趣。


本文对 Costflow 语法 v0.3 新增的 Formula 公式功能进行了简单介绍。Formula 主要用于交易指令,但是理论上也可以其它类型的指令。感兴趣的话可以查看官方文档了解更多。

Formula 功能已增加到 Costflow CLICostflow Playground Costflow Hub 中。

发表回复

您的电子邮箱地址不会被公开。