| Resumo | Renderiza diários hledger como um painel ao vivo na primeira publicação de um tópico. | |
| Repositório | gitea.kosmos.org/raucao/discourse-hledger | |
| Guia de Instalação | README |
Funcionalidades
Insira um diário hledger em um bloco de código cercado por hledger na primeira publicação 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 de saldos completa, 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 log 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 exemploequity:@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 em cache por revisão da publicação, portanto 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 novo.
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 discourse-hledger
- exec:
cd: $home
cmd:
- apt-get update
- DEBIAN_FRONTEND=noninteractive apt-get install -y hledger
Configuração
- Habilite o plugin em
Admin > Settings > Plugins(hledger enabled). - Adicione um diário hledger à primeira publicação de um tópico.
- Opcionalmente, defina
hledger pathse o executável não estiver noPATHpadrão.
Configurações
| Nome | Descrição |
|---|---|
hledger enabled |
Habilita 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 invocação 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 de geração de relatórios para todos os usuários; 0 desativa (padrão 120). |
Segurança
Diários são entradas não confiáveis. O plugin executa o 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) ou chat (XMPP) para raucao@kosmos.org


