Dan's Musings

I Keep A Markdown Journal On Android

Summary

I keep a journal using my Android device (though I can still edit on my computer, most journaling is done on my phone). I have found a good set-up that works well, and I wanted to write a post about how I did it so that I could tell others how they could have a nice journaling set up as well.

I wanted to start doing this maybe two or three years ago. I have been able to consistently make journal entries since then, which is a testament to the usability and ease of use of how I chose to write my journal entries. There are still some kinks to work out such as image insertion, but this setup makes journal keeping fun and easy. I recommend the practice.

Requirements

When I started out journaling, I had several goals in mind:

  • Future Compatibility: The journal entries must be able to be read by anyone, now or in the future, without the need of some fancy reader.
  • Persistence and Redundance: The journal entries must last forever and be available forever.
  • Frictionlessness: The journal entries must be easy to write, or I wouldn't want to journal.

Requirement 1: Future Compatibility

Markdown is open, and requires no special reader to read, as it is just text. However, if you have a special reader, the experience is enhanced. It is just perfect for digital journalling in this way. I want my journal entries to last forever and be readable forever, and in light of my choice to journal digitally, markdown is the best candidate for the journal format. I chose markdown for my posts for this reason.

Requirement 2: Persistence and Redundance

I didn't have a perfect answer for this, but I chose to persist and back-up my journal entries in Dropbox for now.

Requirement 3: Frictionlessness

This is where things get interesting. Most of markdown is pretty easy to write, but I encountered some rough spots along the way. Inserting links to other pages and images, inserting dates and times, and creating pages with a date in the name of it were particularly important challenges to overcome.

Implementation

In order to journal on my phone, I make use of these apps:

Epsilon Notes is a fully featured markdown editor, FolderSyncPro is a folder synchronizer, Texpand is a keystroke macro application, and Google Keyboard is used for speech to text.

I got Epsilon Notes because I was dissatisfied with iaWriter as a markdown editor. I think it was because it didn't have all the features that I needed, like inline code blocks, but I don't actually remember. All I remember is that there were some markdown features that it didn't implement.

Epsilon implemented everything, but it didn't have the feature of synchronizing notes to the cloud. It recommended I get Folder Sync Pro for that, and I'm glad I did. That app is also very fully featured with lots of configuration settings available to help me dial in what I wanted to sync from where. I used Folder Sync Pro to set up a folder that was synced to the cloud for journaling.

So now I could take notes, but note taking was still very clunky. Writing out a markdown link in Android is still very difficult. The key piece to fixing this was Texpand. That app lets the user bind simple key sequences to longer expansions of text. In that app, I bound the following sequences:

the jje Texpand sequence.

Other sequences in Texpand.

In Texpand I have sequence shortcuts for making links to daily entries and inserting the time. I even have some Texpand sequence shortcuts for links to the name of a file on my clipboard so I can more easily insert images.

Discussion

These sequences let me write out the links for journal entries into an index markdown file.

With this new capability, I had a strategy now.

  1. Set up folder syncing for a journal directory to some cloud service.
  2. In that folder, create a different folder for each year.
  3. Open up a markdown file named after the year (e.g. 2024/2024.md)
  4. Type - jje and select accept for the Texpand window that pops up
  5. That will create a link to a new file for the day's journal entry
  6. Click on the link to follow it from the preview page in Epsilon. Epsilon will notice that the page is not made yet and offer to make it for the user. Click accept.
  7. We are now editing the daily entry file.
  8. Press dde to write out the time.
  9. Begin using text to speech to write out an entry as normal.

This workflow may sound complicated but it's very easy to run through once learned. It's an easy and great way to keep a journal. Texpand was key to making this process smooth.

As a bonus, because of the cloud syncing, I can also do journal entries from my laptop if the occasion arises. However due to the ease of writing using speech to text on my phone, I usually write them from my phone.

Future Work

I'm still not able to link to images very easily. In order to do it, I need to move the image to the folder first and rename it and then I can do it. This is a huge pain, so there's still work to be done here on the process.

Conclusion

Keeping a journal is a cleansing activity. I always feel better after writing in my journal. Find time to write in a journal. It is a rewarding activity, and with the guide above, can be an easy one as well.