| 摘要 | 在主题的帖子中实时渲染 hledger 账本为仪表盘。 | |
| 仓库 | gitea.kosmos.org/raucao/discourse-hledger | |
| 安装指南 | README |
功能
在主题的首帖中,将 hledger 账本放入带有 hledger 标识的围栏代码块中,它将被替换为一个包含五个报告的仪表盘,这些报告由服务器的 hledger 可执行文件按需生成:
-
账户 (Accounts) — 完整的余额树,所有父账户均已展开。 -
资产负债表 (Balance sheet) — 资产、负债和权益,折叠为各个部分。 -
损益表 (P&L) — 收入和费用。 -
权益 (Equity) — 按商品划分的投入资本分布。 -
日记账 (Journal) — 包含每笔分录的交易日志。 -
报告可以通过从/至日期范围进行筛选;结束日期包含在内。
-
写作格式为
@username的账户段(例如equity:@alice)会变成 Discourse 提及链接,并带有通常的个人资料卡片;只有已存在的用户才会被链接。 -
报告按需生成并按帖子修订版本缓存,因此编辑账本会刷新它们。
示例代码块
```hledger
2024-01-01 Opening balances
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
- exec:
cd: $home
cmd:
- apt-get update
- DEBIAN_FRONTEND=noninteractive apt-get install -y hledger
配置
- 在
Admin > Settings > Plugins(管理 > 设置 > 插件)中启用插件(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/Nostr)或聊天(XMPP)向 raucao@kosmos.org 提供反馈、错误报告或翻译。


