Architecture

Vue d’ensemble des modules

leaf est ecrit en Rust (Edition 2021) et organise en ces modules :

ModuleResponsabilite
main.rsParsing CLI, gestion des entrees, configuration TUI
cli.rsDefinitions des arguments en ligne de commande
config.rsLecture du fichier de configuration
app/Etat de l’application (document, TOC, recherche, pickers)
markdown/Parsing, rendu, LaTeX, Mermaid, tableaux, extraction TOC
render/Mise en page TUI avec ratatui
runtime.rsBoucle d’evenements, gestion clavier/souris
theme.rsPresets de themes et definitions de couleurs
editor.rsDetection et lancement de l’editeur
terminal.rsCycle de vie du mode terminal brut
update.rsMise a jour automatique avec verification SHA256

Dependances principales

  • ratatui — framework d’interface terminal
  • crossterm — gestion multi-plateforme du terminal
  • pulldown-cmark — parsing Markdown
  • syntect — coloration syntaxique
  • mmdflux — rendu de diagrammes Mermaid
  • unicodeit — conversion LaTeX vers Unicode

Boucle d’evenements

La boucle d’evenements principale dans runtime.rs tourne a environ 20 FPS (ticks de 50ms) :

  1. Interroger le chargement asynchrone du file picker
  2. Verifier les modifications de fichier (mode watch)
  3. Gerer les entrees clavier/souris
  4. Redessiner l’interface TUI
  5. Gerer le redimensionnement du terminal

Compilation

cargo build --release
cargo test