Skip to content
Projekte

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.

So werden diese Zahlen gemessen

A lightweight, local-first Markdown note app for Android.

Gemessener Sternzuwachs

in 24h
+1
in 7 days
+5
in 15 days
Aktualisierung verzögert
in 1 month
Aktualisierung verzögert

Nettoänderungen in überlappenden Zeiträumen, keine Tagessummen. Fehlende Messwerte bleiben leer. Sterne zeigen Interesse, nicht Qualität.

README.de.md

Original

Markleaf

Markleaf Logo

Gedanken, die sich leicht ansammeln – aufgeräumte Markdown-Notizen
Eine local-first, minimalistische Markdown-Notiz-App für Android

Platform Language UI License F-Droid Google Play GitHub stars GitHub forks

English · 한국어 · 日本語 · 简体中文 · Deutsch · Español · Français · Hrvatski · Русский · Tiếng Việt · Slovenčina

GitHub-Repository · Discussions (Feedback) · GitLab-Mirror (archiviert)

Ein / im Markleaf-Editor öffnet die Schnelleinfügen-Palette; die Auswahl Checkliste fügt reines Markdown ein, das die Vorschau rendert

/ Schnelleinfügen → reines Markdown → Live-Vorschau

Markleaf auf einem Tablet: Tag-Leiste, Notizliste und Editor teilen sich einen Bildschirm, während eine Tabelle, eine Checkliste und ein Hinweis getippt werden und die Vorschau sie rendert

Tablet mit 3 Spalten — Tag-Leiste · Notizliste · Editor auf einem Bildschirm


🍃 Was ist Markleaf?

Markleaf ist eine Android-Markdown-Notiz-App, die bewusst auf Ballast verzichtet, damit du dich auf zwei Dinge konzentrieren kannst: festhalten und ordnen. Deine Daten liegen ausschließlich auf deinem Gerät, und das standardisierte Markdown-Format garantiert volle Eigentümerschaft und Portabilität. Auch die Synchronisierung läuft nur über einen von dir gewählten Ordner – Markleaf synchronisiert und lädt selbst nie etwas hoch.

Branding-Seite ansehen · Aktuelle Version: v2.71.0 · Datenschutzerklärung · F-Droid · Google Play


✨ Hauptfunktionen

Schreiben & Vorschau

  • / Schnelleinfügen – Befehle am Zeilenanfang suchen und Überschriften, Listen, Tabellen, Callouts, Wikilinks, Bilder und mehr als Standard-Markdown einfügen
  • Live-Markdown-Vorschau – sofortiger Wechsel zwischen Bearbeitung und Vorschau, oder Live-Syntaxfärbung über die Option Show Markdown syntax
  • GFM-Tabellen / Checkboxen / Zitate / Callouts (> [!NOTE] …) – alle in der Vorschau gerendert
  • Syntax-Highlighting für Codeblöcke – Token-Färbung für 10 Sprachen: Kotlin, Java, Python, JavaScript/TypeScript, Bash, JSON, YAML, XML, SQL
  • Fußnoten ([^N]) Referenz ↔ Definition-Sprung – tippe auf die Hochzahl, um sanft zur Definition zu scrollen
  • Bildanhänge + Alt-Text-Bearbeitung – als isolierte Kopien im internen App-Speicher abgelegt (keine Medienberechtigung nötig)
  • Smarter Markdown-Formatierungs-Umschalter – Auswahl oder das Wort um den Cursor in Fett/Kursiv/Durchgestrichen/Inline-Code einschließen; bereits eingeschlossenen Text mit einem weiteren Tippen sauber wieder lösen
  • Tastenkürzel – Strg/Cmd+B, I, K, Umschalt+S für Fett, Kursiv, Link und Durchgestrichen auf einer Hardware-Tastatur
  • Inhaltsverzeichnis (TOC) – im Vorschaumodus zu Überschriften (H1–H3) springen, um lange Notizen zu navigieren
  • Schriftwahl – serifenlos, mit Serifen oder Monospace, oder eine eigene .ttf/.otf-Schriftdatei (bleibt auf dem Gerät); Codeblöcke bleiben stets in Monospace
  • Fokusmodus / Wort-, Zeichen- & Lesezeit-Statistik / Suchen & Ersetzen innerhalb einer Notiz

