跳转到主要内容

Beancount 网页界面的 Fava 选项参考

Beancount 账簿的 Fava 配置选项:通过在你的账簿文件中使用 fava-option 指令自定义网页界面。

使用带日期的 custom "fava-option" 指令配置标准 Fava。这些设置与 Beancount 核心选项 是分开的。

本参考基于 Beancount 3.2.3、beanquery 0.2.0 和 Fava 1.30.16 执行。表格描述的是该发布版本。Beancount.io 有单独的仪表盘和后端;其暴露的设置并不证明所有标准 Fava 功能在那里都可用。

语法​

值用引号括起来的字符串表示,包括整数和布尔值。这个完整示例在 Beancount 和 Fava 中都能解析:

; Minimal Fava configuration
option "operating_currency" "USD"
2000-01-01 custom "fava-option" "language" "en"
2000-01-01 custom "fava-option" "default-page" "income_statement/"
2000-01-01 custom "fava-option" "indent" "2"
2000-01-01 custom "fava-option" "show-closed-accounts" "false"

日期是必需的。Fava 按日期顺序处理加载的自定义指令;后面的标量设置会替换前面的。重复的 collapse-pattern、import-dirs 和 insert-entry 设置会累积。插入规则使用其日期来选择目的地,因此这些日期是有意义的。

要在本地复现示例,请安装 uv,然后创建一个临时环境:

uv venv .venv-fava-docs
uv pip install --python .venv-fava-docs/bin/python 'fava==1.30.16'
uv tool install beancount-io
source .venv-fava-docs/bin/activate
bea --file main.beancount check
fava main.beancount

先从配置块创建 main.beancount,或使用现有的账本。上面的 shell 命令使用 POSIX 路径。bea check 检查 Beancount 语法和会计;Fava 还会检查自己的选项名称和值。同时检查 Fava 的 Errors 报告。

默认值来自已安装的 FavaOptions 数据类,并与 版本化选项解析器 进行了核对。“未设置” 表示 None;空集合表示没有配置条目。值类型列描述引号字符串的内容。

标准选项值类型默认值
language支持的翻译代码未设置
localeBabel 区域代码未设置;当核心 render_commas 为 true 时变为 en
default-page相对报告路径,可选过滤器income_statement/
fiscal-year-end会计日期 MM-DD12-31
indent整数2
currency-column整数61
show-closed-accounts布尔值false
show-accounts-with-zero-transactions布尔值true
show-accounts-with-zero-balance布尔值true
show-metadata-indicators布尔值true
collapse-pattern账户正则表达式;可重复空列表
sidebar-show-queries整数5
default-file文件路径,或省略值表示此文件未设置
insert-entry账户正则表达式;可重复,带日期的位置空列表
auto-reload布尔值false
use-external-editor布尔值false
import-config导入配置路径未设置
import-dirs目录路径;可重复空列表
invert-gains-losses-colors布尔值false
invert-income-liabilities-equity布尔值false
conversion-currencies一个字符串中空格分隔的货币代码空元组
account-journal-include-children布尔值true
uptodate-indicator-grey-lookback-days整数60
upcoming-events整数7

对布尔值使用 "true" 或 "false"。比较不区分大小写:"TRUE" 也会启用选项。任何非 "true" 大小写变体的字符串都被视为 false。其整数解析器检查整数语法,不检查正数范围;请使用正数布局尺寸和非负计数。

显示与本地化​

language​

设置界面翻译,例如 "en"、"de" 或 "zh_CN"。未设置时,Fava 与浏览器协商。区域设置必须具有 Fava 提供的翻译;仅语法有效的语言代码是不够的。

locale​

独立于界面语言设置数字格式,例如 "en_US" 或 "de_DE"。没有此选项时,Fava 使用其非本地化数字模式。核心 option "render_commas" "TRUE" 提供 en 回退。它不继承浏览器语言。

导航与布局​

default-page​

设置账本内的目标,例如 "balance_sheet/" 或 "journal/?time=year"。从工作状态的标准 Fava URL 中复制账本 slug 后面的部分。不要添加 / 前缀:报告路径相对于该账本。

fiscal-year-end​

