- Monodraw est un éditeur d’art ASCII pour Mac qui permet de dessiner des diagrammes, organigrammes et structures de données en texte brut, afin qu’ils soient lisibles directement dans la documentation technique et le code
- Comme le résultat est du texte, il est facile à copier-coller ; si nécessaire, il est aussi possible de créer une version image via l’export PNG ou SVG
- Il prend en charge les mind maps, les diagrammes ER et la création de bannières, avec un accent mis sur la visualisation pour la documentation plutôt que sur la simple édition de texte
- Il propose FIGlet et 148 polices intégrées par défaut, ainsi que des lignes, rectangles, guides d’alignement, groupes et raccourcis clavier pour réduire les tâches répétitives liées à l’art texte
- macOS 11 Big Sur ou version ultérieure est requis ; l’outil en ligne de commande se télécharge directement depuis le site web et n’est inclus que dans la version achetée via la boutique
Un outil de visualisation pour Mac qui dessine en texte
- Monodraw est un éditeur destiné à créer de l’art ASCII sur Mac
- Il permet de concevoir en mode texte des structures comme des diagrammes, mises en page et organigrammes
- Il sert à organiser visuellement des éléments difficiles à comprendre avec du code seul, comme des algorithmes, structures de données ou formats binaires
- Le résultat étant du texte brut, il peut être inséré presque tel quel dans des documents, du code ou des spécifications
- Lorsqu’une image est nécessaire, il peut exporter en PNG et SVG
Documentation technique et représentation de modèles de données
- Les diagrammes en texte intégrés au code et aux spécifications servent à comprendre rapidement les structures
- La visualisation des structures de données, algorithmes et formats de données est importante pour aider le lecteur à saisir les relations et les flux
- Comme on passe plus de temps à lire le code qu’à l’écrire, les diagrammes texte peuvent aider lors de la maintenance et des revues
-
Mind maps
- Combine la simplicité du texte brut avec l’approche des mind maps
- Permet de déplacer le texte où l’on veut sur un canevas infini
- N’est pas limité par la structure linéaire des fichiers texte
-
Diagrammes ER
- Visualise les modèles de données sous forme de simples diagrammes entité-relation
- Prend en charge la notation Crow’s Foot avec 3 variantes
Fonctions de création d’art texte
- Les bannières peuvent être créées en un clic
- FIGlet est intégré, avec 148 polices incluses par défaut
- Les polices personnalisées sont également prises en charge
- Le redimensionnement des zones de texte, le changement de police et l’ajustement de l’alignement peuvent être effectués de manière interactive, sans terminal
- L’outil texte fonctionne avec un moteur de texte personnalisé basé sur CoreText
- Il permet d’ajuster l’alignement, la position, le sens de progression des lignes et le déplacement des lignes
- Une bordure peut être ajoutée autour du texte en un clic
- L’outil ligne facilite la connexion des formes et prend en charge les lignes orthogonales et en escalier
- Il permet de définir le motif de pointillés des lignes
- Grâce aux points de connexion, les lignes peuvent s’attacher dynamiquement à d’autres formes, ce qui réduit le travail de repositionnement après déplacement des formes
- L’outil rectangle sert à créer les boîtes fréquemment utilisées dans l’art texte
- Les bordures et l’arrière-plan peuvent être définis en quelques clics
- Il est possible d’ajouter une ombre
- Des points de connexion personnalisés permettent d’attacher les lignes à l’emplacement exact voulu
Fonctions d’aide pour réduire le travail sur le canevas
- Les outils de dessin de base proposés sont Pencil, Eraser, Bucket Fill et Picker
- Une image peut être superposée sur le canevas pour servir au traçage
- La fonction groupes permet de regrouper plusieurs formes afin de faciliter leur duplication et leur déplacement
- Les guides d’alignement évitent d’avoir à compter directement le nombre de caractères lors du placement et du redimensionnement du contenu
- La fonction focus permet de verrouiller ou masquer les autres formes lorsque l’on veut se concentrer sur une partie précise du canevas
- Il est possible de zoomer pour se concentrer sur les éléments actuellement visibles
- Toutes les fonctions sont accessibles par raccourcis clavier
- Les outils peuvent être sélectionnés rapidement avec une seule touche, sans touche modificatrice
Compatibilité macOS et conditions de l’outil en ligne de commande
- Monodraw est conçu comme une application native pour macOS, du moteur de mise en page de texte à l’interface
- L’art texte peut être exporté en le copiant puis en le collant dans l’éditeur de texte de son choix
- La configuration requise est macOS 11 Big Sur ou version ultérieure
- Sur les anciennes versions de macOS, Monodraw v1.3 peut être utilisé et nécessite macOS 10.10 Yosemite ou version ultérieure
- Monodraw v1.5 nécessite macOS 10.14 Mojave ou version ultérieure
- L’interface en ligne de commande n’est incluse que dans la version téléchargée directement
- Elle est incluse dans la version téléchargée directement depuis le site web et achetée sur la boutique
- La version Mac App Store ne peut pas inclure l’outil en ligne de commande en raison des restrictions de l’App Sandbox
- Elle peut être utilisée avec des hooks de gestion de versions pour générer automatiquement de la documentation au moment des commits
- La sortie JSON est également prise en charge, ce qui facilite son traitement par des programmes
- Monodraw indique ne collecter aucune donnée
1 commentaires
Avis de Hacker News
Au final, je reviens toujours à Monodraw
Les autres apps offrent trop de fonctionnalités et de choix de styles, au point qu’il devient difficile de se concentrer sur le contenu, alors que Monodraw ne distrait pas
Il a tout de même assez de fonctions pour créer pas mal de choses, et j’aime particulièrement les ancres : https://tamasruss.com/articles/monodraw-anchors
Cela dit, la technique elle-même est propre
Cet outil fait partie de mes apps préférées, et je l’ai payé dès sa sortie
Je l’ai utilisé plusieurs fois pour rédiger ce type de documentation : https://github.com/ivank/potygen/blob/main/packages/potygen/...
L’ASCII est tellement polyvalent qu’il permet d’insérer de jolis schémas à des endroits inattendus et de rendre les choses plus faciles à comprendre
Les caractères sont corrects, mais le choix de police de GitHub semble mal gérer les « espaces significatifs » dans la partie étendue
Je maintiens une liste d’outils web de texte vers diagramme : https://xosh.org/text-to-diagram/
Parmi les alternatives web à ce type d’outil de dessin ASCII, il y a https://fsymbols.com/draw/, https://textik.com/, https://asciiflow.com/#/, https://web.archive.org/web/20210503172024/https://fatiherik..., https://app.monosketch.io, etc.
C’est un outil créé par l’auteur de SQLite : https://pikchr.org/home/doc/trunk/doc/userman.md
Dans la liste, il semble que seul https://textik.com/ gère les diagonales, et encore, il ne semble pas avoir de fonction de remplissage
Le diagramme que j’essayais de dessiner ressemblait à ceci : https://pastebin.com/NPXFS1Fi
Avec textik.com, j’ai pu faire les boîtes et les triangles, mais j’ai dû corriger manuellement plusieurs coins et remplir l’intérieur moi-même
Même si Monodraw ne coûte que 10 dollars, comme c’est une app native réservée au Mac, je ne sais pas si je paierais
Je travaille beaucoup sur le web et j’utilise plusieurs appareils ; comme je ne dessine des diagrammes que quelques fois par an, une solution web ou un plugin VSCode me semble préférable
Il pourrait y avoir des outils intéressants
J’aime vraiment cet outil
Je l’ai utilisé pour créer des diagrammes Mapless : https://sebastianconcept.github.io/Mapless/guides/2024/01/28...
Et aussi pour documenter la configuration du builder de Pharo VM Plugin : https://github.com/sebastianconcept/PharoPluginBuilder
Ça paraît très détourné pour dessiner quelques rectangles ; il n’y aurait pas une méthode plus simple ?
Ce serait vraiment bien que ce soit cross-platform
J’aimerais l’utiliser aussi sous Linux
Je comprends les efforts nécessaires pour créer une app bien finie, mais j’aimerais que les outils d’apps desktop ciblent mieux Linux, Windows et Mac
C’est probablement aussi l’une des grandes raisons de la multiplication des apps web
C’est vraiment bien adapté à ce genre d’apps
Super outil
Comme alternative en version web, il y a https://github.com/tuanchauict/MonoSketch, qu’un ami a créé en Kotlin
J’ai aussi une version moins aboutie en Rust : https://github.com/huytd/ascii-d
Ça a l’air bien
https://asciiflow.com/ est une alternative web, et c’est l’outil que j’ai principalement utilisé pendant 10 ans
Cela dit, je n’ai pas encore trouvé comment faire en sorte que le navigateur rende correctement les polices à chasse fixe
Il suffit de regarder les exemples de diagrammes sur cette page : http://uggly.bytester.net/#how-it-works
C’est le genre d’app qu’on achète et qu’on garde, même si on ne s’en sert qu’occasionnellement
Si tu l’as essayé toi-même, j’aimerais aussi savoir comment tu as utilisé les diagrammes que tu as créés
J’imagine bien des captures d’écran des diagrammes, mais le texte source me paraît trop volumineux pour être placé dans un terminal, par exemple
Cette app est passée en mode maintenance en 2018 ; quelque chose a-t-il changé depuis ? https://blog.helftone.com/monodraw-maintenance-mode/
Merci pour les retours positifs sur l’app
Le temps me manque énormément, donc je ne peux pas publier autant de mises à jour que je le voudrais
Je travaille sur quelques fonctionnalités très demandées, mais je ne peux pas promettre quand elles sortiront
En général, j’avance un peu pendant mes vacances
Cela dit, je continuerai à corriger les problèmes causés par les mises à niveau de l’OS, et je compte maintenir le produit en état de fonctionner
Elle explique que maintenir un projet open source représente une lourde charge, et que publier un produit fini en open source peut conduire à ce que des clones soient vendus à des clients qui ne savent pas de quoi il s’agit
Mais en l’ouvrant en open source, des contributeurs pourraient prendre en charge une partie du travail, et certaines licences peuvent empêcher la vente de ce type de clones
Je l’ai essayé par le passé et je l’avais trouvé bon
Dans mon souvenir, mon seul reproche était qu’il fallait utiliser son format de fichier intégré propriétaire pour conserver les fonctionnalités avancées comme les ancres ou les boîtes redimensionnables
Le simple fait de pointer vers un dessin ASCII dans un document Markdown ne fait pas apparaître automatiquement toutes ces fonctionnalités
Si on le voulait vraiment, on pourrait sans doute résoudre une partie du problème avec des algorithmes intelligents et des LLM ; d’ailleurs, j’ai beaucoup utilisé des LLM pour ébaucher des diagrammes ASCII, avec un certain succès
Mais je n’ai pas encore trouvé de bon équilibre entre la maintenabilité — c’est-à-dire le fait de traiter les boîtes comme des boîtes, avec des connecteurs qui suivent quand on les déplace — et la portabilité, c’est-à-dire le fait que tout soit du texte brut
Si la version récente de Monodraw est différente, ou si un autre outil résout ce problème, j’aimerais vraiment le savoir
En tout cas, Monodraw me convenait mieux que le mode artist d’Emacs
Je me demande s’il existe beaucoup de diagrammes existants que l’on voudrait maintenir
Si l’on part de zéro, j’aurais plutôt tendance à m’attendre à ce genre de format de fichier abstrait, et à le voir comme la relation entre une source PSD et un rendu PNG
Ou encore comme la relation entre le code source et un binaire
Parser un artefact de sortie pour retrouver une forme abstraite porteuse de sens me semble difficile à faire parfaitement