Ordnen & Navigieren

  • Tag-basierte Klassifizierung + Tag-Vervollständigung – schreibe einfach #tags in den Text für automatische Indizierung, keine Ordner; vorhandene Tags werden beim Tippen von # automatisch vervollständigt
  • Wikilinks ([[Title]]) + Backlinks-Panel – Autovervollständigung, und auf einen Blick sehen, was auf diese Notiz verweist
  • Quick Switcher (Ctrl+K) – Sprung per Titel-Teilstring im Obsidian-Stil
  • Volltextsuche auf SQLite-FTS-Basis – schnell, bis in den Fließtext
  • Anheften / Archivieren / Papierkorb – der Papierkorb fragt vor dem endgültigen Löschen noch einmal nach

Sync & Export (No-Cloud-Prinzip)

  • Ordner-Spiegel-Synchronisierung – spiegelt jede Notiz als .md-Datei in einen per SAF gewählten Ordner (Drive/Dropbox/Syncthing/OneDrive/NAS usw.). Markleaf synchronisiert selbst nie; die Synchronisierung wird der externen App überlassen, die diesen Ordner synchronisiert
  • .md / .txt-Dateien zum Lesen öffnen – Datei öffnen… im ⋮-Menü oder ein Tippen im Dateimanager öffnet die Datei gerendert und schreibgeschützt; eine Notiz entsteht erst mit Als Notiz speichern (ohne Überschrift wird der Dateiname zum Titel). Aus einer anderen App geteilte Dateien werden weiterhin sofort übernommen. Tags in per Sync übernommenen Notizen werden sofort erkannt
  • Export einzelner / aller Notizen als .md
  • Senden über das System-Share-Sheet

Design & Barrierefreiheit

  • Markleaf-Grün-Theme + Material-You-Umschalter – Systemfarben des Hintergrundbilds ab Android 12 optional
  • Automatischer Dunkelmodus – folgt der Systemeinstellung
  • 3-Spalten-Layout für Tablets – Tag-Seitenleiste · Notizliste · Editor; tippe einen Tag in der Seitenleiste an, um die Notizliste direkt zu filtern (Notizliste weiterhin einklappbar)
  • Oberfläche in 11 Sprachen – Koreanisch / Englisch / Spanisch / Japanisch / Französisch / Deutsch / Vereinfachtes Chinesisch / Kroatisch / Russisch / Vietnamesisch / Slowakisch
  • Option zum Blockieren von Screenshots / Vorschau in zuletzt verwendeten Apps – für vertrauliche Notizen

🔗 Arbeitet mit dem Markdown-Ordner, den du schon hast

Markleaf hat kein eigenes Vault-Format. Zeig ihm einen Ordner — auch einen, den Obsidian, Logseq oder dein Texteditor bereits öffnet — und es arbeitet mit den Dateien, die dort liegen.

  • Einfache Dateien, die dir schon gehören. Eine Notiz ist eine .md- (oder .txt-)Datei. Leg vorhandene Dateien in den Ordner, und Markleaf übernimmt sie als Notizen, sobald es das nächste Mal in den Vordergrund kommt — ohne Importschritt.
  • Dein Frontmatter bleibt erhalten. Markleaf ergänzt einen kleinen YAML-Header (markleaf_id, Zeitstempel, pinned/archived), um eine Datei geräteübergreifend einer Notiz zuzuordnen, und alles, was es nicht kennt, kommt unverändert wieder heraus — die eingerückten Blocklisten, in denen Obsidian Tags schreibt, verschachtelte Maps, Kommentare und Quoting eingeschlossen. Der Header, den es ergänzt, ist eine strikte Teilmenge von YAML, die Obsidian, GitHub und VS Code alle parsen.
  • Dieselbe Syntax, die du ohnehin schreibst. [[Wikilinks]] mit Backlink-Panel, #Tags direkt im Text, GFM-Tabellen und -Checkboxen, > [!NOTE]-Callouts und ein Ctrl+K-Quick-Switcher im Obsidian-Stil.
  • Gleicht selbstständig ab, aber vorsichtig. Änderungen von anderswo werden übernommen, sobald Markleaf wieder in den Vordergrund kommt (höchstens einmal pro Minute). Eine Änderung aus einem anderen Editor wird auch dann bemerkt, wenn dieser Markleafs Frontmatter nie anfasst — der Abgleich vergleicht den Text, nicht nur den Zeitstempel. Eine Datei gewinnt nur, wenn sie tatsächlich neuer ist; haben sich beide Seiten bewegt, landet die entfernte Fassung als eigene Notiz, statt deine Änderungen zu überschreiben, und automatisch gelöscht wird nie etwas.

