{"id":13451780,"url":"https://github.com/gsantner/markor","last_synced_at":"2025-05-13T18:11:53.287Z","repository":{"id":38751875,"uuid":"101451042","full_name":"gsantner/markor","owner":"gsantner","description":"Text editor - Notes \u0026 ToDo (for Android) - Markdown, todo.txt, plaintext, math, ..","archived":false,"fork":false,"pushed_at":"2025-05-03T17:27:38.000Z","size":37964,"stargazers_count":4264,"open_issues_count":103,"forks_count":390,"subscribers_count":69,"default_branch":"master","last_synced_at":"2025-05-03T17:33:18.052Z","etag":null,"topics":["android-app","asciidoc","class","clipboard","editor","education","hacktoberfest","markdown","markdown-editor","org-mode","orgmode","plaintext","school","syncthing","task-list","todo","todolist","todotxt","university","zim-wiki"],"latest_commit_sha":null,"homepage":"https://github.com/gsantner/markor/discussions/2269","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gsantner.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-08-26T00:08:35.000Z","updated_at":"2025-05-03T12:58:30.000Z","dependencies_parsed_at":"2024-01-12T00:31:57.060Z","dependency_job_id":"8c1f5071-44c4-42b2-9043-591d3959e024","html_url":"https://github.com/gsantner/markor","commit_stats":null,"previous_names":[],"tags_count":117,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gsantner%2Fmarkor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gsantner%2Fmarkor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gsantner%2Fmarkor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gsantner%2Fmarkor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gsantner","download_url":"https://codeload.github.com/gsantner/markor/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254000856,"owners_count":21997442,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android-app","asciidoc","class","clipboard","editor","education","hacktoberfest","markdown","markdown-editor","org-mode","orgmode","plaintext","school","syncthing","task-list","todo","todolist","todotxt","university","zim-wiki"],"created_at":"2024-07-31T07:01:02.239Z","updated_at":"2025-05-13T18:11:53.245Z","avatar_url":"https://github.com/gsantner.png","language":"Java","readme":"[![GitHub releases](https://img.shields.io/github/tag/gsantner/markor.svg)](https://github.com/gsantner/markor/releases)\n[![GitHub downloads](https://img.shields.io/github/downloads/gsantner/markor/total.svg?logo=github\u0026logoColor=lime)](https://github.com/gsantner/markor/releases)\n[![Translate on Crowdin](https://img.shields.io/badge/translate-crowdin-green.svg)](https://crowdin.com/project/markor)\n[![Community Discussion](https://img.shields.io/badge/chat-community-blue.svg)](https://github.com/gsantner/markor/discussions)\n[![GitHub CI](https://github.com/gsantner/markor/workflows/CI/badge.svg)](https://github.com/gsantner/markor/actions)\n\n\n# Markor\n\u003cimg src=\"/app/src/main/ic_launcher-web.png\" align=\"left\" width=\"128\" hspace=\"10\" vspace=\"10\"\u003e\n\u003cb\u003eText editor - Notes \u0026amp; ToDo (for Android)\u003c/b\u003e.\n\u003cbr/\u003eSimple and lightweight, supporting Markdown, todo.txt, Zim \u0026 more!\u003cbr/\u003e\u003cbr/\u003e\n\n**Download:**  [F-Droid](https://f-droid.org/repository/browse/?fdid=net.gsantner.markor), [GitHub](https://github.com/gsantner/markor/releases/latest)\n\nMarkor is a TextEditor for Android.\nThis project aims to make an editor that is versatile, flexible, and lightweight.\nMarkor utilizes simple markup formats like Markdown and todo.txt for note-taking and list management.\nIt is versatile at working with text; it can also be used for keeping bookmarks, copying to clipboard, fast opening a link from text and lots more.\nCreated files are interoperable with any other plaintext software on any platform.\nMarkor is openly developed free software that accepts community contributions.\n\n![Screenshots](https://raw.githubusercontent.com/gsantner/markor/master/metadata/en-US/phoneScreenshots/99-123.jpg)  \n![Screenshots](https://raw.githubusercontent.com/gsantner/markor/master/metadata/en-US/phoneScreenshots/99-456.jpg)  \n\n## Features\n📝 Create notes and manage your to-do list using simple markup formats\n\u003cbr/\u003e🌲 Work completely offline -- whenever, wherever\n\u003cbr/\u003e👌 Compatible with any other plaintext software on any platform -- edit with notepad or vim, filter with grep, convert to PDF or create a zip archive\n\u003cbr/\u003e\n\u003cbr/\u003e🖍 Syntax Highlighting and format related actions -- quickly insert pictures and to-dos\n\u003cbr/\u003e👀 Convert, preview, and share documents as HTML and PDF\n\u003cbr/\u003e\n\u003cbr/\u003e📚 Notebook: Store all documents on a common filesystem folder\n\u003cbr/\u003e📓 QuickNote: Fast accessible for keeping notes\n\u003cbr/\u003e☑️ To-Do: Write down your to-do\n\u003cbr/\u003e🖍 Formats: Markdown, todo.txt, Zim/WikiText, Plaintext, [csv](doc/2023-06-02-csv-readme.md), ics, ini, json, toml, vcf, yaml\n\u003cbr/\u003e📋 Copy to clipboard: Copy any text, including text shared into Markor\n\u003cbr/\u003e💡 Notebook is the root folder of documents and can be changed to any location on the filesystem. QuickNote and To-Do are textfiles\n\u003cbr/\u003e\n\u003cbr/\u003e🎨 Highly customizable, dark theme available\n\u003cbr/\u003e💾 Auto-Save with options for undo/redo\n\u003cbr/\u003e👌 No ads or unnecessary permissions\n\u003cbr/\u003e🌎 Language selection -- use other language than on the system\n\u003cbr/\u003e\n\u003cbr/\u003e🔃 Markor is an offline app. It works with sync apps, but they have to do syncing respectively.\n\u003cbr/\u003e🔒 Can encrypt your textfiles with AES256. You need to set a password at the settings and use Android device with version Marshmallow or newer. You can use [jpencconverter](https://gitlab.com/opensource21/jpencconverter) to encrypt/decrypt on desktop. Be aware that only the text is encrypted not pictures or attachments.\n\n## New features in the latest update - Markor v2.11 - AsciiDoc, CSV and Org-Mode, Todo.txt advanced search, Line numbers\n\n### Line number support\n\nMarkor supports showing line numbers now. In the top file menu you can find a new option to enable numbers.\nIt is supported in editor as well in view mode of documents (in code blocks).\n\n![Line numbers](doc/assets/2023-10-11-line-numbers.webp)\n\n### New format: AsciiDoc\nAsciiDoc is one of the new formats that are now supported.\nWhile it might be not as much fleshed out like Markdown, it should fit for general use.\n\n![AsciiDoc](doc/assets/2023-10-11-asciidoc.webp)\n\n### New format: CSV\n[CSV file](https://en.wikipedia.org/wiki/Comma-separated_values) are supported now (in sense of syntax highlighting and preview). \nFor details see [CSV README](doc/2023-06-02-csv-readme.md), it was implemented in #1988, #1987, #1980, #1667.\n\n* Editor with SyntaxHighlighter\n* Each csv column is shown in a different unique color to see which csv-data belongs to which colum/header\n* Preview as html-Table with export as pdf\n* A csv column may contain markdown (See Example column in screenshot)\n\n![](doc/assets/csv/2023-06-25-csv-landscape.webp)\n\n### New format: Org-Mode\nThe third and last new format newly added is Org-Mode. Note that currently only editor syntax highlighting and action buttons to make editing easier are available.\nThere is no dedicated view mode implemented.\n\n![Org-Mode](doc/assets/2023-10-07-orgmode.webp)\n\n### Navigation\n* [**README**](README.md)\n  * [Features](README.md#features)\n  * [Contribute](README.md#contribute)\n  * [Develop](README.md#develop)\n  * [Privacy](README.md#privacy)\n  * [License](README.md#license)\n* [**FAQ**](README.md#FAQ)\n  * [File browser, file management](README.md#file-browser--file-management)\n  * [Format: Markdown](README.md#format-markdown)\n  * [Format: todo.txt](README.md#format-todotxt)\n* [**More**](doc)\n  * [Synced plaintext TODO and notes - Vim / Vimwiki, Markor Android, Syncthing, GTD (Pitt)](doc/2020-09-26-vimwiki-sync-plaintext-to-do-and-notes-todotxt-markdown.md)\n  * [Markor: How to synchronize files with Syncthing (wmww,tengucrow)](doc/2020-04-04-syncthing-file-sync-setup-how-to-use-with-markor.md)\n  * [Using Markor to Write (and More) on an Android Device (The Plain Text Project)](doc/2019-07-16-using-markor-to-write-on-an-android-device-plaintextproject.md)\n  * [How I Take Notes With Vim, Markdown, and Pandoc (Vaughan)](doc/2018-05-15-pandoc-vim-markdown-how-i-take-notes-vaughan.md)\n* [**NEWS**](NEWS.md)\n  * [Markor v2.11 - AsciiDoc, CSV and Org-Mode, Todo.txt advanced search](NEWS.md#markor-v211---asciidoc-csv-and-org-mode-todotxt-advanced-search-line-numbers) \n  * [Markor v2.10 - Custom file templates, Share Into automatically remove URL tracking parameters](NEWS.md#markor-v210---custom-file-templates-share-into-automatically-remove-url-tracking-parameters)\n  * [Markor v2.9 - Snippets, Templates, Graphs, Charts, Diagrams, YAML front-matter, Chemistry](NEWS.md#markor-v29---snippets-templates-graphs-charts-diagrams-yaml-front-matter-chemistry)\n  * [Markor v2.8 - Multi-selection for todo.txt dialogs](NEWS.md#markor-v28---multi-selection-for-todotxt-dialogs)\n  * [Markor v2.7 - Search in content, Backup \u0026 Restore settings](NEWS.md#markor-v27---search-in-content-backup--restore-settings)\n  * [Markor v2.6 - Zim Wiki, Newline = New Paragraph, Save Format](NEWS.md#markor-v26---zim-wiki-newline--new-paragraph-save-format)\n  * [Markor v2.5 - Zim Wiki - Search \u0026 Replace - Zettelkasten](NEWS.md#markor-v25---zim-wiki---search--replace---zettelkasten)\n  * [Markor v2.4 - All new todo.txt - Programming language syntax highlighting](NEWS.md#markor-v24---all-new-todotxt---programming-language-syntax-highlighting)\n  * [Markor v2.3 - Table of Contents, Custom Action Order](NEWS.md#markor-v23---table-of-contents-custom-action-order)\n  * [Markor v2.2 - Presentations, Voice notes, Markdown table editor](NEWS.md#markor-v22---presentations-voice-notes-markdown-table-editor)\n  * [Markor v2.1 - Key-Value highlighting (json/ini/yaml/csv), improved performance](NEWS.md#markor-v21---key-value-highlighting-jsoniniyamlcsv-improved-performance)\n  * [Markor v2.0 - Search, dotFiles, PDF export](NEWS.md#markor-v20---search-dotfiles-pdf-export)\n  * [Markor v1.8 - All new file browser, favourites and faster Markdown preview](NEWS.md#markor-v18---all-new-file-browser-favourites-and-faster-markdown-preview)\n  * [Markor v1.7 - Custom Fonts, LinkBox with Markdown](NEWS.md#markor-v17---custom-fonts-linkbox-with-markdown)\n  * [Markor v1.6 - DateTime dialog - Jekyll and KaTex improvements](NEWS.md#markor-v16---datetime-dialog---jekyll-and-katex-improvements)\n  * [Markor v1.5 - Multiple windows, Markdown tasks, theming](NEWS.md#markor-v15---multiple-windows-markdown-tasks-theming)\n  * [Markor v1.2 - Markdown with KaTex/Math - Search in current document](NEWS.md#markor-v12---markdown-with-katexmath---search-in-current-document)\n  * [Markor v1.1 - Markdown picture import from gallery and camera](NEWS.md#markor-v11---markdown-picture-import-from-gallery-and-camera)\n  * [Markor v1.0 - Widget shortcuts to LinkBox, ToDo, QuickNote](NEWS.md#markor-v10---widget-shortcuts-to-linkbox-todo-quicknote)\n  * [Markor v0.3 - Faster loading, LinkBox added, Open link in browser TextAction](NEWS.md#markor-v03---faster-loading-linkbox-added-open-link-in-browser-textaction)\n\n\n\n## Contribute\n* **Programming**  \n  The project is always open for contributions and welcomes merge requests. Take a look at our [issue tracker](https://github.com/gsantner/markor/issues) for open issues, especially \"[good first issues](https://github.com/gsantner/markor/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)\".\n* **Feature requests \u0026 discussions**  \n  Start a discussion [here](https://github.com/gsantner/markor/discussions).\n* **Bug reports**  \n  Report issues [here](https://github.com/gsantner/markor/issues). Please [search](https://github.com/gsantner/markor/issues?q=) for similar issues \u0026 [requests](https://github.com/gsantner/markor/discussions?discussions_q=) first. If it's not a bug, please head to discussions.\n* **Localization**  \n  Translate on [Crowdin](https://crowdin.com/project/markor) (free).\n\n## Develop\nClone the project using git. Then open the project in [Android Studio](https://developer.android.com/studio) (recommended), install required Android SDK dependencies where required.\nYou may also use any other plaintext editor of your preference.\n\nThere is a Makefile in the project which makes it easy to test, lint, build, install \u0026 run the application on your device. See the Makefile for reference.\nYou can find binaries (.apk), logs, test results \u0026 other outputs in the dist/ directory.  \nExample: `make all install run`.\n\nThe project code style is the [AOSP Java Code Style](https://source.android.com/source/code-style#follow-field-naming-conventions). Use the _auto reformat_ menu option of Android Studio before commiting or before you create the pull request.\n\n### Technologies / Dependencies\n* Java, Android SDK, AndroidX\n* No dependency on NDK, 1 APK = all Android supported Architectures\n* Editor: Advanced component based on Android EditText\n* Preview: Android WebView\n* Editor syntax highlighting: Custom implementation for all supported formats\n* Markdown parser: [flexmark-java](https://github.com/vsch/flexmark-java/wiki/Extensions)\n* Zim/WikiText parser: Custom implementation, transpiling to Markdown\n* todo.txt parser: Custom implementation\n* Binary support: WebView html img/audio/video with support for most common formats\n* CI/CD: GitHub Actions\n* Build system: Gradle, Makefile\n\n### Resources\n* Project repository: [Changelog](CHANGELOG.md) | [Issues](https://github.com/gsantner/markor/issues?q=is%3Aissue+is%3Aopen) | [Discussions](https://github.com/gsantner/markor/discussions) | [License](/LICENSE.txt) | [GitHub Releases](https://github.com/gsantner/markor/releases) | [Makefile](Makefile)\n* F-Droid: [Listing](https://f-droid.org/packages/net.gsantner.markor) | [Wiki](https://f-droid.org/wiki/page/net.gsantner.markor) | [Metadata](https://gitlab.com/fdroid/fdroiddata/blob/master/metadata/net.gsantner.markor.yml) | [Build log](https://f-droid.org/wiki/page/net.gsantner.markor/lastbuild)\n\n\n## Privacy\u003ca name=\"privacy\"\u003e\u003c/a\u003e\nMarkor does not use your internet connection unless your own user-generated content references external resources (for example, when you reference an external image by URL).\nThe app works completely offline, no internet connection required!\nNo personal data is shared with the author or any third parties.\nFiles can be shared to other apps from inside the app by pressing the share button.\nFiles are stored locally in a user selectable folder, defaulting to the internal storage \"Documents\" directory.\n\n#### Android Permissions\n* WRITE_EXTERNAL_STORAGE, READ_EXTERNAL_STORAGE  \n  Read from and write files to storage.\n* INTERNET  \n  In user-generated content data can be loaded from the internet.\n* INSTALL_SHORTCUT  \n  Install a shortcut to launchers to open a file/folder in Markor.\n* RECORD_AUDIO  \n  Attach voice notes to the text. The permission is only used after click on the \"attach audio\" button, at the audio record dialog. Audio recording is always started and stopped manually by you (button press).\n\n## License\nThe code of the app is licensed Apache 2.0.  \nLocalization \u0026 translation files (string\\*.xml) as well samples are licensed CC0 1.0 (public domain).  \nProject is based on the unmaintained projects writeily and writeily-pro.\n\n\n\n\n\n\n\n\n\n\n\n# FAQ\n\n## File browser \u0026 file management\n\n#### How do I save a file?\nMarkor automatically saves text when you leave Markor or close a file. Additionally there is save button in the top menu.\n\n#### How do I save files to SD Cards?\nBrowse to the start folder of your SD Card and press the + button (using file browser or the menu option). Now press the plus button and follow the steps in the dialog. Afterwards Markor's file browser won't strike out filenames anymore and files are writable.\n\n![sdcard-mount](doc/assets/2019-05-06-sdcard-mount.webp)\n\n#### How to synchronize files?\nMarkor is and will stay an offline focused application. It works with sync synchronization apps, they have to do syncing respectively.\nSync clients known to work in combination include BitTorrent Sync, Dropbox, FolderSync, OwnCloud, NextCloud, Seafile, Syncthing, Syncopoli and others.  \nThe project recommendation is Syncthing. [-\u003e Guide for Syncthing](doc/2020-04-04-syncthing-file-sync-setup-how-to-use-with-markor.md)\n\n#### What is Notebook?\nThe root folder of your files! Markor starts with this folder at the main screen and allows you to browse files. You can work at any (accessible) file \u0026 location with Markor.\n\n#### What is ToDo?\nYour main to-do list file in todo.txt format. You can access it by swiping once at the main screen, by selecting todo.txt at Notebook, or by using the dedicated launcher. You can also open it from Notebook or other apps! You will also have the option to create a to-do task when sharing text into Markor when the text is just one line. The location of this file is freely choosable and independent from the Notebook directory.\n\n#### What is QuickNote?\nThe fastest and easiest way to take notes! QuickNote is a file in Markdown format with a freely choosable file location. You can access it by swiping twice at the main screen, by selecting QuickNote at Notebook, or by using the dedicated launcher. The location of this file is freely choosable and independent from the Notebook directory.\n\n#### Launchers\nA launcher is a \"start menu option\" in your devices launcher (=appdrawer / start menu). When Markor is installed you have the start menu option for Markor. When the Markor settings option \"Launcher (Special Documents)\" is enabled, you get the additional start menu options for ToDo and QuickNote. Note that a device restart is required when you change this option.\n\n## Format: Markdown\n#### What is Markdown?\nA general purpose markup format for documents of all kinds. As Markdown gets converted to HTML prior displaying a rendered view, you can also include HTML in the text, thus you can do everything web browsers can do.\n\nCommonMark is the specification that the markdown parser used in Markor implements.\n\n| **Resources** | |\n|-----------------------------------------------------------------------|------------------------------|\n| [CommonMark tutorial](http://commonmark.org/help/tutorial/)           | Learn Markdown in 10 minutes |\n| [CommonMark help](http://commonmark.org/help/)                        | Quick reference and interactive tutorial for learning Markdown. |\n| [CommonMark Spec](http://spec.commonmark.org/)                        | CommonMark Markdown Specification |\n| [daringfireball](https://daringfireball.net/projects/markdown/syntax) | Syntax documentation the Markdown creator |\n\n\n#### Links to files that contains spaces\nMost Markdown applications use URL encoding for links, so does Markor. This means replace every space` ` with `%20`. This ensures that your Markdown content is compatible with most other Markdown applications.\u003cbr/\u003e\u003cbr/\u003e\n\nMarkor has a dedicated button for adding links and file references, which automatically applies this appropiate format.  Take a look at this [video](https://user-images.githubusercontent.com/6735650/63089879-e6aa9400-bf48-11e9-87c1-78a1ba1c444f.gif) to find out where the file reference button is located and how to use it.\u003cbr/\u003e\u003cbr/\u003e\n\nExample: `[alt](my cool file.md)` ⮕ `[alt](my%20cool%20file.md)`.\n\n#### Can I use Markor in class to write down equations? (Math)\nYes, Markor has advanced functionalities for math! Enable the feature by checking Settings»Format»Markdown»Math.\u003cbr/\u003e\u003cbr/\u003e\n\nMarkor's [markdown-reference.md](samples/markor-markdown-reference.md) template (available from new file dialog) showcases some examples.  \nLearn more about available functions and symbols here: [1](https://katex.org/docs/supported.html), [2](https://katex.org/docs/support_table.html)\n\n\n## Format: todo.txt\n#### What is todo.txt?\nTodo.txt is a simple text format for todo. Each line of text is a task. The idea comes from [Gina Trapani](https://github.com/ginatrapani).\n\n| **Resources** | |\n|---------------------------------------------------------------------------------------|----------------------|\n| [Homepage](http://todotxt.org/)                                                       | Todo.txt's home      |\n| [Format](https://github.com/todotxt/todo.txt/blob/master/README.md)                   | Syntax documentation |\n| [User Documentation](https://github.com/todotxt/todo.txt-cli/wiki/User-Documentation) | User documentation   |\n\n\n![todotxt](doc/assets/todotxt-format-dark.png#gh-dark-mode-only)\n![todotxt](doc/assets/todotxt-format.png#gh-light-mode-only)\n\n#### How to mark a task done?\nDone tasks are marked by a `x ` in begining of the line and can optionally be moved to a done/archive file.\n\n#### What is a context (@)?\n  With contexts you can mark a situation or place. You may use it to categorize your todos. Context is part of todo.txt format, add `@` in front of a word to create one.  \n  Examples: @home @work\n\n#### What is a project (+)?\n  With projects you can group tasks by a specific project. You may use it to tag your todos with recognizable meta information. Context is part of todo.txt format, add `+` in front of a word to create one.  \n  Examples: +video +download +holidayPlanning\n\n","funding_links":[],"categories":["Java","Documentation and Presentation","Android Apps","Tools \u0026 Resources","Table of Contents","Markdown Mobile Editors","写作与编辑环境"],"sub_categories":["Android Productivity","45. Markor","Text Editor","Android","专业 Markdown 编辑器"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgsantner%2Fmarkor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgsantner%2Fmarkor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgsantner%2Fmarkor/lists"}