How I write this blog on an iPad

For the longest time, I have wanted to be able to write with just an iPad, with markdown, in some native text editor and not need to copy and paste text in to a WYSYWIG.

My previous attempts included: - WordPress; which was okay. Though it required typing in a handful of apps that could post to WordPress' XML-RPC endpoint, and, at the time, none of those apps had a writing experience that I liked. Unfortunately, I moved away from WordPress (for other reasons) by the time iA Writer and Ulysses came along. - Jekyll; which was probably the closest I got. This involved editing posts in a Dropbox folder that was kept in sync with my web server. Since Jekyll is a static site generator, all of the site's HTML needs to be regenerated every time a change occurs in order for that change to be made available to the public. This goes for new pages as well as changes to existing pages. So in practice, this means whenever a file is changed in Dropbox, something would need to tell Jekyll to regenerate the site. And this is where this attempt came unstuck. I wasn't able to get the regeneration process to work reliably, which meant that changes would sometimes never get picked up, requiring me to jump in to the server and manually build the site. - Ghost; this one never really took off with regard to publishing from an iPad. And it also suffered from something that was annoying me about Jekyll. It was somewhat inflexible out of the box, and to make it more flexible required putting in some work to update some of the template code. Which is fine, until the vendors of the base software publish a major update and then all of the edits required to make the site work, no longer work β€” meaning more work to get things back to normal.

Blogging ecosystem aside, there was also a lull in the capability of the software in the iPad ecosystem (both apps and iPadOS). This, however, has become less of an issue now that Obsidian exists for writing, and Shortcuts exists to patch many of the gaps in iPadOS. Which leads to where I am today.

This blog adheres to the Micropub spec, which means that most of the techniques below can be used with any blog that also follows the spec.

For text posts, everything is written in Obsidian. I then have a shortcut that accepts the post's body as markdown. This means I can share a document with the shortcut, fill in a title as well as any other metadata (like tags, location, publish time) and then send the request on its way to result in a brand new post on this site.

A screenshot of the Apple Shortcuts app showing a request to create a post

Things get a bit more involved for media posts. Right now, photos need to be uploaded to a special "media" endpoint before they can be used in a post. This endpoint accepts a file, and returns the URL of the uploaded piece of media (photo or video). So for this, I have a shortcut that accepts one or more photos (just photos for now), sends them to the media endpoint, and copies the URLs of all the uploaded photos to the clipboard. Pasting these in to Obsidian renders them, so I can see which photo is which and place them accordingly in the post.

Right now, I don't publish many videos (though I wanted to during a recent trip). So some upcoming changes to the media shortcut will allow the upload of videos (which the server supports). But I also want to be able to take a live photo with a loop effect, and upload that as a looping GIF / mp4.

A screenshot of the Apple Shortcuts app showing a request to upload images

I also have similar posts for specific post types (e.g. bookmarks, photo posts and the like).

So with a handful of shortcuts, publishing to this blog has finally become as simple as writing in a text editor that I really like, and then pressing a button or two. And since it's all done over HTTP, it's hopefully less likely to break with changes to iOS or iPadOS.


by Daniel Nitsikopoulos

in posts

Β© 2023 Daniel Nitsikopoulos. All rights reserved.

πŸ•ΈπŸ’  →