[!IMPORTANT] Zwei Dinge, bevor du Markleaf auf ein echtes Vault richtest.

  • Ein Ordner, keine Unterordner. Markleaf liest die Dateien direkt in dem gewählten Ordner und steigt nicht in Unterverzeichnisse hinab. Ein in Ordner gegliedertes Vault trifft Markleaf nur auf oberster Ebene — bewusst, denn Markleaf ordnet über Tags statt über Ordner.
  • Eine Notiz zu bearbeiten benennt ihre Datei um. Die Dateinamen der Spiegelung folgen dem Notiztitel; weicht der Dateiname von der Überschrift ab, wird sie beim ersten Speichern in Markleaf umbenannt. Zeigen [[Links]] in deinem Vault auf den alten Dateinamen, brechen sie.

Wenn dein Vault tief verschachtelt oder linklastig ist, richte Markleaf auf einen separaten Ordner und nutze es als mobilen Eingang, aus dem du später zusammenführst, statt als zweiten Editor auf dem Vault selbst.


🛠 Technologie-Stack

Markleaf folgt aktuellen Android-Entwicklungsstandards mit einem modernen, wartbaren Stack.

  • UI: Jetpack Compose + Material 3 + Material You Dynamic Color
  • Architektur: einfache Schichtentrennung (core / data / domain / feature / ui) + Repository-Muster
  • Datenbank: Room – SQLite-basierte lokale Persistenz, FTS4-Virtual-Tables für Volltextsuche
  • Markdown-Parser: commonmark-java (CommonMark 0.30 + GFM-Erweiterungen: Tabellen, Durchgestrichen, Task-Lists, Fußnoten, YAML-Frontmatter; die Vorschau stellt einen einzelnen Zeilenumbruch als Zeilenumbruch statt als Leerzeichen dar)
  • Asynchron: Kotlin Coroutines & Flow
  • Storage Access Framework (SAF) – Ordner-Spiegel-Sync + Bildanhänge
  • Bildladen: Coil – F-Droid-freundlich, Apache 2.0
  • DataStore Preferences – App-Einstellungen
  • Profile Installer 1.4.0 + Macrobenchmark – Messung des Cold-Start-Baseline-Profils (326 ms auf einem TB320FC)
  • Tests: JUnit + Robolectric + Roborazzi visuelle Regressionstests (Linux-Goldens, Schwellenwert 0,005)
  • CI: GitHub Actions – build und instrumented tests sind Pflichtprüfungen, dazu launch-smoke, record-roborazzi und das signierte Release beim Tag

🏗 Architektur

Markleaf verwendet zur Trennung der Belange und für Testbarkeit folgende Schichtenstruktur.

com.markleaf.notes
├── core          # gemeinsame Kernlogik: Markdown-Verarbeitung, Anhänge, Sync
├── data          # Room-DB, Entities, Repository-Implementierungen (Data Source)
├── domain        # Modelle, Repository-Interfaces (Business-Logik)
├── feature       # UI und ViewModels je Screen (Presentation)
│   ├── editor    # Editor, Find/Replace, Wikilink-Autovervollständigung, Callouts, Tabellen
│   ├── notes     # Notizliste, Quick Switcher, Archiv
│   ├── search    # FTS-Volltextsuche
│   ├── tags      # Tag-Index
│   ├── trash     # Papierkorb / endgültiges Löschen
│   └── settings  # Theme, Sync-Ordner, Screenshot-Blockierung usw.
├── navigation    # Jetpack Compose Navigation-Konfiguration
└── ui            # Theme (Markleaf green / Material You), gemeinsame Komponenten

