Summary:
Implement basic Markdown support for headings, underline, bullet points, and links in Leafpad. The implementation should be fully MVVM-conform, seamlessly fit into the existing system, and use no external libraries.
Requirements Checklist
[ ] MVVM Architecture: All Markdown logic must follow the MVVM pattern (separate UI, logic, and model).
[ ] No External Libraries: Only use native Android/Java code for parsing and rendering.
[ ] No Hardcoded Strings: All user-facing text must go through string resources for translation.
[ ] Preview Inspired by SimpleMarkdown: Add an optional preview mode inspired by SimpleMarkdown, but written from scratch.
[ ] Offline and Lightweight: Feature must work completely offline and keep the app lean.
[ ] Minimal Supported Markdown: Support only the following in MVP:
[ ] # Heading 1
[ ] Underline
[ ] * Bulletpoint
[ ] Link
[ ] No SQLite, No Fragments: Must integrate cleanly with Leafpad’s current architecture (Activities only, no Fragments or SQLite).
[ ] Legacy Data Compatibility: Respect existing structures (IDs and timestamps as Strings, etc.).
[ ] Concept Study:
If the feature cannot be integrated cleanly or maintain Leafpad’s lightweight philosophy, the concept may be dropped.
Background:
Leafpad has grown considerably over time and has many legacy decisions (e.g., string IDs and dates). Any new Markdown logic must respect these structures and ensure full compatibility.
Feedback welcome!
If you have suggestions, want to help with prototyping, or have experience with lightweight Markdown, please comment or create a draft PR.
Summary:
Implement basic Markdown support for headings, underline, bullet points, and links in Leafpad. The implementation should be fully MVVM-conform, seamlessly fit into the existing system, and use no external libraries.
Requirements Checklist
[ ] MVVM Architecture: All Markdown logic must follow the MVVM pattern (separate UI, logic, and model).
[ ] No External Libraries: Only use native Android/Java code for parsing and rendering.
[ ] No Hardcoded Strings: All user-facing text must go through string resources for translation.
[ ] Preview Inspired by SimpleMarkdown: Add an optional preview mode inspired by SimpleMarkdown, but written from scratch.
[ ] Offline and Lightweight: Feature must work completely offline and keep the app lean.
[ ] Minimal Supported Markdown: Support only the following in MVP:
[ ] # Heading 1
[ ] Underline
[ ] * Bulletpoint
[ ] Link
[ ] No SQLite, No Fragments: Must integrate cleanly with Leafpad’s current architecture (Activities only, no Fragments or SQLite).
[ ] Legacy Data Compatibility: Respect existing structures (IDs and timestamps as Strings, etc.).
[ ] Concept Study:
If the feature cannot be integrated cleanly or maintain Leafpad’s lightweight philosophy, the concept may be dropped.
Background:
Leafpad has grown considerably over time and has many legacy decisions (e.g., string IDs and dates). Any new Markdown logic must respect these structures and ensure full compatibility.
Feedback welcome!
If you have suggestions, want to help with prototyping, or have experience with lightweight Markdown, please comment or create a draft PR.