Blogposts mit Jekyll, Dropbox und Nocs
Diese Blog wird seit längerer Zeit mit Jekyllrb betrieben. Die Texte werden in einem markdown File geschrieben und automatisch von Jekyll in das Design der Seite gepresst.
Das Problem war bis jetzt immer das mobile Posten.
Mobiles rsync war ein Problem
Um den Ordner “_posts” zu syncen wurde ein Script geschrieben. Aufgerufen wurde einfach ein:
deploy_page.sh test
oder ein
deploy_page.sh live
Mit dem Parameter test wurde auf das Testblog deployed und live auf das öffentliche. Zusätzliche Parameter sind img und voice. Bilder aus den Posts und die Audiofiles von den Posts zum vorlesen wurden so auf Test und Live gesynced.
Vom Rechner aus klappt das auch sehr gut. Doch manchmal möchte man auch mobil posten, was ein Problem ist. Es musste also eine Lösung her mit der das möglich wird.
Suche nach einer guten Lösung
Ein WabDav Client wäre ja schon nicht schlecht gewesen. Mit einem Editor auf dem iPad oder iPhone auch machbar. Aber den richtigen Client zu finden, der vielleicht auch Markdown kann, war dann aber auch schon schwer.
Das ganze ist dann auch erst einmal etwas eingeschlafen. Wenig Zeit und die richtige Idee oder Lösung wollte einfach nicht kommen. Bis letzte Woche.
Kantel zeigte den Weg
Eigentlich eher durch Zufall bin ich dann auf einen Editor gestossen worden. In der Timeline bei Google+ bin ich auf einen Post von Jörg Kantel gestossen. Er suchte einen Editor der Markdown kann. Jan Friderici hatte ihm dort den Editor “Nocs” vorgeschlagen. Nocs kann mit der Dropbox reden, kann Markdown und ist kostenlos.
Der wurde dann auch gleich getestet und machte einen netten Eindruck. Der Editor war also gefunden, nur wie kommen die Files jetzt nur noch aus der Dropbox in das Verzeichnis “_posts” auf dem Server?
Aus Nocs in die Dropbox und dann vom Rechner zu hause auf den Server? Nein, der Rechner ist meistens immer mit unterwegs oder aus. Und unterwegs könnte ich es dann auch gleich am Rechner schreiben.
Server connect mit der Dropbox
Einen X auf dem Server starte ich nicht. Das ganze per ssh und XForward frickeln sollte auch nicht sein. Es muss doch eine Lösung geben die Dropbox auch anders anzusprechen. Dropbox-CLI oder so etwas sollte es doch geben.
Also wurde kurz bei Google nach “Dropbox cli” gesucht und 2-3 Forenbeiträge gelesen. Es gibt ein “Dropbox Commandline Tool” und eine Beschreibung wie man Dropbox auf dem Server per Commandline installieren kann.
Dropbox Daemon installieren
wget -O - "https://www.dropbox.com/download?plat=lnx.x86" | tar xzf -
# 64bit Version:
# wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf
screen -AmdS dropbox ~/.dropbox-dist/dropboxd
- Dropbox herunterladen und entpacken
- Dropbox im Screen staren, Screen heisst dann dropbox und wird im Hintergrund gestartet.
Anschliessend sollten man mit ‘screen -r dropbox’ kurz in den screen gehen, denn dort wird man eine URL finden die man aufrufen muss.
Dieser Client ist mit keinem Konto verkn?pft ...
Gehe zu https://www.dropbox.com/cli_link?host_id=71...371&cl=de, um diesen Computer zu verkn?pfen.
Dieser Client ist mit keinem Konto verkn?pft ...
Gehe zu https://www.dropbox.com/cli_link?host_id=71...371&cl=de, um diesen Computer zu verkn?pfen.
Dieser Client ist mit keinem Konto verkn?pft ...
Die URL im Browser aufrufen und in der eigenen Dropbox einloggen. Damit wird der Server bzw. der Client mit der Dropbox verknüpft. Ist dies geschehen wird es direkt im Screen quitiert.
Verkn?pfung mit Client hergestellt. Herzlich willkommen, xxx
Den Screen mit einem “”CTRL+a d” verlassen und schon sollte im Homeverzeichnis auf dem Server der Ordner “Dropbox” sein. In diesem Ordner sind natürlich alle Daten aus der Dropbox. Manche will man auf dem Server nicht haben. Also sollte man diese noch von der Synchronisation ausschliessen.
dropbox.py das kleine Helferlein
Es gibt ein Python Script um z.B. eine PublicUrl eines Ordners oder einer Datei anzeigen. Mit diesem Tool kann man auch Ordner von der Synchronisation ausnehmen.
# cli client herunterladen
wget -O dropbox.py "https://www.dropbox.com/download?dl=packages/dropbox.py"
# mal kurz die Hilfe angucken
python dropbox.py help
# Alles excluden was wir nicht brauchen
cd ~/Dropbox
python /home/rpr/dropbox.py exclude add Musik Dokumente Public Upload
In meinem Fall werden so nur die benötigten Verzeichnisse “_posts”, “images” und “voice” auf dem Server synchronisiert. Jetzt müssen nur noch die Verzeichnisse im Jekyllrb Path umbenannt werden und mit denen in der Dropbox verlinkt werden.
# Posts Verzeichnis sichern und neu verlinken
# images und audiofiles sichern und in die Dropbox verlinken
cd /path/to/webroot/
mv images images_orig
mv voice voice_orig
mv _posts _posts_backup
ln -nfs /home/rpr/Dropbox/macund.co/_posts ./_posts
ln -nfs /home/rpr/Dropbox/macund.co/images ./images
ln -nfs /home/rpr/Dropbox/macund.co/voice ./voice
Jetzt nur noch einmal kurz jekyll neustarten und schon ist alles fertig.
Links zu den einzelnen Anwendungen
- Blogsoftware: Jekyllrb
- Editor iPhone/iPad: nocs
- Editor Mac: Mou
- Dropbox: Dropbox Client, Dropboxd, Dropbox Commandline Tool

Github
GitHub Repos
- Status updating...
@ruedigerp on GitHub