🚀 Erste Schritte

Installation

[!NOTE] Google-Play-Updates sind derzeit ausgesetzt. Bis eine koreanische Gewerbeanmeldungs-Anforderung für den Einzelentwickler geklärt ist, werden keine neuen Versionen in den Play Store geladen. Die aktuelle Version bekommst du über GitHub Releases. Sobald der F-Droid-Build nachgezogen hat, ist F-Droid der empfohlene Update-Weg. (Wenn du sie bereits aus dem Play Store installiert hast, funktioniert sie weiterhin.)

  • F-Droid (für automatische Updates empfohlen): Markleaf on F-Droid – im F-Droid-Client suchen oder über den Link oben installieren. Der Katalog kann später als GitHub veröffentlichen; falls die aktuelle Version noch nicht angezeigt wird, nutze unten GitHub Releases. Es wird derselbe Signaturschlüssel (SHA-256 0be97352…f91a) verwendet, sodass Updates auch nach einem ersten Sideload eines GitHub-APKs nahtlos weiterlaufen.
  • Direkte APK-Installation: Der GitHub-v2.71.0-Release enthält zwei APKs — markleaf-v2.71.0.apk entspricht dem F-Droid/Play-Build (kein Auto-Update, keine zusätzliche Berechtigung), und markleaf-v2.71.0-sideload.apk fügt eine optionale In-App-Update-Prüfung hinzu (INTERNET, REQUEST_INSTALL_PACKAGES). Wähle für In-App-Updates die Sideload-Variante, lade sie herunter und führe sie auf deinem Android-Gerät aus — beide verwenden denselben Signierschlüssel, ein späterer Wechsel zählt also als normales Update, nicht als Neuinstallation.
  • Google Play: Markleaf on Google Play – Updates sind ausgesetzt (siehe Hinweis oben). Wenn du die App bereits hast, funktioniert sie weiter; die aktuelle Version gibt es über GitHub Releases oder nach Veröffentlichung über F-Droid.

Aus dem Quellcode bauen

Wenn du selbst bauen oder beitragen möchtest, folge diesen Schritten.

# Repository klonen
git clone https://github.com/jeiel85/markleaf-android.git

# In den Projektordner wechseln
cd markleaf-android

# Bauen und installieren
./gradlew installDebug

Markleafs Fehlerbehebungen beginnen meist als Bericht von jemand anderem. Die Menschen dahinter sind in THANKS.md aufgeführt.


🔒 No-Cloud by design

Markleaf hat kein eigenes Backend, und deine Notizen verlassen das Gerät nie von selbst. Ob deine Daten das Gerät verlassen, ist ganz allein deine Entscheidung.

  • ✅ Keine Deklaration von android.permission.INTERNET in den Store-Builds (F-Droid, Google Play) – sie stellen überhaupt keine Netzwerkanfragen
  • ✅ Kein eigener Markleaf-Server / -Backend
  • ✅ Keine Analyse / Werbung / Tracking / Closed-Source-SDKs
  • ✅ android:allowBackup="false" – Markleaf-Daten sind von Androids Auto-Backup / Geräteübertragung ausgeschlossen
  • ✅ Daten bewegen sich nur über OS-Pfade, wenn du exportierst, teilst, einen externen Link öffnest oder einen SAF-Ordner auswählst
  • ✅ Vollständig Open Source, von jedem unter Apache 2.0 prüfbar

Eine einzige Ausnahme. Das APK auf GitHub Releases deklariert zwei Berechtigungen – INTERNET für eine standardmäßig ausgeschaltete, ausdrücklich zu aktivierende Update-Prüfung, und REQUEST_INSTALL_PACKAGES, damit es das gewählte Update installieren kann, nachdem dessen SHA-256 geprüft wurde. Die Builds für F-Droid und Google Play enthalten weder eine dieser Berechtigungen noch den zugehörigen Code – nicht deaktiviert, sondern gar nicht vorhanden. In keinem Build und bei keiner dieser Anfragen werden Notizen, Tags, Anhänge, Metadaten, Kennungen oder Nutzungsdaten gesendet. Die Grenze ist in docs/AGENT_SPEC.md §15.9 festgehalten.

