A modern, beautifully crafted Markdown note-taking app for Android, built entirely with Jetpack Compose and Material 3 (Material You).
-
Full Markdown Support — Powered by commonmark-java. Write in pure Markdown with live preview: headings, paragraphs, code blocks, blockquotes, tables, bullet & numbered lists, bold, italic, underline, strikethrough, links, math blocks and more.
-
Material You Design — Full Material 3 theming with dynamic Monet color extraction from your wallpaper, plus 9 hand-picked custom background colors for each note.
-
Dark Mode — Adaptive dark/light themes with proper card elevation, text readability, and color palettes for every note background.
-
Notebook Organization — Group notes into notebooks for structured workflows.
-
Archive & Trash — Soft-delete with 7-day auto-cleanup. Archive notes to keep them out of sight without deleting. Restore or permanently delete anytime.
-
Batch Operations — Long-press to enter selection mode. Multi-select notes for batch pin, color, archive, or delete with smooth exit animations (scale + fade).
-
Local-First File Storage — Uses Android's Storage Access Framework (SAF). Notes are saved as
.mdfiles in a user-chosen folder. Your data, your control. -
Multi-Language — English, 简体中文, 繁體中文, Français. Switch on-the-fly in Settings.
-
Search & Sort — Instant search across all notes. Sort by custom order, creation date, or last modified.
-
Layout Toggle — Switch between staggered grid and compact list views.
-
Animated Everything — Card entrance animations, deletion transitions, smooth navigation, and a themed splash screen.
Coming soon
| Category | Technology |
|---|---|
| Language | Kotlin 2.2.10 |
| UI Framework | Jetpack Compose + Material 3 |
| Navigation | Navigation Compose |
| Architecture | MVVM with ViewModel + StateFlow |
| Markdown Parsing | commonmark-java 0.21.0 + GFM Tables extension |
| File Access | SAF (DocumentFile) |
| Build System | Gradle with Version Catalog |
app/src/main/java/com/yuzlyn/mdeditor/
├── MainActivity.kt # Entry point, splash background, navigation host
├── data/
│ ├── NoteStorage.kt # .md file read/write via SAF
│ ├── ThemeConfig.kt # Theme state management (System/Monet/Custom)
│ ├── MonetPalette.kt # 9-color palette definitions (light + dark)
│ └── profile/
│ └── AuthorProfile.kt # Author info & social links
└── ui/
├── theme/
│ └── MDEditorTheme.kt # Material 3 dynamic color theme
├── screen/
│ ├── MainScreen.kt # Home, notebooks, archive, trash, search
│ ├── EditorScreen.kt # Markdown editor + insert/format sheets
│ ├── MarkdownRenderer.kt # AST-to-Compose renderer (commonmark)
│ ├── SettingsScreen.kt # Theme, language settings
│ └── AboutScreen.kt # About page with social links
└── viewmodel/
└── FileViewModel.kt # Central state: notes, folders, selection
- Android Studio (latest stable)
- JDK 17+
- Gradle 9.x
git clone https://github.com/yuzlyn/MDEditor.git
cd MDEditor
./gradlew installDebugOpen the project in Android Studio, sync Gradle, and run on a device or emulator (API 26+).
- Grant storage permission when prompted
- Select a folder to store your Markdown notes
- Tap + to create your first note
MIT License
Copyright (c) 2025 Yuzlyn
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Built with ❤️ by Yuzlyn
