Complemento de Hledger: mostrar diarios contables en texto plano en los temas

:information_source: Resumen Renderiza los diarios de hledger como un panel de control en vivo en la primera publicación de un tema.
:hammer_and_wrench: Repositorio gitea.kosmos.org/raucao/discourse-hledger
:open_book: Guía de instalación README

Características

Coloca un diario de hledger en un bloque de código delimitado por hledger en la primera publicación de un tema y será reemplazado por un panel de control con cinco informes, generados bajo demanda por el ejecutable hledger del servidor:

  • :clipboard: Cuentas — el árbol de saldos completo, con todas las cuentas padre expandidas.

  • :balance_scale: Balance general — activos, pasivos y patrimonio, agrupados en secciones.

  • :chart_increasing: Estado de resultados (P&L) — ingresos y gastos.

  • :busts_in_silhouette: Patrimonio — una distribución por moneda de los aportes de capital.

  • :receipt: Diario — un registro de transacciones con cada asiento.

  • Los informes se pueden filtrar por un rango de fechas de inicio/fin; la fecha final es inclusiva.

  • Los segmentos de cuenta escritos como @usuario (por ejemplo, equity:@alice) se convierten en enlaces de mención de Discourse con la tarjeta de perfil habitual; solo se enlazan los usuarios existentes.

  • Los informes se generan bajo demanda y se almacenan en caché por revisión de la publicación, por lo que editar el diario los actualiza.

Bloque de ejemplo

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

Capturas de pantalla

Requisitos

  • El ejecutable hledger en el servidor (probado con hledger 1.32.3).
  • Discourse 2.7.0 o más nuevo.

Con la instalación estándar de Docker, instala el plugin y el paquete hledger a través de tu app.yml y reconstruye:

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

Configuración

  1. Habilita el plugin en Administración > Ajustes > Plugins (hledger enabled).
  2. Agrega un diario de hledger a la primera publicación de un tema.
  3. Opcionalmente, establece hledger path si el ejecutable no está en la PATH predeterminada.

Ajustes

Nombre Descripción
hledger enabled Habilita el plugin.
hledger path Ruta al ejecutable hledger (predeterminado hledger).
hledger max journal bytes Tamaño máximo de un diario aceptado, en bytes (predeterminado 262144).
hledger max journal lines Número máximo de líneas en un diario (predeterminado 5000).
hledger timeout seconds Límite de tiempo real para cada invocación de hledger (predeterminado 10).
hledger max output bytes Límite para la salida capturada de hledger (predeterminado 1048576).
hledger memory limit mb Límite de memoria para el proceso de hledger; 0 lo deshabilita (predeterminado 256).
hledger global rate limit per minute Límite para la generación de informes entre todos los usuarios; 0 lo deshabilita (predeterminado 120).

Seguridad

Los diarios son una entrada no confiable. El plugin ejecuta hledger como un subproceso sin privilegios con un entorno filtrado, un directorio de trabajo privado, un tiempo de espera estricto, límites de CPU/tamaño de archivo/memoria y un límite de salida, y rechaza las directivas include. Los informes solo se devuelven para temas que el espectador puede ver, y las solicitudes están limitadas por IP (30/min) y globalmente.

Compatibilidad y licencia

  • Licencia MIT
  • Se agradece la retroalimentación, los informes de errores y las traducciones en este tema o por correo electrónico, redes sociales (ActivityPub) o chat (XMPP) a raucao@kosmos.org
2 Me gusta