Hledger是什么?
一句话介绍
Hledger是一个开源的单机纯文本式的复式记账解决方案,以文件形式保存记账数据。
简介
介绍Hledger就要先介绍ledger,ledger是一个命令行的复式记账软件,而 hledger 是用Haskell语言对其重写的一个分支软件。
ledger介绍
Ledger 是一个功能强大的复式记账系统,可从 UNIX 命令行访问。Ledger 于 2003 年开始,由 John Wiegley 编写并在 BSD 许可下发布。它还启发了其他语言的几个 端口。要开始使用 Ledger,请将交易添加到 Ledger 自己的文本格式的文本文件中。以下是单笔交易的样子:

您可以使用ledger命令行程序查看您的账户余额:

或特定帐户的历史记录:

ledger特点:命令行操作,功能强大、复式记账、开源,缺点是界面不美观、学习成本高。
Hledger
Hledger是用Haskell语言对ledger重写的一个分支软件。它是一个命令行工具,但也有终端和 Web 界面,以及用于构建您自己的程序和脚本的 Haskell 库(hledger 是用 Haskell 编写的)。hledger 是 Ledger的分支,并且在很大程度上与 Ledger 兼容。
Hledger同样是开源的,遵循 GNU 通用公共许可证 v3+ 。
hledger 能为我做什么?
hledger 是一套报告工具,它可以让您清晰地了解您的个人或企业财务、时间日志或其他过时的定量数据,而您只需付出相对较少的时间。
您只需要提供一个交易列表,作为一个简单的人类可读格式的纯文本文件。(或时间日志,或带有转换规则的 CSV 文件。)从此账本可以生成各种有用的报告和交互式视图:
- 列出您的交易、收款人、货币/商品、账户、统计数据
- 显示帐户和子帐户的层次结构
- 显示影响任何账户的交易,并计算其运行余额
- 制作资产负债表,显示您的资产和负债账户余额
- 制作现金流量报告,显示您的现金资产的变化
- 制作损益表,显示您的收入和支出
- 按期间显示交易活动的条形图
- 显示采购成本/销售价格
- 在任何估值日期以任何货币显示市场价值
- 计算储蓄账户或投资的回报率
- 从 timeclock 或 timedot 时间日志生成报告
- 从任何 CSV 文件制作报告
它可以以不同的方式对数据进行切片、切块和呈现:
- 仅筛选出您感兴趣的项目或时间段
- 并排显示多个时期
- 总结帐户以提供大局
- 重写或透视帐户名称以提供不同的视图
- 将报告输出为纯文本、HTML 或 CSV
- 作为实时更新的终端用户界面运行,用于快速交互探索
- 作为网络应用程序运行,允许远程/多用户浏览和数据输入
- 作为 JSON Web API 运行,用于与自定义应用程序集成
如果向文件中添加一些指令,hledger 可以:
- 包含多个数据集
- 按规则生成重复交易
- 按规则向交易添加额外的过账(拆分)
- 显示对未来活动的预测,例如帮助进行现金流规划
- 制作预算报告,按帐户和期间显示您的预算目标和状态
此外,它还可以:
- 按规则生成利息交易
- 帮助您通过提示或终端用户界面输入新交易
- 帮助您从外部来源(例如银行)转换和导入新交易
- 在快速 Haskell 脚本或编译程序中用作库
Hledger的特点
纯文本会计系统
hledger 是一个纯文本会计系统,您的会计数据存储在一个可读的纯文本文件中,通常是受版本控制的。
- 在您的本地计算机上运行,将您的财务数据保密并在您的控制之下
- 简单的操作模型:输入交易日志,输出报告
- 简单、富有表现力、人类可读、面向未来的纯文本格式
- 可以进行版本控制,例如使用Git,以保护您的数据、跟踪更改或协作
- 使用您喜欢的文本编辑器或数据输入 UI 进行编辑,或从其他格式导入
- 易于编写脚本、自动化并集成到自定义工作流程中
- 轻巧、快速、使用不分散注意力
- 非常适合学习更多的复式簿记和会计
简单容易上手
纯文本会计的范围内,hledger 的目标是直观、易学和高度可用
- 仅使用纯文本文件即可轻松进行多币种复式记账
- 简单的辅助数据输入或 [CSV 导入][转换]
- 简单的零设置命令行、终端和网络用户界面
- 简单的多期资产负债表、损益表和现金流量报告
- 轻松汇总帐户余额到所需深度
- 轻松输出到文本、HTML、CSV、JSON 或 SQL
- 使用 Ledger CLI 或 Beancount 轻松导入/导出/共同使用
- 易于下载或在所有主要平台上构建
- 快速地。报告通常需要几分之一秒的时间,并且 hledger-ui 在您编辑时会立即更新。
安全可靠
hledger 力求使用安全、绝对可靠。
强大的安装:为二进制和源安装提供了多个选项。从源代码构建是可靠且跨平台的。
强大的执行力:hledger 是用Haskell编写的,Haskell是一种现代的、备受推崇的编程语言。Haskell 的内存管理和强大的编译时类型检查可以最大限度地减少运行时失败。由用户输入引起的故障被清晰、及时地报告。
稳健的测试:软件通过广泛的自动化测试不断进行测试。
强大的功能:内置命令和选项可以很好地相互结合,并且可以在所有情况下用各种输入做一些明智的事情。
稳健的计算:预计结果始终与您在纸上计算的结果完全匹配,最多保留 255 位小数。
强大的解析:按日期顺序处理日期项目,例如余额断言和余额分配。具有相同日期的断言/分配按解析顺序处理。单个事务中的多个断言/赋值如您所愿。
稳健的报告:报告是确定性的,不受输入文件或数据项顺序的影响,除非这是其规范的一部分。
强大的文档:所有功能都被精确记录,并带有助记符永久链接。hledger 版本的用户手册可在线获取,并内置供离线查看。提供了一般和特定于命令的命令行帮助。我们喜欢文档驱动的开发。
兼容ledger CLI
hledger 是对Ledger CLI的重写,旨在将相同的核心功能构建到更高的质量水平,并添加新功能使其对更多人有用。Ledger 用户会发现熟悉的文件格式和命令,并且可以在相同的数据文件上运行这两种工具。
开源免费
hledger 是免费软件,它在GNU GPLv3下获得许可,提供最有力的保证,您将始终有权运行、检查、修改或共享它。
Hledger有什么缺点
Hledger的缺点
- 界面不美观
- 英文
- 更适合技术人员
总结
hledger 在国内用的并不多,因为对个人或者财务而言使用复式记账的毕竟是少数,也可以说是几乎没有。大部分非会计专业的人甚至都没有听说过借贷记账法或者复式记账这个名词,所以普及率并不高,但是当您学习并使用复式记账之后,会发现那些流水记账app简直太鸡肋了,复式记账是经过百年沉淀的记账方法。