| 摘要 | 在主题的帖子中实时渲染 hledger 日记账作为仪表板。 | |
| 仓库 | gitea.kosmos.org/raucao/discourse-hledger | |
| 安装指南 | README |
功能
在主题的首个帖子中,将 hledger 日记账放入围栏的 hledger 代码块中,它将被替换为由服务器的 hledger 可执行文件按需生成的包含五个报告的仪表板:
-
账户 — 完整的余额树,所有父账户均已展开。 -
资产负债表 — 资产、负债和权益,折叠为各个部分。 -
损益表 — 收入和支出。 -
权益 — 按商品分布的投入资本。 -
日记账 — 包含每笔分录的交易日志。 -
报告可以通过从/至日期范围进行过滤;结束日期包含在内。
-
以
@username形式编写的账户段(例如equity:@alice)会变成
Discourse 提及链接,并带有通常的个人资料卡;仅链接现有用户。 -
报告按需生成并按帖子修订版本缓存,因此编辑
日记账会刷新它们。
示例代码块
```hledger
2024-01-01 期初余额
assets:bank:checking 1000.00 EUR
equity:alice -600.00 EUR
equity:bob -400.00 EUR
```
截图
要求
- 服务器上的
hledger可执行文件(已在 hledger 1.32.3 上测试)。 - Discourse 2.7.0 或更高版本。
使用标准 Docker 安装时,通过 app.yml 安装插件和 hledger 包并重新构建:
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://gitea.kosmos.org/raucao/discourse-hledger.git discourse-hledger
- exec:
cd: $home
cmd:
- apt-get update
- DEBIAN_FRONTEND=noninteractive apt-get install -y hledger
配置
- 在
管理 > 设置 > 插件中启用插件(hledger enabled)。 - 在主题的首个帖子中添加 hledger 日记账。
- 如果可执行文件不在默认
PATH上,可选择设置hledger path。
设置
| 名称 | 描述 |
|---|---|
hledger enabled |
启用插件。 |
hledger path |
hledger 可执行文件的路径(默认 hledger)。 |
hledger max journal bytes |
接受的日记账的最大大小,以字节为单位(默认 262144)。 |
hledger max journal lines |
日记账中的最大行数(默认 5000)。 |
hledger timeout seconds |
每次 hledger 调用的实际时间限制(默认 10)。 |
hledger max output bytes |
捕获的 hledger 输出的上限(默认 1048576)。 |
hledger memory limit mb |
hledger 进程的内存上限;0 表示禁用(默认 256)。 |
hledger global rate limit per minute |
所有用户报告生成的上限;0 表示禁用(默认 120)。 |
安全性
日记账是不可信的输入。该插件以非特权子进程身份运行 hledger,使用清理后的环境、私有工作目录、硬性超时、CPU/文件大小/内存限制以及输出上限,并且拒绝 include 指令。报告仅返回给查看者可见的主题,并且请求按 IP(30/分钟)和全局进行速率限制。
兼容性和许可证
- MIT 许可证
- 欢迎在此主题或通过电子邮件、社交媒体(ActivityPub)或聊天(XMPP)联系 raucao@kosmos.org 提供反馈、错误报告和翻译。