设置会计时间过滤边界。例如,"03-31" 表示会计年度在 3 月 31 日结束。它支持会计年度和季度过滤器;不改变交易日期。Fava 还接受大于 12 的月份值,以标记在下一个日历年度结束的会计年度。

indent​

设置生成条目和编辑器格式化的过账缩进。使用正整数字符串,例如 "4"。

currency-column​

设置保存或对齐过账时的货币对齐列。它还定位编辑器的垂直参考线。默认值为 "61"。

内容可见性​

show-closed-accounts​

在报告账户树中包含已关闭账户。余额非零的账户无论此设置如何都保持可见。

show-accounts-with-zero-transactions​

在账户树中包含没有交易的账户。它不会抑制余额非零的账户。

show-accounts-with-zero-balance​

包含报告余额为零的账户。用 "false" 关闭以获得更短的树。

collapse-pattern​

匹配账户树中需要折叠的账户名称。重复指令以匹配多个模式。例如,"^Assets:Investments" 会折叠该账户及其子账户。

限制侧边栏中链接的已保存查询数量。"0" 隐藏这些链接。参见 自定义链接和查询。

show-metadata-indicators​

在日志中显示小的元数据徽章。设置为 "false" 可隐藏徽章,而不会从账本中移除元数据。

文件管理​

default-file​

选择编辑器最初打开的文件以及新条目的回退目的地。相对路径从包含指令的文件解析。没有值时,选择包含文件。没有此选项时,主账本文件是回退。现有文件还必须包含在账本中才能成为可编辑源。

insert-entry​

在匹配的自定义指令之前放置新条目,位于包含该指令的文件中。其正则表达式从开头匹配账户名称;从不搜索原始文件行。Fava 从最后到最先考虑交易过账。对于第一个符合条件的账户,它选择日期严格早于新条目的最新规则。如果没有匹配,则追加到默认文件。插入实现 是这些规则的权威来源。

在同一目录中创建这三个文件。main.beancount 提供账户并包含:

; main.beancount
option "title" "Insertion Demo"
option "operating_currency" "USD"
include "january.beancount"
include "february.beancount"
2000-01-01 open Assets:Checking USD
2000-01-01 open Assets:Cash USD
2000-01-01 open Assets:Wallet USD
2000-01-01 open Expenses:Food USD
2000-01-01 custom "fava-option" "default-file"
2024-01-01 custom "fava-option" "insert-entry" "^Expenses:Food$"

january.beancount 包含:

; january.beancount
2024-01-01 custom "fava-option" "insert-entry" "^Assets:Checking$"

february.beancount 包含:

; february.beancount
2024-02-01 custom "fava-option" "insert-entry" "^Assets:Checking$"

使用 main.beancount 启动 Fava。通过其交易表单添加这些交易;它们是插入操作的输入,不是需要预先包含的额外文件:

2024-01-15 * "January groceries"
  Expenses:Food       10.00 USD
  Assets:Checking    -10.00 USD
 
2024-02-01 * "Same-day boundary"
  Expenses:Food       20.00 USD
  Assets:Checking    -20.00 USD
 
2024-02-15 * "February groceries"
  Expenses:Food       30.00 USD
  Assets:Checking    -30.00 USD
 
2024-02-16 * "Cash groceries"
  Expenses:Food       40.00 USD
  Assets:Cash        -40.00 USD
 
2024-02-17 * "Unmatched cash transfer"
  Assets:Cash         50.00 USD
  Assets:Wallet      -50.00 USD

前两个条目放在一月规则之前。第三个放在二月规则之前。第四个尝试 Assets:Cash,找不到匹配,然后使用主文件中的 Expenses:Food 规则。第五个没有匹配账户,追加到 main.beancount。保存批次时,插入条目会更新规则行号。

auto-reload​

当 Fava 检测到外部源更改时自动重新加载页面。为 false 时,Fava 提供重新加载通知。通过 Fava 本身所做的更改已经触发重新加载。

use-external-editor​

通过 beancount:// URL 方案打开源链接。在运行浏览器的计算机上安装处理程序,并确保其可以访问账本文件。这不是托管服务器上文件的自动连接。

import-config​

指向 Python 导入器配置。这是一个集成设置:先创建配置并安装其导入器依赖,然后再使用导入报告。上述三个固定包不提供银行导入器配置。

import-dirs​

添加目录以扫描导入候选。重复指令以添加目录。使用真实可访问的目录;设置选项不会创建它们。

财务显示​

unrealized​

不是标准 Fava 1.30.16 选项。 如果添加它,Fava 会报告 Unknown option 后跟反引号中的名称。不要使用它来配置标准未实现收益账户。

2026-09-07 审查的 Beancount.io 源快照确实在其后端选项解析器和仪表盘 Settings 表中暴露了一个名为 unrealized 的单独字符串字段,默认值为 "Unrealized"。这证实了该字段在那里存在。它并不确定更改它会创建 Income:Unrealized 或 Expenses:Unrealized,也不确定某个特定部署运行此快照。

invert-income-liabilities-equity​

在损益表和资产负债表中翻转收入、负债和权益的显示符号。支出保持其符号。日志条目、账户日志和存储的过账保持不变。

conversion-currencies​

用一个字符串中的空格分隔列表替换转换下拉选项:

; Conversion dropdown
2000-01-01 custom "fava-option" "conversion-currencies" "USD EUR"

重复此选项会替换之前的列表。未设置时,Fava 提供操作货币加上它识别为 ISO 4217 货币的商品。

account-journal-include-children​

默认在账户日志中包含子账户条目。设置为 "false" 以仅从该账户开始。

invert-gains-losses-colors​

在市场价值资产负债表和试算平衡视图中反转未实现收益和损失的颜色。它改变颜色,不改变金额或账户名称。

监控​

uptodate-indicator-grey-lookback-days​

控制灰色新鲜度指示器的回溯期。使用账户的 open 指令上的 fava-uptodate-indication: TRUE 启用账户指示器;参见 UI 元数据示例。

upcoming-events​

控制指定天数内即将发生事件的侧边栏通知计数。"0" 禁用计数。

推荐配置​

这个完整配置是上述标准环境的一个起点。它更改显示设置而不加载插件或需要额外文件:

option "operating_currency" "USD"
2000-01-01 custom "fava-option" "language" "en"
2000-01-01 custom "fava-option" "locale" "en_US"
2000-01-01 custom "fava-option" "default-page" "income_statement/"
2000-01-01 custom "fava-option" "fiscal-year-end" "12-31"
2000-01-01 custom "fava-option" "indent" "2"
2000-01-01 custom "fava-option" "currency-column" "61"
2000-01-01 custom "fava-option" "show-closed-accounts" "false"
2000-01-01 custom "fava-option" "show-accounts-with-zero-transactions" "true"
2000-01-01 custom "fava-option" "show-accounts-with-zero-balance" "false"
2000-01-01 custom "fava-option" "show-metadata-indicators" "true"
2000-01-01 custom "fava-option" "collapse-pattern" "^Assets:Investments"
2000-01-01 custom "fava-option" "sidebar-show-queries" "5"
2000-01-01 custom "fava-option" "auto-reload" "false"
2000-01-01 custom "fava-option" "use-external-editor" "false"
2000-01-01 custom "fava-option" "invert-income-liabilities-equity" "false"
2000-01-01 custom "fava-option" "invert-gains-losses-colors" "false"
2000-01-01 custom "fava-option" "conversion-currencies" "USD EUR"
2000-01-01 custom "fava-option" "account-journal-include-children" "true"
2000-01-01 custom "fava-option" "upcoming-events" "7"
2000-01-01 custom "fava-option" "uptodate-indicator-grey-lookback-days" "60"

查看当前选项​

在标准 Fava 中,打开其 Help → Options 页面以查看已安装版本的参考,并在更改指令后检查 Errors。官方 1.30.16 选项帮助 解释了设置。

在 Beancount.io 仪表盘 中,打开账本的 Settings 页面。其 Fava Options 表显示后端返回的子集。此 UI 在产品源快照中验证,未通过经过身份验证的生产会话验证。显示的字段并不暗示托管仪表盘实现了标准 Fava 的编辑器、导入或 URL 路由。

另见​

  • 选项配置 — Beancount 的核心 option 指令。
  • UI 功能 — 标准 Fava 工作流和托管兼容性。

来源:https://beancount.io/zh/docs/Basics/fava-options