What I want
An android app that allows me to edit text files for taking notes. These are files that will by synced between devices (phone, tablet, computers) for viewing and editing.
Ideally, I’d like the application to support org-mode (https://orgmode.org/) format, since I tend to keep all of my notes using Emacs (and the fact that there are several markdown flavors makes my life harder — related reading: https://karl-voit.at/2017/09/23/orgmode-as-markup-only/). Anyway, if using org-mode syntax directly is not possible, then markdown (as it is possible to move between markdown and org-mode formats). [Yes, sure, I can edit org-mode syntax with any editor, but I’d like help from the app, such as automatically indenting things the correct way, etc. Editing in a tablet/phone without external keyboard is enough of a pain.].
- Store files wherever I want in the phone/tablet; this way, I can sync with the computer (using syncthing, https://syncthing.net/, in my case)
- Allow arbitrarily nested lists
- Quick editing, in particular:
- When editing a list, a newline keeps you in that level but you can
quickly increase the indent. This means:
- A newline inserts, by default, the list symbol you are using: suppose your list is using “-”; a newline will insert a newline and a “-” at the appropriate level.
- After insertion of the “-” (or the “+” or whatever) you can quickly (a menu item, adding spaces, whatever) increase or decrease the nesting level.
- The above matters because you do not want to waste time and mental effort keeping track of how many spaces you have typed to get to the desired indentation level. (Even more important if you are not using monospace fonts).
- When editing a list, a newline keeps you in that level but you can quickly increase the indent. This means:
- Allow unnumbered lists, numbered lists, check-box lists.
Nice to have
- Open source.
- Code/section folding/unfolding
Things I tried and miscellaneous links
I could not find anything that met the requirements. So I’ll have to compromise. But let’s split choices into apps I might consider and those that definitely do not fit the bill.
(Listed in approximately decreasing order of how likely I am to use them)
- Epsilon notes (http://epsilonexpert.com/e/index.php)
- It seems like you can create lists that are arbitrarily nested but …
- … but after the 2nd level of nesting, typing newline will not insert that appropriate list symbol (i.e., if you had created your list using “-”, it will not insert the “-”)
- Numbered lists require you to enter the first two with number (i.e., just one will not do).
- This is the one I am most likely to keep using as it is by a large margin the one closest to what I want.
- Does not indent automatically when entering a newline and does not
add a “-” (or whatever you use for lists) when entering a
newline. So somewhat similar problems as Simple Markdown. But:
- Entering a newline and then typing (or selecting from the menu) the item character (“-”) will indent it to the parent level. This does not work with numbered lists, though.
- You can move items (promote/demote) with the “->” and “<-” in the menu (look for the “</>“).
- It might be me, but I find the behavior of numbered lists fragile
- Does not indent automatically when entering a newline and does not add a “-” (or whatever you use for lists) when entering a newline. So somewhat similar problems as Simple Markdown. But:
- Simple Markdown
- Nice, simple, open source with public repo (https://github.com/wbrawner/SimpleMarkdown)
- But fails criteria of:
- Indenting automatically when entering newline
- Adding a “-” or whatever automatically when entering newline
- (At least part of) this seems to be in the roadmap (https://github.com/wbrawner/SimpleMarkdown#roadmap)
- Otherwise, if you do that manually, seems capable of arbitrarily
- Markor (https://github.com/gsantner/markor):
- Open source!
- Really nice app.
- Interesting there are requests to support org-mode syntax (https://github.com/gsantner/markor/issues/182).
- But lists with more than two levels of nesting are not just a matter
of adding spaces (that will result in a text block:
- iA Writer
- I find it amusing to read in the documentation “You can also nest lists several levels deep”: several? how many is several? :-) Anyway, four or five seem to work.
- Promotion and demotion require manually entering the number of spaces. So you have to remove the list character (say “-”), then add spaces.
- Opening/saving files is not to my liking: when selecting “open from”, you are actually said to “save”, which tells you content will be overwritten. And I find no way to rename the file from the app (or, in other words, save the file with another name).
- Too little stuff is actually displayed at once, even if you choose the small font size.
- Orgzly (https://play.google.com/store/apps/details?id=com.orgzly):
- Editing a file quickly is impossible (for me at least): try creating
an item, then adding a bunch of subitems. You have to go through the
“+”, then type, then move around things,
etc, etc. This is not just “quickly edit”.
- Editing a file quickly is impossible (for me at least): try creating an item, then adding a bunch of subitems. You have to go through the “+”, then type, then move around things, etc, etc. This is not just “quickly edit”.
- JotterPad (https://play.google.com/store/apps/details?id=com.jotterpad.x)
- Similar issues as Simple Markdown; it offers a menu entry to increase indentation, none to decrease indentation. And you need to position the cursor at the beginning of the line for it to affect that line.
- I do not see a simple way to open/save to a user-specified directory (the options to export as docx or rtf are of no use to me).
- Sure, JotterPad’s target use might not be what I want (markdown
- MarkNote (https://play.google.com/store/apps/details?id=me.shouheng.notepal)
- Open source with public repository (https://github.com/Shouheng88/MarkNote): great!
- No automatic addition of the item symbol on newline, but a simple promote/demote menu entry that works fine (though it does not move child items).
- But the “notebooks” are not stored directly as text, but rather exported. So no way to have this simply work on a directory of files I sync with the computer.
- It is fine for what it does, but has the same issues as Simple
Markdown and there is no help for formatting, so you end up having
to count spaces and enter the “-” after a newline.
- It is fine for what it does, but has the same issues as Simple Markdown and there is no help for formatting, so you end up having to count spaces and enter the “-” after a newline.
- BananaText (https://play.google.com/store/apps/details?id=com.fruitysmartsoft.BananaTextLite)
- Same issues as Markdown above.
- Same issues as Markdown above.
- Markdown Writer
- Same issues as Simple Markdown
- I do not find how to save files in user-specified directory. This
issue is actually mentioned in a comment in google play
- You select the text and it offers contextual help. I find that slightly annoying (type, mark, select dance, instead of “type with the appropriate syntax”). But, moreover, nested lists do not seem available.
- Writer Plus
- Changing indentation requires to fuzz around with spaces and the “-”.
- It must be me, but sometimes I enter a “-” and we get going with a list, and sometimes we don’t, and I do not understand why. And creation of nested lists is not something I can achieve consistently.
- And the directory of the application is set by the application (we can
work around that, but is an additional hurdle).
- Google Keep
- Editing is clunky:
- only one level of nesting
- actually entering the nesting requires lots of fumbling around
- being consistent in the syntax (two spaces, four spaces, whatever) requires you to be consistent, no help from the app.
- Impossible to use version control (where are the notes stored, to begin with?)
- Related to the above, even if you just want a backup, keeping a backup
is incredibly hard (you have to go through another service which
actually takes forever to produce the zip file).
- Nope, saving as google docs is not an alternative: I want plain text
- And of course, why should my notes go through google servers? I want
to retain control over how they are synced.
- Editing is clunky:
- grokNotes (https://gitlab.com/Scott.Tomaszewski/grokNotes):
- looks promising, but in alpha and no commits in the last 8 months.
- If you search for Markdown in google play there are several other options. Some have not been updated for a long time (over two years), some require login into a service (what for?), some are expensive (more than 9 euros) without giving a choice of trying them.
NEW (July 2020)
- I haven’t had a chance to try it “for real”, but GitJournal (https://gitjournal.io) is a recent new addition. It can support quick editing, arbitrarily nested lists, and in the future might support Org-mode (https://github.com/GitJournal/GitJournal/issues/145). For now, it stores notes in directory private to the app, so it is not possible to sync with syncthing, but this is on the todo list (https://github.com/GitJournal/GitJournal/issues/154). And it is open source! (https://github.com/GitJournal/GitJournal).
- Install emacs on Android via termux
- org-mode <-> markdown conversion:
- Markdown to org-mode:
pandoc -f markdown -t org -o file.org file.md
- org-mode to markdown: the usual export from org-mode.
- Markdown to org-mode: