jeiel85/markleaf-android
jeiel85/markleaf-android has 143 GitHub stars and 15 forks. GitHot measured +1 stars in 24 hours and +5 in 7 days. Last checked 2026-11-09 09:24 UTC. Last push 2026-11-03.
Comment ces chiffres sont mesurés
A lightweight, local-first Markdown note app for Android.
Progression mesurée des étoiles
- in 24h
- +1
- in 7 days
- +5
- in 15 days
- Mise à jour retardée
- in 1 month
- Mise à jour retardée
Variations nettes sur des périodes qui se chevauchent, pas des totaux quotidiens. Les mesures absentes restent vides. Les étoiles indiquent l’intérêt, pas la qualité.
README.fr.md
Original
Markleaf
Des pensées qui s'accumulent en douceur, des notes Markdown bien rangées
Une application de notes Markdown minimaliste et local-first pour Android
English · 한국어 · 日本語 · 简体中文 · Deutsch · Español · Français · Hrvatski · Русский · Tiếng Việt · Slovenčina
Dépôt GitHub · Discussions (retours) · Miroir GitLab (archivé)
Insertion rapide avec / → Markdown standard → aperçu en direct
Tablette en 3 volets — barre de tags · liste de notes · éditeur sur un seul écran
🍃 Qu'est-ce que Markleaf ?
Markleaf est une application Android de prise de notes Markdown conçue pour éliminer le superflu afin que vous puissiez vous concentrer sur seulement deux choses : capturer et organiser. Vos données sont stockées uniquement sur votre appareil, et le format Markdown standard garantit une propriété et une portabilité complètes. Même la synchronisation ne passe que par un dossier que vous choisissez — Markleaf ne synchronise et n'envoie jamais rien de lui-même.
Voir la page de branding · Version actuelle : v2.71.0 · Politique de confidentialité · F-Droid · Google Play
✨ Fonctionnalités principales
Écriture et aperçu
- Insertion rapide avec
/— recherchez des commandes en début de ligne pour insérer titres, listes, tableaux, encadrés, wikiliens, images et plus encore, en Markdown standard - Aperçu Markdown en direct — basculez instantanément entre édition et aperçu, ou utilisez l'option Afficher la syntaxe Markdown pour une coloration syntaxique en direct
- Tableaux GFM / cases à cocher / citations / encadrés (
> [!NOTE]…) — tous rendus dans l'aperçu - Coloration syntaxique des blocs de code — coloration par tokens pour 10 langages : Kotlin, Java, Python, JavaScript/TypeScript, Bash, JSON, YAML, XML, SQL
- Saut référence ↔ définition pour les notes de bas de page (
[^N]) — appuyez sur l'exposant pour défiler en douceur jusqu'à la définition - Pièces jointes image + édition du texte alternatif — conservées comme copies isolées dans le stockage interne de l'application (aucune permission média requise)
- Bascule de mise en forme Markdown intelligente — entourez la sélection ou le mot autour du curseur de Gras/Italique/Barré/Code en ligne, et appuyez à nouveau pour retirer proprement la mise en forme d'un texte déjà entouré
- Raccourcis clavier — Ctrl/Cmd+B, I, K, Maj+S pour le gras, l'italique, le lien et le barré sur un clavier physique
- Table des matières (TOC) — en mode aperçu, sautez vers les titres H1–H3 pour naviguer dans les notes longues
- Choix de police — sans empattements, avec empattements ou à chasse fixe, ou un fichier de police
.ttf/.otfde votre choix (conservé sur l'appareil) ; les blocs de code restent toujours à chasse fixe - Mode concentration / statistiques de mots, caractères et temps de lecture / recherche et remplacement dans une note
Organisation et navigation
- Classification par étiquettes + auto-complétion — écrivez simplement des
#étiquettesdans le corps du texte pour une indexation automatique, sans dossiers ; les étiquettes existantes se complètent automatiquement lorsque vous tapez# - Wikiliens (
[[Titre]]) + panneau des liens entrants — auto-complétion, et voyez en un coup d'œil ce qui pointe vers cette note - Accès rapide (Ctrl+K) — saut par sous-chaîne de titre façon Obsidian
- Recherche plein texte avec SQLite FTS — rapide, jusque dans le corps du texte
- Épingler / archives / corbeille — la corbeille redemande confirmation avant la suppression définitive
Synchronisation et export (principe No-Cloud)
- Synchronisation en miroir de dossier — reflète chaque note sous forme de fichier
.md/.txtnommé selon le titre dans un dossier que vous choisissez via SAF (Drive/Dropbox/Syncthing/OneDrive/NAS, etc.) ; renommez une note et son fichier suit. Markleaf ne synchronise jamais lui-même ; la synchronisation est déléguée à l'application externe qui synchronise ce dossier - Ouvrir un fichier
.md/.txtpour le lire — Ouvrir un fichier… dans le menu ⋮, ou un appui dans votre gestionnaire de fichiers, ouvre le fichier rendu et en lecture seule ; aucune note n'est créée tant que vous n'appuyez pas sur Enregistrer comme note (le nom du fichier devient le titre s'il n'y a pas de titre dans le texte). Un fichier partagé depuis une autre application est toujours importé immédiatement. Les étiquettes des notes importées par synchronisation sont reconnues immédiatement - Export des notes individuelles ou de toutes les notes en
.md - Envoi via la feuille de partage du système
Design et accessibilité
- Thème vert Markleaf + bascule Material You — couleurs du fond d'écran système en option sur Android 12+
- Mode sombre automatique — suit le paramètre système
- Disposition en 3 panneaux pour tablette — barre latérale des étiquettes · liste des notes · éditeur ; appuyez sur une étiquette dans la barre latérale pour filtrer la liste des notes sur place (la liste des notes reste réductible)
- Interface en 11 langues — ressources en coréen / anglais / espagnol / japonais / français / allemand / chinois simplifié / croate / russe / vietnamien / slovaque
- Option de blocage des captures d'écran / aperçu dans les applications récentes — pour les notes sensibles
🔗 Fonctionne avec le dossier Markdown que vous avez déjà
Markleaf n'a pas de format de coffre qui lui soit propre. Pointez-le vers un dossier — y compris un dossier qu'Obsidian, Logseq ou votre éditeur de texte ouvrent déjà — et il travaille sur les fichiers qui s'y trouvent.
- Des fichiers simples, déjà les vôtres. Une note est un fichier
.md(ou.txt). Déposez vos fichiers existants dans le dossier : Markleaf les reprend comme notes dès son prochain passage au premier plan — sans étape d'import. - Votre frontmatter est préservé. Markleaf ajoute un petit en-tête YAML (
markleaf_id, horodatages, pinned/archived) pour associer un fichier à une note d'un appareil à l'autre, et tout ce qu'il ne connaît pas ressort tel quel — y compris les listes en bloc indentées dans lesquelles Obsidian écrit les tags, les tables imbriquées, les commentaires et les guillemets. L'en-tête qu'il ajoute est un sous-ensemble strict de YAML qu'Obsidian, GitHub et VS Code analysent tous. - La syntaxe que vous écrivez déjà.
[[Wikiliens]]avec panneau de rétroliens,#tagsdirectement dans le texte, tableaux et cases à cocher GFM, encarts> [!NOTE], et un sélecteur rapideCtrl+Kfaçon Obsidian. - Se réconcilie tout seul, avec prudence. Les changements faits ailleurs sont repris quand Markleaf revient au premier plan (au plus une fois par minute). Une modification faite depuis un autre éditeur est détectée même si celui-ci ne touche jamais au frontmatter de Markleaf : la réconciliation compare le corps du texte, pas seulement l'horodatage. Un fichier ne l'emporte que s'il est réellement plus récent ; si les deux côtés ont bougé, la version distante arrive comme une note distincte au lieu d'écraser vos modifications, et rien n'est jamais supprimé automatiquement.
[!IMPORTANT] Deux points à connaître avant de pointer Markleaf vers un vrai coffre.
- Un dossier, pas de sous-dossiers. Markleaf lit les fichiers situés directement dans le dossier choisi et ne descend pas dans les sous-répertoires. Un coffre organisé en dossiers imbriqués ne rencontrera Markleaf qu'à son niveau supérieur — c'est délibéré : Markleaf classe par tags plutôt que par dossiers.
- Modifier une note renomme son fichier. Les noms des fichiers miroirs suivent le titre de la note ; un fichier dont le nom diffère de son titre sera donc renommé au premier enregistrement dans Markleaf. Si des
[[liens]]de votre coffre pointent vers l'ancien nom, ils casseront.Si votre coffre est très arborescent ou riche en liens, pointez Markleaf vers un dossier séparé et utilisez-le comme boîte de réception mobile à fusionner ensuite, plutôt que comme second éditeur sur le coffre lui-même.
🛠 Stack technique
Markleaf suit les standards actuels du développement Android avec un stack moderne et facile à maintenir.
- UI : Jetpack Compose + Material 3 + couleur dynamique Material You
- Architecture : séparation simple en couches (core / data / domain / feature / ui) + patron Repository
- Base de données : Room — persistance locale reposant sur SQLite, tables virtuelles FTS4 pour la recherche plein texte
- Analyseur Markdown : commonmark-java (CommonMark 0.30 + extensions GFM : tableaux, barré, listes de tâches, notes de bas de page, YAML frontmatter ; l'aperçu rend un saut de ligne simple comme un saut de ligne et non comme une espace)
- Asynchrone : Kotlin Coroutines et Flow
- Storage Access Framework (SAF) — synchronisation en miroir de dossier + pièces jointes image
- Chargement d'images : Coil — Apache 2.0, adapté à F-Droid
- DataStore Preferences — paramètres de l'application
- Profile Installer 1.4.0 + Macrobenchmark — mesure du baseline profile au démarrage à froid (326ms sur un TB320FC)
- Tests : JUnit + Robolectric + tests de régression visuelle Roborazzi (goldens Linux, seuil 0.005)
- CI : GitHub Actions — build et instrumented tests sont des vérifications obligatoires, plus launch-smoke, record-roborazzi et la release signée lors du tag
🏗 Architecture
Markleaf utilise la structure en couches suivante pour séparer les responsabilités et faciliter les tests.
com.markleaf.notes
├── core # logique cœur partagée : traitement markdown, pièces jointes, synchronisation
├── data # DB Room, entités, implémentations de repository (source de données)
├── domain # modèles, interfaces de repository (logique métier)
├── feature # UI et ViewModels par écran (présentation)
│ ├── editor # éditeur, recherche/remplacement, auto-complétion des wikiliens, encadrés, tableaux
│ ├── notes # liste des notes, accès rapide, archives
│ ├── search # recherche plein texte FTS
│ ├── tags # index des étiquettes
│ ├── trash # corbeille / suppression définitive
│ └── settings # thème, dossier de synchronisation, blocage des captures, etc.
├── navigation # configuration de Jetpack Compose Navigation
└── ui # thème (Markleaf green / Material You), composants partagés
🚀 Prise en main
Installation
[!NOTE] Les mises à jour sur Google Play sont actuellement en pause. Aucune nouvelle version ne sera publiée sur le Play Store tant qu'une exigence de politique d'enregistrement d'entreprise en Corée pour le développeur indépendant ne sera pas résolue. Pour la version actuelle, utilisez GitHub Releases. Une fois que la compilation F-Droid est à jour, F-Droid reste le canal de mise à jour recommandé. (Si vous l'avez déjà installée depuis le Play Store, elle continue de fonctionner.)
- F-Droid (recommandé pour les mises à jour automatiques) : Markleaf sur F-Droid — recherchez-le dans le client F-Droid ou installez-le via le lien ci-dessus. Le catalogue peut être publié après GitHub ; s'il n'affiche pas encore la version actuelle, utilisez GitHub Releases ci-dessous. Il utilise la même clé de signature (SHA-256
0be97352…f91a), donc les mises à jour continuent sans interruption même si vous installez d'abord un APK GitHub par sideload. - Installation directe de l'APK : la release GitHub v2.71.0 contient deux APK —
markleaf-v2.71.0.apkcorrespond à la version F-Droid/Play (pas de mise à jour automatique, aucune permission supplémentaire), etmarkleaf-v2.71.0-sideload.apkajoute une vérification de mise à jour intégrée à l'application, activable (INTERNET,REQUEST_INSTALL_PACKAGES). Pour les mises à jour intégrées, choisissez la version sideload, téléchargez-la, puis exécutez-la sur votre appareil Android — les deux partagent la même clé de signature, donc passer de l'une à l'autre plus tard compte comme une mise à jour normale, pas comme une réinstallation. - Google Play : Markleaf sur Google Play — les mises à jour sont en pause (voir la note ci-dessus). Si vous l'avez déjà, elle continue de fonctionner ; obtenez la version actuelle via GitHub Releases ou via F-Droid une fois publiée.
Compilation depuis les sources
Si vous souhaitez compiler le projet ou contribuer, suivez ces étapes.
# Cloner le dépôt
git clone https://github.com/jeiel85/markleaf-android.git
# Entrer dans le dossier du projet
cd markleaf-android
# Compiler et installer
./gradlew installDebug
Les corrections de Markleaf commencent presque toujours par le signalement de quelqu'un d'autre. Ces personnes sont listées dans THANKS.md.
🔒 No-Cloud by design
Markleaf n'a aucun backend, et vos notes ne quittent jamais l'appareil d'elles-mêmes. Que vos données quittent l'appareil ou non est entièrement votre choix.
- ✅ Aucune déclaration de
android.permission.INTERNETdans les versions des boutiques (F-Droid, Google Play) — elles n'effectuent aucune requête réseau - ✅ Aucun serveur / backend Markleaf
- ✅ Aucune analyse / publicité / traçage / SDK à code source fermé
- ✅
android:allowBackup="false"— les données de Markleaf sont exclues de la sauvegarde automatique Android et du transfert entre appareils - ✅ Les données ne circulent par les chemins du système que lorsque vous exportez, partagez, ouvrez un lien externe ou choisissez un dossier SAF
- ✅ Entièrement open source, vérifiable par n'importe qui sous licence Apache 2.0
Une seule exception. L'APK publié sur GitHub Releases déclare deux permissions : INTERNET pour une vérification de mise à jour désactivée par défaut, à activer explicitement, et REQUEST_INSTALL_PACKAGES pour pouvoir installer la mise à jour choisie, une fois son SHA-256 vérifié. Les versions F-Droid et Google Play ne contiennent ni l'une de ces permissions ni le code correspondant — non pas désactivés, mais absents. Aucune version, pour aucune de ces requêtes, n'envoie de notes, d'étiquettes, de pièces jointes, de métadonnées, d'identifiants ni de données d'usage. Cette limite est consignée dans docs/AGENT_SPEC.md §15.9.
Le fonctionnement exact de « never leaves your device » est documenté dans la Politique de confidentialité et la No-Cloud Certification.
🗺 Feuille de route
v1.x — MVP
- Édition et sauvegarde Markdown de base
- Filtrage et recherche par étiquettes
- Nouvelle icône d'application et nouveau branding
- Aperçu Markdown en direct et mode sombre
- Recherche SQLite FTS haute performance
- Optimisation de la disposition à 2 panneaux pour tablette
- Export Markdown d'une note ou de toutes les notes
- Version stable v1.0.0
v2.x — Extension classe Bear (actuelle)
- v2.3 Analyseur CommonMark — encadrés, barré GFM, listes de tâches, notes de bas de page, YAML frontmatter
- v2.4–2.5 Wikiliens (
[[Titre]]) + auto-complétion + panneau des liens entrants - v2.6 Pièces jointes image + texte alternatif + lightbox
- v2.7 Synchronisation en miroir de dossier SAF (délégation à Drive/Dropbox/Syncthing, toujours sans INTERNET)
- v2.8 Bascule Material You + thème vert Markleaf restauré
- v2.9 Option de blocage des captures d'écran, tests de régression visuelle (Roborazzi) mis en place
- v2.10 Coloration syntaxique des blocs de code (10 langages)
- v2.11 Aperçu des tableaux GFM ressuscité
- v2.12 Accès rapide (Ctrl+K)
- v2.13 Recherche / remplacement dans une note
- v2.14 Saut par clic référence ↔ définition pour les notes de bas de page
- v2.15 Stabilisation de la soumission F-Droid et documentation no-cloud
- v2.16 Widget d'écran d'accueil, verrouillage biométrique, transparence open source, mise en forme Markdown intelligente
- v2.17 Import par ouverture/partage de fichiers externes
.md/.txt, corrections des notes dupliquées et de la reconnaissance des étiquettes lors de la synchronisation de dossier - v2.18 Fichiers de synchronisation de dossier nommés selon le titre de la note (le renommage suit) + choix
.md/.txt - v2.19 Six notes d'exemple au premier lancement + l'export PDF/Markdown ne duplique plus le titre
- v2.20 Raccourcis clavier, auto-complétion
#étiquette, table des matières, police serif, disposition tablette à 3 panneaux (barre d'étiquettes + filtrage sur place) - v2.21 Retour prédictif, transitions affinées, animation des listes/cartes, barre d'étiquettes rétractable pour tablette pliable, bascule des cases des listes de tâches
- v2.22 Commandes d'insertion rapide
/avec sélection tactile et au clavier physique, et six menus localisés - Lancement public sur Google Play — n'importe qui peut l'installer depuis le Play Store
🌐 Aider à traduire
La plupart des traductions de Markleaf n'ont jamais été relues par un locuteur natif. Si un texte dans votre langue est faux, maladroit ou tronqué, vous pouvez le signaler sans toucher au code.
Vous préférez modifier les fichiers vous-même ? CONTRIBUTING.md (en anglais) indique lesquels et ce que vérifie la compilation.
📜 Licence
Ce projet est distribué sous licence Apache License 2.0. Consultez le fichier LICENSE pour plus de détails.
Made with ❤️ by Markleaf Team
Explorer des projets similaires
n8n-io/n8n
Plateforme Fair-code d’automatisation des flux de travail, avec des capacités d’IA natives. Elle associe la conception visuelle au code personnalisé, peut être hébergée sur vos propres serveurs ou utilisée dans le cloud, et propose plus de 400 intégrations.
209,943 étoileslanggenius/dify
Créer des workflows agentiques et des pipelines RAG, avec une prise en charge riche des modèles et outils d’IA, dans un seul espace de travail collaboratif. Déployer dans le cloud, sur un VPC ou en auto-hébergement, afin que les équipes passent du prototype à la production sans reconstruire la pile.
160,773 étoilesmicrosoft/PowerToys
Microsoft PowerToys est un ensemble d’utilitaires qui améliorent la productivité et la personnalisation sous Windows
140,755 étoilesstablyai/orca
Orca est l'endroit pour travailler avec une flotte d'agents (p. ex. Grok Bot, Claude Code). Exécutez n'importe quel agent de programmation avec votre propre abonnement. Disponible sur ordinateur, sur mobile et en environnement d'exécution distant.
120,503 étoiles