Moteur de génération de document

Bonjour la communauté !

Avec mon entreprise, nous avons développé un moteur de génération de documents dynamique, qui peut s’intégrer quelque soit le document Grist.

Concrètement, il repose sur des templates que vous maîtrisez entièrement, contenant des balises, écrits en Markdown dans Grist, sans dépendance à Word, à un outil externe ou à un widget.

Grâce à une formule appliquée dans une seule colonne, le moteur est capable de transformer :

  • les données de la ligne courante,
  • les données issues de relations,
  • ainsi que celles provenant de tables de référence.

Et surtout d’afficher avec flexibilité les listes sous différents formats : bullet points, inline, tableau avec choix des colonnes à afficher.

Le rendu s’appuie sur :

  • des balises explicites pour structurer le document,
  • des variables alignées sur les noms de colonnes pour une injection naturelle des informations,
  • une mise en forme en Markdown, simple, lisible et proche du HTML,
  • l’intégration d’images, statiques ou dynamiques,
  • et la génération de documents prêts à être imprimés ou exportés en PDF.

Ce n’est pas un widget, mais un une formule tout terrain, volontairement conçue pour être flexible, maintenable et évolutif.
Résultat : un moteur robuste, générique, capable de s’adapter à une grande variété de cas d’usage documentaires, directement depuis Grist.

Nous avons un petit document de démo et serons ravis de recueillir vos impressions pour amélioration du moteur : Génération de documents - Démo - Grist

Très bonne journée !
Alexis, de l’équipe Dycazo

4 « J'aime »

Bonjour @Alexis_C

C’est top ! Merci pour la communauté !

Comme souvent, le rendu des champs de type date ne semble pas pris en compte.
Je vois que le document prend les dates de naissance et décès d’un auteur au format US même si on bascule le champ au format FR. Mais c’est récurrent dans Grist.

Je me trompe ? Une issue ?
Merci

1 « J'aime »

Merci @ecouillard pour le retour et cette proposition d’amélioration. Nous allons regarder si l’on peut prendre en compte le format de la date et le cas échéant publier une nouvelle version de la formule qui l’intègre.

Merci et bonne journée !
Alexis

Bonjour @ecouillard,

Nous avons mis à jour la formule (version 2.1 : GitHub - Dycazo-by-Fastcube/Grist-Custom-Document-Generation) pour donner la possibilité de formater de façon flexible les dates avec les syntaxes suivantes :

Fonction Exemple
Date courte {{StartDate}}.date(@short)
Date longue {{StartDate}}.date(@long)
Date complète {{StartDate}}.date(@full
ISO date {{StartDate}}.date(@iso)
Datetime ISO {{StartDate}}.dt(@iso_dt)
Pattern libre {{StartDate}}.date(dddd DD MMMM YYYY)

Et la possibilité de surcharger la langue parmi les suivantes : FR, EN, DE, ES, IT, PT). Par exemple : {{StartDate}}.date(@full|FR)

L’exemple des dates est détaillé dans le document de démo : Génération de documents - Démo - Grist

Nous allons faire de même pour le format des colonnes numériques.

Alexis

1 « J'aime »

Bonjour @Alexis_C ,

Merci beaucoup pour votre générateur de document!

Je débute avec Grist, et j’avoue que c’est un vaste univers qui s’ouvre, surtout quand on n’y connait pas grand chose!

Donc pardon si mes questions suivantes sont bêtes!

Voici mes problèmes

1/Je n’arrive pas à rapatrier une image avec les indications données dans le guide d’utilisation de votre outil

Je veux importer une image que je stocke dans mon Grist (il s’agit d’une signature, je ne veux pas l’herberger en public). J’utilse donc le widget GitHub - rambip/grist-attachment-widgets: Small widget to generate a temporary URL from an attachment in Grist · GitHub Pour générer une URL dans Grist afin d’utiliser le formatage {{id_colonne}}.img. Quand je fais cela ça fonctionne bien. Mon problème est que mon URL d’image es stockée dans une autre table. Si j’essaie de l’appeler {{id_colonne}}.id_colonne_de_la_table_liee.img, ca ne fonctionne pas.

Est-ce que c’est parce que ce n’est possible d’appeler l’URL d’une image à partir d’une colonne d’une table liée? Ou est-ce ma grammaire Grist qui n’est pas correcte?

2/ Mon deuxième problème porte sur le formatage des dates: De la même manière je rapatrie une date à partir d’une table liée, la date s’affiche mais au format américain. Je ne peux la formater correctement que si je j’utilise {{date}}.date(@short) sur une date située dans la même table.

Là aussi, est-ce impossible ou es-ce ma grammaire Grist qui n’est pas correcte?

Merci d’avance pour vos réponses!

Simon