Ferrite – éditeur Markdown natif en Rust avec prise en charge du rendu de diagrammes Mermaid
(github.com/OlaProeis)- Ferrite est un éditeur de texte basé sur Rust permettant d’éditer rapidement et légèrement des fichiers Markdown, JSON, YAML et TOML
- Grâce au framework egui, il offre une réactivité de niveau natif et un environnement d’exécution multiplateforme
- Il prend en charge de nombreuses fonctionnalités, comme la prévisualisation WYSIWYG, le rendu de diagrammes MermaidJS, l’intégration Git et le mode workspace
- L’ensemble du code Rust et de la documentation du projet a été généré par une IA (Claude d’Anthropic), tandis que l’humain s’est chargé de la revue et des tests
- Cas concret d’application du développement assisté par IA, le projet montre les possibilités de collaboration entre l’écosystème Rust et le développement avec IA
Présentation de Ferrite
- Ferrite est un éditeur de texte rapide et léger prenant en charge les fichiers Markdown, JSON, YAML et TOML
- Écrit en Rust et avec egui, il garantit une réactivité de niveau natif et une exécution multiplateforme
- Il a été principalement développé et testé sous Windows, mais fonctionne aussi sous Linux et macOS
- Des binaires précompilés sont disponibles pour Windows, Linux (.deb, tar.gz) et macOS (Intel/ARM)
Développement basé sur l’IA
- Tout le code Rust, la documentation et les fichiers de configuration de Ferrite ont été écrits par une IA (Claude d’Anthropic)
- Le développeur s’est chargé de définir l’orientation du produit, des tests et de la coordination du développement avec l’IA
- Le code est accepté après revue et tests, et le processus de génération par IA est rendu public de manière transparente
- Le projet vise à explorer les limites et le potentiel du développement assisté par IA
Fonctionnalités principales
- Prise en charge de la prévisualisation Markdown en temps réel (WYSIWYG) et de la coloration syntaxique
- Prise en charge de plusieurs formats : Markdown, JSON, YAML, TOML
- Le Tree Viewer permet d’explorer de manière hiérarchique la structure des fichiers JSON/YAML/TOML et de les modifier en ligne
- Inclut des fonctions de productivité comme la recherche/remplacement par regex, le déplacement de ligne (Alt+↑/↓) et la duplication de ligne (Ctrl+Shift+D)
- Propose la fermeture automatique des parenthèses et guillemets, la sauvegarde automatique, le réglage de la largeur de ligne, la minimap et le pliage de code
Rendu de diagrammes MermaidJS
- Rend nativement 11 types de diagrammes avec MermaidJS
- Flowchart, Sequence, Pie, State, Mindmap, Class, ER, Git Graph, Gantt, Timeline, User Journey
- Visualisation directe possible dans la prévisualisation Markdown
Workspace et environnement d’édition
- Le Workspace Mode permet d’ouvrir des dossiers, de parcourir l’arborescence des fichiers, de basculer rapidement entre les fichiers (Ctrl+P) et d’effectuer une recherche globale (Ctrl+Shift+F)
- L’intégration Git affiche visuellement l’état des fichiers modifiés, ajoutés ou ignorés
- La restauration de session permet de récupérer au redémarrage les onglets, la position du curseur et l’état du défilement
- Le Zen Mode fournit un environnement d’écriture focalisé, et la Split View permet de voir simultanément la source et le rendu
1 commentaires
Commentaires sur Hacker News
J’espérais voir des avancées du côté de Zed, mais ce projet-ci est aussi assez intéressant
J’utilise beaucoup Obsidian, mais j’aimerais bien voir émerger une vraie alternative centrée sur les fondamentaux
Je me demande quel est l’objectif final. Je vais suivre ça de près
Ce n’est pas encore prêt pour un Show HN, mais j’aimerais recueillir des retours précoces
Une application qui se lance instantanément, sans Electron ni technologies web ; dans la v0.3.0, Mermaid sera séparé dans une crate distincte, et je prévois de créer un widget personnalisé pour dépasser les limites de TextEdit d’egui
À long terme, l’objectif est d’en faire une bibliothèque d’éditeur headless basée sur Rust
Voir ROADMAP.md pour plus de détails
Le fait que Ferrite ait été principalement développé et testé sous Windows est intéressant
Ces derniers temps, les utilisateurs de Windows avaient l’impression d’être des citoyens de seconde zone, donc c’est appréciable
En revanche, j’ai été un peu surpris en voyant la mention « ce projet est composé à 100 % de code généré par l’IA »
Cela dit, j’apprécie l’honnêteté de l’avoir indiqué
Apparemment, elle n’a été ajoutée qu’après que certains utilisateurs ont reproché que l’usage de l’IA avait été dissimulé
J’aimerais faire un peu de pub pour mon app Octarine
C’est une app de notes Markdown façon WYSIWYG écrite en Rust(Tauri), qui stocke toutes les données en local
Ce n’est pas du « vibe coded » :)
Ces temps-ci, il y a de plus en plus de contenu généré par l’IA sur HN, et ce post semble lui aussi rempli de code et de commentaires générés par l’IA
C’est probablement parce qu’il touche bien à des sujets populaires
Le texte de la capture d’écran est si petit qu’il faut presque une loupe
Il vaudrait mieux faire des captures ni trop grandes ni trop petites, de façon à ce que le contenu reste bien lisible
En particulier en haute résolution, trop d’espace vide finit au contraire par nuire à la lisibilité
La capture ayant été prise en haute résolution, elle était difficile à lire sur les petits écrans
Je vais réduire la taille de la fenêtre et les marges, puis refaire les captures
J’ai volontiers payé pour Typora
Il ne prend en charge que Markdown, mais il y a encore beaucoup de potentiel dans cet espace
Surtout aujourd’hui où les LLM génèrent beaucoup de texte structuré et de diagrammes
Et en plus, c’est open source
Il est rare de voir un projet egui qui ne donne pas autant cette impression de style propre à egui
Je serais curieux de savoir comment s’est passée l’expérience de travail avec egui
Son mode immédiat simplifie la gestion de l’état
En revanche, TextEdit n’est pas conçu pour un éditeur de code, donc il ne gère ni le multi-curseur ni le pliage de code
C’est pourquoi il sera remplacé par un widget personnalisé dans la v0.3.0
Quant au fait que le thème par défaut soit trop « egui », cela a été corrigé avec un thème personnalisé
Je suis content de voir l’usage d’un rendu Markdown natif
C’est bien mieux que d’autres bibliothèques qui lancent Chromium pour prendre des captures d’écran
À l’export ou au partage, il est possible que le rendu soit différent
À l’intérieur de Ferrite, cela ne pose pas de problème, et pour le partage, une fonctionnalité d’export SVG sera ajoutée dans la v0.3.0
Je me demande pourquoi la configuration et les instructions pour l’agent IA ont été retirées du dépôt (voir
.gitignore)Mais les fichiers de configuration IA ne sont pas nécessaires au projet, donc ils ont été exclus
Je vais ajouter dans le README une mention indiquant que de l’aide de l’IA a été utilisée
Le code a été revu avant intégration, il n’a pas été accepté sans recul
Il n’y a que 10 commits, et certains sont remplis de documents markdown bourrés d’emojis
Si le parsing et la mise en page de Mermaid étaient séparés dans une crate distincte, ce serait utile
Ce serait bien d’avoir un outil CLI rapide capable de produire du SVG/PDF/PNG
Le moteur de rendu Mermaid d’environ 7 000 lignes sera extrait dans une crate indépendante, avec prise en charge de la sortie SVG/PNG et d’un CLI
Écrit en pur Rust, il pourra aussi être compatible WASM. J’espère que cela vous intéressera