Initial public release
CI / lint (push) Successful in 1m40s
CI / tests (push) Successful in 2m40s

This commit is contained in:
2026-09-27 15:19:50 +02:00
parent 0cfc6dadad
commit cd4104ef15
3 changed files with 71 additions and 7 deletions
+61
View File
@@ -0,0 +1,61 @@
# Changelog
## 1.0.0 — 2026-09-27
The first release of the hledger plugin for Discourse. Put an
[hledger](https://hledger.org) journal in a fenced `hledger` code block in the
first post of a topic, and the block is replaced by a live, filterable report
dashboard, generated on demand by the server's `hledger` executable.
### Reports
The dashboard offers five views, each generated from hledger's machine-readable
JSON output:
- **Accounts** — the full balance tree, with every parent account expanded.
- **Balance sheet** — assets, liabilities and equity, folded into sections.
- **P&L** — revenues and expenses.
- **Equity** — a per-commodity distribution of contributed capital.
- **Journal** — a transaction log with each posting.
### Account trees
Accounts are shown as a tree: every name is capitalized, nested accounts are
indented by depth, and on the balance sheet and P&L the matching top-level
account is folded into the section heading instead of being repeated. Empty
titled sections show a "No data" placeholder rather than a bare total.
### Equity distribution
The equity view groups balances by commodity and shows each holder's amount
alongside their percentage share of the contributed capital — with a reminder
that this reflects contributed capital, not legal ownership.
### Mentions
An account segment written as `@username` (for example `equity:@alice`) is
rendered as a Discourse mention link, with the same profile card as mentions in
posts. Only segments that match an existing user are linked; anything else stays
plain text.
### Display
Negative balances are shown in parentheses on the Accounts view, following
accounting convention. Journal account paths keep their `:` separators, with any
mention segments linked inline. Reports can be filtered by a From/To date range,
and the end date is inclusive.
### Security
Journals are treated as untrusted input. hledger runs with a scrubbed
environment, a private temporary working directory, a hard wall-clock timeout,
CPU and file-descriptor limits, and capped output. `include` and `!include`
directives are rejected, the journal must be valid UTF-8 and within size and
line limits, and only one journal per topic is accepted. Reports are returned
only for topics the viewer may see, the endpoint is rate-limited to 30 requests
per minute per IP, and results are cached per post revision.
### Requirements
- The `hledger` executable on the server.
- Discourse 2.7.0 or newer.
+8 -5
View File
@@ -1,17 +1,20 @@
# **hledger** Discourse Plugin
[![CI](https://gitea.kosmos.org/raucao/discourse-hledger/actions/workflows/ci.yml/badge.svg?branch=main&event=push)](https://gitea.kosmos.org/raucao/discourse-hledger/actions)
[![Release](https://img.shields.io/gitea/v/release/raucao/discourse-hledger?gitea_url=https://gitea.kosmos.org)](https://gitea.kosmos.org/raucao/discourse-hledger/releases)
Render [hledger](https://hledger.org) journal reports inside Discourse topics.
Put an hledger journal in a fenced `hledger` code block in a topic's first
post. The block is replaced by a dashboard with five reports, generated live
by the `hledger` command line tool:
- Accounts and balances (a full account tree, each name capitalized)
- Balance sheet (indented account tree under each section)
- Profit & loss / P&L (indented account tree under each section)
- Equity distribution (account tree with per-commodity shares; contributed
- 📋 Accounts and balances (a full account tree, each name capitalized)
- ⚖️ Balance sheet (indented account tree under each section)
- 📈 Profit & loss / P&L (indented account tree under each section)
- 👥 Equity distribution (account tree with per-commodity shares; contributed
capital, not legal ownership)
- Journal (a detailed transaction log: date, description and postings)
- 🧾 Journal (a detailed transaction log: date, description and postings)
## Installation
+2 -2
View File
@@ -3,9 +3,9 @@
# name: hledger
# about: Render hledger journals in topics
# meta_topic_id: TODO
# version: 0.0.1
# version: 1.0.0
# authors: Râu Cao
# url: TODO
# url: https://gitea.kosmos.org/raucao/discourse-hledger
# required_version: 2.7.0
register_asset "stylesheets/hledger.scss"