Reconfiguring Jekyll processes for iOS

I have recently been performing something of an experiment to see if I can use an iPad Pro as my main computer rather than a MacBook Pro.

One of the processes I needed to sort out was my maintenance of this site, which is powered by the Jekyll static blogging software.

What I used to do on MacOS was this:

  1. Write articles in Ulysses.
  2. Copy articles into Sublime Text and give them the appropriate front matter. This is also where I’d write any HTML or CSS to configure the site’s design.
  3. Use MacOS Terminal to build the site via my locally-stored installation of Jekyll and check everything’s okay via http://localhost:4000.
  4. FTP Jekyll’s generated _site folder to the production server where is based. I used Panic’s Transmit app as my FTP client.

I can’t just copy this routine verbatim to iOS because there are no iOS versions of Sublime Text or Transmit, and Jekyll can’t be installed locally on iOS like it can on MacOS. Point 1 is fine because there is an iOS version of Ulysses but points 2 - 4 needed to be changed and I describe how I did that here.

The first thing I needed was a code editor on iOS to replace Sublime Text. As it happens I already had a MacOS version of Panic’s Coda. I used to use it many moons ago but for some reason (that I can’t remember) I drifted away from it, but there is a version of Coda for iOS. I didn’t have to use the same code editor on iOS as I use on MacOS of course but it soothes my OCD to do so. I played with Coda a bit on MacOS to remind myself about it, saw that it was fine and purchased the iOS version.

Handily, Coda comes with FTP facilities (a cut down version of Panic’s Transmit, really) and a terminal window for SSH (a cut down version of Panic’s Prompt), both of which I’d need. So using Coda effectively killed a small flock of birds with one stone.

I needed to sort out Jekyll next. I used to run my Jekyll builds on my local machine on MacOS and then test them by going to http://localhost:4000 but Jekyll won’t run on iOS, so I needed to change the way I work in this respect.

I looked at many internet sites to see what other people do and most of the instructions I read — a lot of them involving a Linux version of Dropbox — either don’t work at all or threw up enough error messages to make me lose the will to live. I certainly could have persevered but I thought there has to be a better way.

In the end, I installed Linux versions of Ruby and Jekyll on my CentOS server. It took a bit of messing about to get the correct version of Ruby on the system and I want to say thanks to Dan Nanni’s Xmodulo site for pointing me in the right direction regarding Ruby updates.

So my new working practice on both MacOS and iOS is as follows:

  1. Write articles in Ulysses.
  2. Copy articles into Coda and give them the appropriate front matter. This is also where I’d write any HTML or CSS to configure the site’s design.
  3. FTP the articles (via Coda) to my copy of Jekyll on my server (which is in a directory outside of the web root).
  4. SSH into my server via Coda’s terminal window and run the Jekyll build.
  5. Serve Jekyll with the bundle exec jekyll serve --host= command, which means I can just go to to test my site (where is replaced with my server’s IP address).
  6. I then use rsync to copy the contents of the _site folder generated by the Jekyll build (step 4, above) to my public_html folder for the site and thus make live the changes I’ve made.

I’ve set up various shell scripts and such to automate that process a bit, but that’s essentially what I do.

It took about a day to sort all that out.