Bonjour à tous,
Premier topic sur le forum et premier widget que je mets à disposition de la communauté. Je le propose en licence GNU GPL.
Il s’agit d’un éditeur de texte avec publipostage et puces intelligentes.
Il permet à n’importe qui de rédiger des contrats, factures, étiquettes sans passer par la moindre ligne de code et de pouvoir référencer une variable de n’importe quelle table du document et de la reformater pour l’afficher si nécessaire !

GitHub : https://github.com/grist-factory/Publipostage-Plus
Lien d’intégration : https://grist-factory.github.io/Publipostage-Plus/
Grist démo : https://grist.numerique.gouv.fr/o/docs/bPnkQWfyXrBW/PubliPostagePlus?utm_id=share-doc
Features principales :
Mise en page
-
Mise en forme complète : gras/italique/souligné/barré, couleurs, polices et tailles réelles en points, alignement, titres, liste à puces
-
Tableaux, colonnes,
-
Images et images flottantes.
-
En-têtes/pieds de page
-
Aperçu « format A4 » fidèle (What You See Is What You Get)
Variables Grist intelligentes
-
Autocomplétion
#Table.Colonnesur toutes les tables avec références custom si nécessaire et formatage sur mesure des dates et nombres -
Chips intelligents (date du jour, e-mail de l’utilisateur connecté)
Export PDF
-
Export en PDF vectorisé
-
Export en lot (ZIP) sur toutes les lignes d’une table en un clic
-
Nommenclature personnalisable avec les variables
Modèles
-
Gestion multi-modèles, sauvegardés directement dans le document Grist
-
Galerie de modèles prêts à l’emploi
Autres
-
Interface bilingue FR/EN
-
Choix de la touche à utiliser pour définir les variables (« # » par défaut)
Roadmap Widget
Note sur l’IA
Ce widget a été réalisé avec l’aide de Claude Code, avec le modèle Claude Sonnet 5 en mode Ultra Code. Le code a été relu par un humain (moi) mais manque de token pour etre aussi efficace que Claude.
La version Alpha sera aussi l’occasion de corriger ou refacto certains éléments si necessaire, le dépot est ouvert à la collobration (cf ci-après).
Securité
Afin de pouvoir sauvegarder les modèles, le code a besoin d’un accès en écriture dans une table qu’il doit créer ; il demande donc un accès complet au document, faute de mieux.
L’ensemble du code s’exécute au cœur de Grist (iframe comme tous les widgets custom), aucune donnée ne transite en dehors. Il s’agit uniquement d’un plugin « front-end ».
Un audit de sécurité a permis de corriger les principales failles, mais le plugin utilise plusieurs dépendances, elles sont fiables et régulièrement mise à jour mais servie via leur CDN. Plus d’informations sur la sécurité sont disponibles sur le dépôt.
Roadmap widget
De nombreuses features sont prévues et seront implémentées progressivement dans les prochaines semaines, n’hésitez pas à voter ici ou dans un canal Tchap pour m’aider à les prioriser.
Édition collaborative
-
Sauvegarde automatique (Beta)
-
Co-édition, commentaires et suivi des modifications (Beta)
Publipostage condtionelle
- Boucles et conditions pour afficher plusieurs lignes d’une même colonne grâce à une même variable (Beta)
Edtion augmenté
-
Nouveaux blocs et puce (citations, légendes, bloc de code, bloc de signature) (Beta)
-
WaterMark (V1)
-
Génération de QR code (V1)
-
Fusion conditionnelle de plusieurs modèles (adapter les annexes mais première page identique par exemple) (Beta)
-
Rechercher Remplacer (Beta)
Import / Export
-
Export Docx (Beta)
-
Export en md
-
Import md (et fiabilité 100% sur les imports de Docs de La Suite) ( Beta)
-
Nouveau format (paysage, A3-A6) (V1)
-
Export pdf impression navigateur, impression full HD et pdf compressé (Beta)
-
Mode Email via mailto (Beta)
QOL
-
Dossier de gestion des modèles (V1)
-
Optimisation chargement (V1)
Sécurité
-
Version en lecture seule sur les tables grists (V1)
-
Version avec les dépendances en bundle pour éviter tout appel extérieur. (V1)
-
Demande audit Dinum (V1)
Participer à l’enrichissement de ce widget
Comment participer à l’évolution de ce widget ?
-
Tester et me faire des retours (bug, idée de feature)
-
Me faire remonter des cas d’usage concrets pour m’aider à priorisé et adapter l’UX.
-
Si vous souhaitez ajouter un template disponible dans la librairie de template :
-
Ce n’est pas possible directement pour des raisons de sécurité
-
Vous pouvez m’envoyer le code HTML généré directement en MP.
- Si c’est un template avec une option préremplie avec les data, inclure également un export du code grist de la table créée dédié au remplissage du template)
-
Accepter la publication du template sous licence GNU et me donner le nom que vous souhaitez faire apparaitre dans les crédits.
-
-
Auditer le code. J’aimerais que la V1 de ce widget puisse être auditée par la DINUM pour être proposée nativement dans Grist. Au vu de la longueur du code, je suis preneur de toute aide à ce sujet.
Référence et autres modules liés
Si vous tombez sur ce poste et que vous cherchez d’autres alternatives, voici quelques éléments :
Avant de développer ce module, j’utilisais celui-ci https://forum.grist.libre.sh/t/generer-des-pdf-personnalises-publipostage-widget-markdown/1154 et celui là https://forum.grist.libre.sh/t/publipostage-custom-widget-pour-enregistrer-facilement-les-pdfs/2286 pour faire mes exports en masse.
Pendant 6 mois, c’était parfait pour moi. Mais lorsque j’ai voulu autonomiser mes collègues sur la prise en main de l’outil, la vue du code HTML en a effrayé bon nombre. (Il faudra leur dire un jour que ce n’est même pas de la programmation).
Une mention honorable à ce plugin https://forum.grist.libre.sh/t/widget-document-template-publipostage/2857/17 qui proposait déjà un éditeur WYSIWYG mais qui manquait, selon moi, d’efficacité pour la sélection des variables et dans l’UX.















