| Resumo | Renderiza diários do hledger como um painel ao vivo na primeira postagem de um tópico. | |
| Repositório | gitea.kosmos.org/raucao/discourse-hledger | |
| 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:
-
Contas — a árvore completa de saldos, com todas as contas pai expandidas. -
Balanço patrimonial — ativos, passivos e patrimônio líquido, agrupados em seções. -
DRE — receitas e despesas. -
Patrimônio líquido — uma distribuição por moeda do capital contribuído. -
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
hledgerno 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
- Ative o plugin em
Admin > Settings > Plugins(hledger enabled). - Adicione um diário do hledger à primeira postagem de um tópico.
- Opcionalmente, defina
hledger pathse o executável não estiver noPATHpadrã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


