Zim Journalling

Zim and Journalling

I’ve been using Day One for probably close to five years. In that time, I’ve built up quite a database of journal entries.

However, with the release of version 2 of Day One, they have moved to running their own sync service - which I can understand and I can see the benefits of, as it allows them to add in additional features to the software that using iCloud or Dropbox sync wouldn’t let them.

But having had a couple of outages in the sync service over the last few weeks, it’s something thats made me think again before I continue using it.

By chance, I discovered Zim and decided that it could potentially suit replacing Day One.


Zim is a desktop wiki software. You enter data into Zim under different pages and you can link them all together using links, like Wikipedia.

It allows files to be attached to each wiki page and allows easy creation of a personal wiki. Pages can be prevented from editing if you just want to browse and the whole wiki can be exported as a website (the Zim website itself has been written in Zim). Think of it as Evernote but you control all the data as without a sync solution, all data remains on your computer.

Zim has a journal add in installed by default. This add in allows you to add journal pages to a wiki (where you might want to record experiments or whatever on a particular day). This happens to make it a perfect journaling software, as it allows me as the user to create a workbook that is purely journal entries if I so wanted - arranging the pages into a date and time format. It supports a number of journalling options - you can have a page for each day (which is how I have it set up) or you could have it setup as a single page for each week, adding each day on to the bottom of the file. It’s a bit more flexible than Day One in that regard.

Replacing Day One

In its basic form, Zim is perfectly capable of replacing the desktop version of Day One out of the box (and it’ll run on Windows, Mac and Linux 1). Entries are stored as plain text files and images can be either be attached (and stored in a relative path) or can be stored anywhere else on your computer and linked to.

Zim allows for images to be attached and displayed within the entry list and unlike Day One, you can have as many pictures attached as you want 2. In fact, you aren’t just limited to pictures as you can also attach anything else that you might want with a specific date. The only difference I’ve found to Day One is that you have to take care to ensure that the file is attached, rather than linked. It’s a small difference but if you link a file, it links to the original file on your hard drive, whereas attaching it will allow it to be stored in the Zim folders and linked as a relative link. Attaching a file is my preferred option, as it allows me to work on different operating systems and not worry about moving the original file.

Rather than use the Markdown language I’m used to using, Zim uses DokuWiki style markup. This is a bit different from using Markdown, specifically with regarding to the headings. However, using the desktop app, I’ve found that I’ve not had to write in markup language at all, as the default shortcuts let me edit the files without knowing the language and this seems to work well. This means I only have to know the syntax when working on a mobile device (see later) and then I have to manually add the syntax, as I haven’t found a text editor that works with DokuWiki markup.

I’ve managed to get Zim working on my Mac by using PyGTK and running it direct from the source code. That seems to work well enough for it to run, though there can be some issues when changing the window size (I’ve found it easiest to increase the window size from the top right corner, rather than the lower right which seems the more natural way of changing a windows size).

Using Zim keeps the data within text files and means that I retain control of the information. It also means that I can sync my journal using whatever system I want to, be that Dropbox or BitTorrent Sync or even accessing via SSH file system - I retain full control and I’m not relying on the Day One sync service which hasn’t seemed to be the best since I started using it.

Mobile Editing

New Entries

As all the data is stored in text files, it means that the files are small and fast to sync, but importantly, can be edited in the iPad or iPhone using a text editor. It means that I can use both my mobile devices to write diary entries as I could on the computer. In fact, this is fairly easy to set up - just point Editorial at the journal folder in Dropbox and you can type away 3.

However, when Zim creates each text file for a page in the wiki, it adds metadata to the start of the file. For a journal entry, this means the date and the file creation time. Editorial by default does not add this information and it would be a pain for me to write this in at the start of every journal entry. Editorial comes to the rescue however, as it allows the creation of template text files.

Text file template creation in Editorial, allowing variables to be used

By allowing date (and time) variables to be inserted into the text file, I can create the Zim metadata header automatically when creating the file, even having the file named correctly for Zim when I’m back at a computer.

An issue with this method is when the date changes between months. Zim in my setup, creates a folder for the Year > Month and then places the text files within that (one per day).

Folder Layout of Zim Journal

My current template does not take into account the month and therefore will create a text file in the folder with todays date. It means that at the start of a new month, I manually have to create a folder for the month and then create my text file. I’ll look into changing this in the future but at the minute, it works ok.

Image Attachments

Attaching images is properly the biggest thing I need to do to a journal article. I’d attached quite a few images to my Day One journals, so I needed a way of doing the same to Zim. I managed this by using a mixture of Editorial and Workflow.

Editorial has a powerful automation tool built in, but it’s not the most straight forward tool to use. I’d class myself as techie, but I’m not a Python coder.

That’s where Workflow comes in - it lets me create a workflow visually. This lets me upload an image to Dropbox and link it back into the Zim post in Editorial.

Attaches an image to the current Editorial post

You can find the Workflow here.

The downside to this is that I have to be online to upload the image and that the workflow requires that I’m adding the file on the day of month that I want the image to appear on. Zim will automatically create a folder for attachments in the same name of the file you’re editing (so if you’re editing the Home page and add an attachment, it’ll add a folder called Home and then link the file as a relative link to that). This does mean that if I’m offline, I’ll have to wait to add the image and I’m likely to find it easier to then use the desktop version of the app to add images.


So not using Day One means that I use some of the functions that they’ve recently built in, such as IFTTT integration, but these can be overcome to a degree by using IFTTT Dropbox integration, allowing me to create text files within Dropbox using IFTTT and I can use Hazel to automate the process a bit more if needed.

However, in general, I’m currently happy with the journalling process and not using Day One. It’s not as pretty, but I’ve got a solid syncing process, rather than the occasional flakey option of the Day One sync. It’s not as pretty and not as well put together, but I find it still lets me journal and that’s the main thing, regardless of what platform I’m on. The Windows editing and the ability to back up my own posts is something that I’m keen to keep.

  1. Compared to a the Day One app which only works on the Mac - considering I use all three operating systems, Zim lets me enter data regardless of which operating system I’m using at the time. [return]

  2. Day One Version 1 (or Classic as it is now known) only allows for a single image per entry, Day One 2 allows for up to 10 pictures per entry. [return]

  3. Whilst you can only use a single folder for Editorial, my text editing needs for everything else on the iPad has switched to Ulysses. Ulysses is about to add Dropbox file syncing support for the iPad version, so I’ll switch it to that when it’s released. [return]