Hledgerプラグイン - トピック内のプレーンテキスト会計帳簿をレンダリング

:information_source: 概要 トピックの最初の投稿内で hledger ジャーナルをライブダッシュボードとしてレンダリングします。
:hammer_and_wrench: リポジトリ gitea.kosmos.org/raucao/discourse-hledger
:open_book: インストールガイド README

機能

トピックの最初の投稿内に、フェンス付きの hledger コードブロックとして hledger ジャーナルを配置すると、サーバーの hledger 実行可能ファイルによってオンデマンドで生成される5つのレポートを含むダッシュボードに置き換えられます:

  • :clipboard: アカウント — 完全な残高ツリー。すべての親アカウントが展開されています。

  • :balance_scale: 貸借対照表 — 資産、負債、純資産がセクションに折りたたまれています。

  • :chart_increasing: 損益計算書 (P&L) — 収益と費用。

  • :busts_in_silhouette: 純資産 (Equity) — 出資資本の商品別内訳。

  • :receipt: ジャーナル — 各仕訳付きの取引ログ。

  • レポートは開始日/終了日範囲でフィルタリングできます。終了日は含まれます。

  • @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 discourse-hledger
    - exec:
        cd: $home
        cmd:
          - apt-get update
          - DEBIAN_FRONTEND=noninteractive apt-get install -y hledger

設定

  1. Admin > Settings > Plugins(hledger enabled)でプラグインを有効にします。
  2. トピックの最初の投稿に hledger ジャーナルを追加します。
  3. 実行可能ファイルがデフォルトの 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 までお寄せください。
「いいね!」 2