Plugin Hledger – Exibir diários de contabilidade em texto puro nos tópicos

:information_source: Resumo Renderiza diários do hledger como um painel ao vivo na primeira postagem de um tópico.
:hammer_and_wrench: Repositório gitea.kosmos.org/raucao/discourse-hledger
:open_book: Guia de Instalação README

Funcionalidades

Coloque um diário do hledger em um bloco de código cercado por hledger na primeira postagem de um tópico e ele será substituído por um painel com cinco relatórios, gerados sob demanda pelo executável hledger do servidor:

  • :clipboard: Contas — a árvore completa de saldos, com todas as contas pai expandidas.

  • :balance_scale: Balanço patrimonial — ativos, passivos e patrimônio líquido, agrupados em seções.

  • :chart_increasing: DRE — receitas e despesas.

  • :busts_in_silhouette: Patrimônio líquido — uma distribuição por moeda do capital contribuído.

  • :receipt: Diário — um registro de transações com cada lançamento.

  • Os relatórios podem ser filtrados por um intervalo de datas (De/Até); a data final é inclusiva.

  • Segmentos de conta escritos como @username (por exemplo, equity:@alice) se tornam
    links de menção do Discourse com o cartão de perfil usual; apenas usuários existentes são
    vinculados.

  • Os relatórios são gerados sob demanda e armazenados em cache por revisão da postagem, de modo que editar o
    diário os atualiza.

Bloco de exemplo

```hledger
2024-01-01 Saldos iniciais
    assets:bank:checking       1000.00 EUR
    equity:alice               -600.00 EUR
    equity:bob                 -400.00 EUR
```

Capturas de tela

Requisitos

  • O executável hledger no servidor (testado com hledger 1.32.3).
  • Discourse 2.7.0 ou mais recente.

Com a instalação padrão via Docker, instale o plugin e o pacote hledger através do seu app.yml e reconstrua:

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

Configuração

  1. Ative o plugin em Admin > Settings > Plugins (hledger enabled).
  2. Adicione um diário do hledger à primeira postagem de um tópico.
  3. Opcionalmente, defina hledger path se o executável não estiver no PATH padrão.

Configurações

Nome Descrição
hledger enabled Ativa o plugin.
hledger path Caminho para o executável hledger (padrão hledger).
hledger max journal bytes Tamanho máximo de um diário aceito, em bytes (padrão 262144).
hledger max journal lines Número máximo de linhas em um diário (padrão 5000).
hledger timeout seconds Limite de tempo real para cada chamada do hledger (padrão 10).
hledger max output bytes Limite para a saída capturada do hledger (padrão 1048576).
hledger memory limit mb Limite de memória para o processo hledger; 0 desativa (padrão 256).
hledger global rate limit per minute Limite para a geração de relatórios entre todos os usuários; 0 desativa (padrão 120).

Segurança

Diários são entradas não confiáveis. O plugin executa hledger como um subprocesso sem privilégios com um ambiente limpo, um diretório de trabalho privado, um tempo limite rígido, limites de CPU/tamanho de arquivo/memória e um limite de saída, e rejeita diretivas include. Os relatórios são retornados apenas para tópicos que o visualizador pode ver, e as solicitações têm limite de taxa por IP (30/min) e globalmente.

Compatibilidade e licença

  • Licença MIT
  • Feedback, relatórios de bugs e traduções são bem-vindos neste tópico ou por e-mail, redes sociais (ActivityPub/Nostr) ou chat (XMPP) para raucao@kosmos.org
7 curtidas