Ferrite – Markdown-Editor mit nativer Mermaid-Diagramm-Rendering-Unterstützung, entwickelt in Rust
(github.com/OlaProeis)- Ferrite ist ein Rust-basierter Texteditor, mit dem sich Markdown-, JSON-, YAML- und TOML-Dateien schnell und leichtgewichtig bearbeiten lassen
- Mit dem egui-Framework bietet er Reaktionsfähigkeit auf nativem Niveau und eine plattformübergreifende Laufzeitumgebung
- Unterstützt zahlreiche Funktionen wie WYSIWYG-Vorschau, MermaidJS-Diagramm-Rendering, Git-Integration und Workspace-Modus
- Der gesamte Rust-Code und die Dokumentation des Projekts wurden von einer AI (Claude by Anthropic) erzeugt; Menschen übernahmen Review und Tests
- Als praktisches Beispiel für AI-gestützte Entwicklung zeigt das Projekt die Möglichkeiten der Zusammenarbeit zwischen dem Rust-Ökosystem und AI-Entwicklung
Überblick über Ferrite
- Ferrite ist ein schneller, leichtgewichtiger Texteditor, der Markdown-, JSON-, YAML- und TOML-Dateien unterstützt
- Geschrieben in Rust und egui, was Reaktionsfähigkeit auf nativem Niveau und plattformübergreifende Ausführung gewährleistet
- Hauptsächlich unter Windows entwickelt und getestet, funktioniert aber auch unter Linux und macOS
- Vorgefertigte Binärdateien verfügbar für Windows, Linux (.deb, tar.gz) und macOS (Intel/ARM)
AI-basierte Entwicklung
- Der gesamte Rust-Code, die Dokumentation und die Konfigurationsdateien von Ferrite wurden von einer AI (Claude by Anthropic) geschrieben
- Der Entwickler übernahm die Festlegung der Produktrichtung, Tests und die Koordination der AI-Entwicklung
- Der Code wird nach Review und Tests übernommen, und der AI-Erzeugungsprozess wird transparent offengelegt
- Das Projekt dient der Erkundung von Grenzen und Potenzialen AI-gestützter Entwicklung
Hauptfunktionen
- Unterstützung für Markdown-Echtzeitvorschau (WYSIWYG) und Syntax-Highlighting
- Unterstützung mehrerer Formate: Markdown, JSON, YAML, TOML
- Mit dem Tree Viewer lassen sich JSON-/YAML-/TOML-Strukturen hierarchisch durchsuchen und inline bearbeiten
- Produktivitätsfunktionen wie Regex-Suchen und -Ersetzen, Zeilen verschieben (Alt+↑/↓) und Zeilen duplizieren (Ctrl+Shift+D) sind enthalten
- Bietet automatisches Schließen von Klammern und Anführungszeichen, automatisches Speichern, einstellbare Zeilenbreite, Minimap und Code Folding
MermaidJS-Diagramm-Rendering
- Rendert mit MermaidJS 11 Diagrammtypen nativ
- Flowchart, Sequence, Pie, State, Mindmap, Class, ER, Git Graph, Gantt, Timeline, User Journey
- Direkte Visualisierung innerhalb der Markdown-Vorschau möglich
Workspace und Bearbeitungsumgebung
- Der Workspace Mode unterstützt das Öffnen auf Ordnerebene, das Durchsuchen des Dateibaums, schnellen Dateiwechsel (Ctrl+P) und globale Suche (Ctrl+Shift+F)
- Die Git-Integration zeigt den Status geänderter, hinzugefügter und ignorierter Dateien visuell an
- Die Funktion Sitzungswiederherstellung stellt beim Neustart Tabs, Cursorpositionen und Scrollstatus wieder her
- Zen Mode bietet eine fokussierte Schreibumgebung, und mit Split View lassen sich Quelle und Rendering gleichzeitig anzeigen
1 Kommentare
Hacker-News-Kommentare
Ich hatte auf Fortschritte bei Zed gehofft, aber auch dieses Projekt ist ziemlich interessant
Ich nutze Obsidian intensiv, würde mich aber freuen, wenn es eine echte Alternative gäbe, die sich auf die Grundlagen konzentriert
Ich frage mich, was das Endziel ist. Ich werde es weiter beobachten
Es ist noch nicht bereit für Show HN, aber ich würde gern frühes Feedback hören
Etwas, das ohne Electron oder Web-Technologien sofort startet; in v0.3.0 soll Mermaid in ein separates Crate ausgelagert werden, und ich plane ein Custom-Widget zu bauen, das über die Grenzen von eguis TextEdit hinausgeht
Langfristig ist das Ziel, daraus eine Rust-basierte Headless-Editor-Bibliothek zu machen
Details dazu stehen in ROADMAP.md
Interessant, dass Ferrite hauptsächlich unter Windows entwickelt und getestet wurde
In letzter Zeit fühlte man sich als Windows-Nutzer oft wie ein Bürger zweiter Klasse, daher ist das schön zu sehen
Die Formulierung „dieses Projekt besteht zu 100 % aus KI-generiertem Code“ hat mich allerdings etwas überrascht
Trotzdem finde ich es gut, dass das offen gesagt wurde
Offenbar erst, nachdem einige Nutzer darauf hingewiesen hatten, dass der Einsatz von KI verschwiegen worden sei
Ich würde gern ein bisschen Werbung für meine App Octarine machen
Eine Markdown-Notiz-App im WYSIWYG-Stil, geschrieben in Rust (Tauri), die alle Daten lokal speichert
Nicht „vibe coded“ :)
In letzter Zeit gibt es auf HN mehr KI-generierte Inhalte, und dieser Beitrag scheint ebenfalls voller KI-generiertem Code und KI-generierten Kommentaren zu sein
Vermutlich, weil er beliebte Themen gut getroffen hat
Der Text in den Screenshots ist so klein, dass man fast eine Lupe braucht
Screenshots sollten weder zu groß noch zu klein sein und so aufgenommen werden, dass der Inhalt gut lesbar ist
Gerade bei hoher Auflösung verschlechtert zu viel Leerraum die Lesbarkeit eher
Ich habe sie in hoher Auflösung aufgenommen, dadurch waren sie auf kleineren Bildschirmen schwer lesbar
Ich werde die Fenstergröße verkleinern und mit weniger Leerraum neue Screenshots machen
Ich habe Typora gern bezahlt
Es unterstützt nur Markdown, aber in diesem Bereich gibt es noch immer Potenzial
Gerade jetzt, wo LLMs viel strukturierten Text und Diagramme erzeugen, gilt das umso mehr
Und außerdem ist es Open Source
Es ist selten, bei einem egui-Projekt eines zu sehen, bei dem man diesen typischen egui-Stil nicht sofort erkennt
Ich frage mich, wie die Erfahrung beim Arbeiten mit egui war
Durch den Immediate-Mode ist das State-Management einfach
Allerdings ist TextEdit nicht für Code-Editoren gedacht, deshalb fehlen Multi-Cursor und Code-Folding
Darum soll es in v0.3.0 durch ein Custom-Widget ersetzt werden
Dass das Standard-Theme zu sehr nach „egui“ aussieht, habe ich mit einem benutzerdefinierten Theme gelöst
Es freut mich, dass native Markdown-Rendering verwendet wird
Es ist viel besser als der Ansatz anderer Bibliotheken, Chromium zu starten und Screenshots zu machen
Beim Teilen könnte es also anders aussehen
Innerhalb von Ferrite ist das kein Problem, und fürs Teilen plane ich in v0.3.0 eine SVG-Export-Funktion hinzuzufügen
Ich frage mich, warum die Einstellungen und Anweisungen für KI-Agenten aus dem Repository entfernt wurden (siehe .gitignore)
Die KI-Konfigurationsdateien sind für das Projekt selbst jedoch nicht nötig, deshalb wurden sie ausgeschlossen
Ich werde im README ergänzen, dass KI-Unterstützung genutzt wurde
Der Code wurde nach Prüfung übernommen und nicht unkritisch akzeptiert
Es gibt nur zehn Commits, und einige davon bestehen aus Markdown-Dokumenten voller Emojis
Es wäre nützlich, wenn Mermaid-Parsing und Layout als separates Crate ausgelagert würden
Ein schnelles CLI-Tool mit SVG-/PDF-/PNG-Ausgabe wäre großartig
Der rund 7000 Zeilen lange Mermaid-Renderer soll als eigenständiges Crate herausgelöst werden, mit SVG-/PNG-Ausgabe und CLI-Unterstützung
Es ist vollständig in Rust geschrieben und damit auch WASM-kompatibel. Ich würde mich freuen, wenn ihr gespannt bleibt