Static Site Generator mit iPad Pro pflegen

Wie im letzten Post von mir erklärt, bin ich nun Besitzer eines iPad Pro. Weil ich auch weiterhin gerne vom iPad aus bloggen würde, musste ich mir überlegen, wie ich das ganze mit meinem Blogging-Setup so organisiert bekomme.

Ich möchte hier wieder öfter Artikel veröffentlichen und darum war es mir sehr wichtig, dass mein Blogging Workflow so einfach und entspannt wie möglich ist. Am besten sollte es so sein, dass ich auch einfach mal vom iPhone aus, einen Artikel veröffentlichen kann.

Dazu muss ich kurz erklären, wie ich bis jetzt gebloggt habe.

Mein aktuelles und bisheriges Blogging-Tool der Wahl ist Jekyll. Ich könnte mir vieles mit Wordpress oder so erleichtern, aber ich mag Jekyll und möchte mich nicht um Wordpress Hosting und allem was damit verbunden ist kümmern. Meine Jekyll Site besteht einfach aus einem Git Repository in dem der ganze Source Code und dem HTML Inhalt, der auf dem Server liegt.

Ich habe mir ein kleines Ruby Kommandozeilen Werkzeug geschrieben, welches ich benutzt habe um lokal auf einem Mac Jekyll Posts anzulegen. Es fragt einige Dinge ab (Title, Excerpt, Image und Link), erstellt eine Post-Datei im _posts Ordner, fügt die Front Matter Infos aus den Abfragen ein und macht die Daten in Vim auf. In Vim schreibe ich dann meinen Beitrag und wenn alles fertig ist, starte ich ein kleines Ansible Playbook, welches die Änderungen in Git eincheckt, die Seite mit Jekyll baut, pushed und per rsync die neuen HTML Inhalte auf den Server kopiert.

Wie mache ich das ganze nun auf dem iPad?

Nun ja, die Frage habe ich mir auch gestellt. Allerdings schon bevor ich das iPad überhaupt gekauft habe. Denn ich wollte natürlich eine Möglichkeit haben, dass das alles auch auf einem iPad funktioniert. Mir kam natürlich gleich die Idee, einfach Netlify zu benutzten und meine Seite nicht mehr selber zu hosten. Aber irgendwie hoste ich gerne meine eigene Page und mag es, dass der ganze Kram auf meinem eigenen Server liegt.

  • Unabhängig von dem iPad Setup, wollte ich in Zukunft meine Artikel gerne in Bear schreiben. Ich nutzte Bear für diverse Notizen und Text und mag das Tool wirklich sehr gerne.

  • Außerdem wollte ich die Möglichkeit haben, den Blog irgendwie per Git zu aktualisieren. Aber eben auf meinem eigenen Server und nicht bei Netlify. Ich habe mir also ein relativ einfaches Docker Setup gebaut, dass lauter Kram erledigt (Nginx mit Lets Encrypt usw.) und zusätzlich noch einen kleinen Webhook Service, der Webhooks von GitHub (dort liegt mein Blog-Repo) entgegennimmt und den Code auf dem Server aktualisiert. Das alles muss ich mal in einem weiteren Beitrag dokumentieren, weil sonst der Rahmen dieses Beitrags gesprengt werden würde. Aber sagen wir mal so, ich kann einfach mein Git Repo unter iOS (mit Working Copy) aktualisieren, commit & push machen und mein Blog wird aktualisiert.

Aber wie erstelle ich nun die Jekyll Dokumente?

  • Seit einiger Zeit gibt es die Tolle “Shortcuts” App von Apple. Ursprünglich hieß diese mal Workflows und wurde von Apple gekauft. Mit Shortcuts kann man lauter Dinge automatisieren und iOS deutlich mächtiger machen, als es offensichtlich zu sein scheint. Gerade die Verarbeitung verschiedener Daten und die damit verbundene Kommunikation in iOS wird extrem gesteigert.

Welchen Workflow nutzte ich also?

  1. Ich erstelle einen Text in Bear App und lasse mir in Bear die Markdown Ansicht anzeigen.
  2. Innerhalb dieser Ansicht, starte ich einen Shortcuts Workflow per Share Sheet.
  3. In diesem Workflow erstelle ich das Jekyll Front Matter und share den fertigen Inhalt mit Working Copy. Dies ersetzt mein altes Ruby Tool.
  4. In Working Copy erstelle ich den Commit und pushe den Code zu GitHub.
  5. Wenn der Code bei GitHub aktualisiert wurde, sendet GitHub einen Webhook zu meinem Server und der Server holt sich den neuen Code, baut die Seite mit Jekyll und aktualisiert den HTML Content.

Weil man das ganze mal in Aktion gesehen haben sollte, füge ich hier noch ein Video ein:

iPad Jekyll Workflow

Tja, was soll ich sagen? Das funktioniert alles extrem toll. Natürlich ist das sehr auf meinen Workflow angepasst, aber falls jemand Interesse hat, könnt ihr den Workflow hier herunterladen und anpassen:

Create Jekyll Post

Mal schauen, ob ich das ganze noch weiter optimieren kann, aber bis jetzt funktioniert das für meinen Anwendungsfall sehr gut.

Feedback? Du erreichst mich via Mail oder Mastodon.

Wenn du meinen Blog abonnieren möchtest, findest du hier meinen RSS Feed.