Wie „never leaves your device“ genau funktioniert, ist in der Datenschutzerklärung und der No-Cloud Certification dokumentiert.


🗺 Roadmap

v1.x — MVP

  • Grundlegende Markdown-Bearbeitung und Speicherung
  • Tag-basierte Filterung und Suche
  • Neues App-Icon und Branding
  • Live-Markdown-Vorschau und Dunkelmodus
  • Performante SQLite-FTS-Suche
  • Optimiertes Tablet-2-Spalten-Layout
  • Markdown-Export einzelner / aller Notizen
  • Stabiles Release v1.0.0

v2.x — Bear-Klasse-Erweiterung (aktuell)

  • v2.3 CommonMark-Parser – Callouts, GFM-Durchgestrichen, Task-Lists, Fußnoten, YAML-Frontmatter
  • v2.4–2.5 Wikilinks ([[Title]]) + Autovervollständigung + Backlinks-Panel
  • v2.6 Bildanhänge + Alt-Text + Lightbox
  • v2.7 SAF-Ordner-Spiegel-Sync (Delegation an Drive/Dropbox/Syncthing, weiterhin no INTERNET)
  • v2.8 Material-You-Umschalter + Markleaf-Grün-Theme wiederhergestellt
  • v2.9 Screenshot-Blockierung, visuelle Regressionstests (Roborazzi) etabliert
  • v2.10 Syntax-Highlighting für Codeblöcke (10 Sprachen)
  • v2.11 GFM-Tabellenvorschau wiederbelebt
  • v2.12 Quick Switcher (Ctrl+K)
  • v2.13 Suchen / Ersetzen innerhalb einer Notiz
  • v2.14 Fußnoten Referenz ↔ Definition Klick-Sprung
  • v2.15 Stabilisierung der F-Droid-Einreichung und No-Cloud-Dokumentation
  • v2.16 Homescreen-Widget, biometrische Sperre, Open-Source-Transparenz, smarte Markdown-Formatierung
  • v2.17 Öffnen-/Teilen-Import externer .md/.txt-Dateien, Korrekturen bei Duplikat-Notizen und Tag-Erkennung der Ordnersynchronisierung
  • v2.18 Ordner-Sync-Dateien nach Notiztitel benannt (Umbenennen folgt) + .md/.txt-Auswahl
  • v2.19 Sechs Beispielnotizen beim ersten Start + Titel-Dopplung beim PDF-/Markdown-Export behoben
  • v2.20 Tastenkürzel, #tag-Vervollständigung, Inhaltsverzeichnis, Serifenschrift, 3-Spalten-Layout für Tablets (Tag-Seitenleiste + direktes Filtern)
  • v2.21 Predictive Back, verfeinerte Übergänge, Listen-/Kartenbewegung, einklappbare Tablet-Tagleiste, Checklisten-Umschaltung
  • v2.22 /-Schnelleinfügebefehle mit Touch, externer Tastatur und sechs lokalisierten Menüs
  • Öffentlicher Google-Play-Start – jeder kann es aus dem Play Store installieren

🌐 Beim Übersetzen helfen

Die meisten Übersetzungen von Markleaf hat noch nie ein Muttersprachler gelesen. Wenn dir in deiner Sprache etwas falsch, holprig oder abgeschnitten vorkommt, kannst du es melden, ohne Code anzufassen.

Du willst die Dateien selbst bearbeiten? CONTRIBUTING.md (Englisch) erklärt, welche es sind und was der Build prüft.


📜 Lizenz

Dieses Projekt ist unter der Apache License 2.0 lizenziert. Einzelheiten findest du in der Datei LICENSE.


Made with ❤️ by Markleaf Team

Ähnliche Projekte entdecken