blindschleiche

Beiträge in Stamatic erfassen

Einer der Hauptgründe dafür Textpattern zu Verlassen war ja, dass ich keine Lust hatte für einen neuen Beitrag immer das Webinterface aufzurufen bzw. mich mit irgendwelchen Blog-Programmen oder Protokollen herumzuschlagen.

Bei Statamic reicht mir jetzt ein Dropbox-Ordner um meine Beiträge von überall her mit Mac und iPhone zu erfassen. Es reicht wenn ich eine Datei mit dem richtigen Header in den entsprechenden Ordner stelle; der Rest geht automatisch.

Sowohl in Textexpander für den Mac als auch für das iPhone habe ich einen Schnippsel, der mir bei Eingabe von .bh sowas in den Text schreibt …

---
title: ""
author: Martin Glinski
categories: [ ]
_template: post
---

… und den Cursor zwischen die Anführungszeichen setzt. Am Ende des Textes kann ich dann meinen Beitrag erfassen. Am Mac mit dem TextWrangler und auf dem iPhone mit Drafts. Auf dem Mac speichere ich meine Datei dann einfach — entsprechend benannt — in den Dropbox-Ordner /Blog und in Drafts habe ich eine Aktion die mir den Text automatisch mit YYYY-MM-DD-erste-Zeile.md benannt in den Ordner in meiner Dropbox stellt.

Am Mac habe ich dann noch eine Ordner-Aktion an meinen Blog-Ordner gehängt die via Transmit (ich benutze noch die 3-er Version) den Inhalt mit dem Ordner _content/2-blogs auf meinem Webserver synchronisiert sobald eine neue Datei dazu kommt.

Perfekt ist das nicht, da sich z.B. nichts tut wenn ich im Urlaub bin und der Mac aus ist, aber so eilig habe ich mit meinem Mitteilungsbedürfnis üblicherweise nicht, wichtiger ist mir das ich meine Gedanken gleich loswerde, wann sie dann im Web erscheinen ist zweitrangig.

Auch nicht perfekt ist, daß Ordneraktionen nur feuern wenn was in den Ordner dazu kommt und nicht auch bei Änderungen. Aber dafür habe ich noch eine Automator-Aktion die ich von Hand aufrufen kann wenn ich auch ohne neue Datei Änderungen synchronisieren möchte. Ansonsten sind sie eben dran wenn das nächste mal was dazu kommt.

Statamic, alte Links erhalten

Nachdem in meiner Sub-Domain alles rund lief, habe ich den Schritt getan und Statamic in das Wurzelverzeichnis verschoben. Da dadurch auch die dortige .htaccess und index.php überschrieben wurden waren meine alten Pfade damit erstmal pfutsch.

Nachdem ich mich mit diversen Redirect-Regeln nicht anfreunden konnte habe ich zum in Statamic eingebauten Mechanismus gegriffen. Unter _config gibt es eine Beispieldatei für eine vanity.yaml für Pfadweiterleitungen. Der Aufbau ist darin recht trivial:

/alter/Pfad: /neuer/Pfad

Da ich sowieso bereits ein Programm hatte, daß mir alle Textpattern-Artikel als Links in eine html-Datei schreibt, habe ich einfach das genommen um mir für beide Arten von Pfaden die ich eingesetzt habe eine Liste zu schreiben, mithilfe derer ich dann wieder mittels TextWrangler Grep Replace mir eine solche vanity-Datei erstellt habe:

...
/stacheldraht-makro: /blog/stacheldraht-makro
/artikel/94/stacheldraht-makro: /blog/stacheldraht-makro
...

Und schon haben die alten Links die sich in irgendwelchen Suchmaschinen oder Lesezeichen gehalten haben wieder funktioniert.

<?
mysql_connect("localhost", $dbuser, $dbpasswd);
$result = mysql($db, "SELECT ID, Title, Section, url_title FROM txptextpattern WHERE Status=4 ORDER by ID DESC");
while(list($ID, $head, $sec, $url_title)=mysql_fetch_row($result)) {
  echo "<a href=/$sec/$ID/$url_title>$head</a><br>\n"; 
  /* echo "<a href=/$url_title>$head</a><br>\n"; */
}
?>

Umstieg Textpattern > Statamic

Datenexport

Als erstes habe ich mit Hilfe dieses Skriptes einmal alle meine Beiträge aus Textpattern extrahiert; dabei aber festgestellt, daß zum einen die Umlaute dabei nicht richtig herauskommen und daß ich lieber categories gefolgt von den Kategorien in eckigen Klammern anstatt von categorygefolgt von Zeilenumbruch und den Kategorien mit minus vorne dran hätte.

Also gleich mal die Textkodierung aktiviert indem ich die Ausgabe von $dataContent['Title'] und 'Body' jeweils in einen utf8_encode() gepackt habe und die Ausgabe der Kategorien umgeschrieben:

fwrite($handle, 'categories: [ ');
if(isset($importCategories) && $dataContent['Category1'] != '') fwrite($handle, $dataContent['Category1']);
if(isset($importCategories) && $dataContent['Category2'] != '') fwrite($handle, ', '.$dataContent['Category2']);
fwrite($handle, " ]\n");

Jetzt hatte ich auf dem Server eine ganze Reihe von .textile Dateien liegen

...
2008-10-16-benchmark-einiger-sd-karten.textile
2009-01-22-bienengarnele-endlich-vernuenftige-aquarienfotos.textile
...

Die alle so aufgebaut waren:

---
title: Benchmark einiger SD-Karten
author: Martin Glinski
categories: [ computer, photo ]
_template: post
---
<txp:glx_image id="35" class="left" />

Evtl. ist es ja für den einen oder anderen von Interesse.
...

Jetzt blieb noch das Problem mit den Bildern, die ich natürlich mittels der Textpattern-Tags so nicht beibehalten konnte. Da aber alle Bilder auf dem Server unter /images liegen und als Basis die id im Namen tragen und meistens Jpegs sind die aus einem Thumbnail-Bildpaar bestehen habe ich es mir erstmal leicht gemacht, die Artikel alle lokale herunter geladen und über das gesamte Verzeichnis ein Suchen und Ersetzen via TextWrangler mit der Option Grep laufen lassen:

Find:       <txp:glx_image id="(\d+)".*/>
Replace:    !/images/\1t.jpg!:/images/\1.jpg

Jetzt waren noch die übrig die keine Jpegs sind und die die keine Verlinkung (großes Bild) haben. Da es nicht zuviele Artikel sind habe ich diesmal nur zum “Multi-File Search” gegriffen um die entsprechenden Dateien im Verzeichnis herauszusuchen und die Anpassungen von Hand zu machen.

Damit hatte ich erstmal eine Basis zum loslegen. Was ggf. noch offen war sollte sich ja hinterher noch einfach von Hand nachpflegen lassen.

Installation

Also habe ich Statamic in einen Unterordner auf meinen Webserver hochgeladen, den _cache-Ordner schreibbar gemacht und geschaut was passiert. Nicht viel, denn dafür hätte ich auch die htaccess-Datei mit ins root-Verzeichnis verschieben müssen, was ich aber zu diesem Zeitpunkt noch nicht wollte, da ich mir noch nicht so recht darüber klar was, was mit den alten Links geschehen soll und Textpattern erstmal weiter laufen sollte.

Also eine Subdomain blog.blindschleiche.deangelegt und Statamic da hinein verschoben. Jetzt konnte ich schon eine Beispielseite sehen aber die Links haben noch nicht funktioniert. Also noch die sample.htaccessumbenannt nach .htaccess und das Beispiel lief.

Übernahme

Damit hatte ich nun das Problem, daß meine hübsch generierten /image-Links nicht mehr funktionieren. Das einfachste wäre jetzt gewesen ich hätte einfach einen Symlink dahin angelegt, aber da ich keinen Shellzugriff auf den Server habe fiel das flach. Also nochmals ein “Multi-File Search” und alle /images/durch http://www.blindschleiche.de/images/ersetzt.

Jetzt habe ich im Beispielbaum 2-blog umbenannt nach 1-Arktikel, 1-about-me nach 5-Kolophonund 4-survival-guide nach 7-Impressumund habe die restlichen Ordner unter _content gelöscht und alle meine exportierten Artikel nach 1-Artikel transferiert nachdem ich die dort vorhandenen .md-Dateien gelöscht hatte.

Jetzt hatte ich gehofft meine Artikel zu sehen, das war aber nicht so. Also nochmal forschen und das Video Building a Simple Blog with Statamic ansehen und dann der Reihe nach.

Erstmal ein trip durch _settings/config.yaml (Lizenzschlüssel, Seitenname, …). Uups, da scheint ja auch die Markup-Sprache auf nur eine festgelegt zu sein. Eigentlich wollte ich ja die alten Sachen in textile behalten und die neuen in markdown verfassen. Mal schauen wie sich das auflösen lässt. Zum Start also erstmal ‘textile’.

Jetzt hat das alles aber leider nur funktioniert wenn ich den Ordner 1-Artikel wieder in 2-blog umbenannt habe, schon waren sie da meine Artikel. Ist erstmal ein Anfangszustand auf dem man aufbauen kann.

Da ich aber nicht ewig bei textile bleiben will, mal schnell alle Artikel nach Markdown wandeln (halb-manuell) und wenn ich schonmal dabei bin auch gleich einige Thumbnails wegrationalisieren, nicht mehr aktuelle Links anpassen und ausmisten.

Die Thumbnail-Links lassen sich z.B. wieder mit der Grep-Suche so umwandeln:

Find:       ^!(.*)!:(.*)$
Replace:    [![](\1)](\2)

Und die normalen Links z.B. so:

Find:       "(.*)":(\S*)
Replace:    [\1](\2)

Beim Überarbeiten ist mir aufgefallen, daß der Wert von title: besser in Anführungszeichen stehen sollte, sonst gibt es bei einem Doppelpunkt im Titel nur “Array” als Überschrift.

weitere Schritte

Jetzt muß ich mir noch etwas zum Design einfallen und eine Lösung für die alten Links finden, sowie die Installation absichern.

Bye Textmate, welcome TextWrangler

Jetzt bin ich doch schon wieder mal umgestiegen. Nach x Jahren XEmacs und 6 Jahren Textmate auf TextWrangler. Auch hier: Mal schaun…

Fehlerbehebungen

Das Problem mit den Fehlerbehebungen

Bye SOHO Notes

Von SOHO Notes und Notelife umgestiegen auf DevonThink Pro und ToGo. Ob’s eine gute Entscheidung war? Mal schaun wie DevonThink ToGo 2 wird…

An Notelife hat mich gestört, dass man Einträge nicht umgekehrt alphabetisch sortieren konnte und dass man keine Notizen aus Drafts reinbekam.

Can Knockdown 3

Can Knockdown 3 ist nach AngryBirds wieder mal ein wirklich spassiges Wurfspiel fuer das iPhone.

Aperture Masken kopieren

Masken ‘hintenrum’ in Aperture kopieren

Insekten essen?

TV: tivi

Falcon: Allied Force Mac

Warum habe ich eigentlich noch nichts zu “Falcon 4.0: Allied Force” fuer den Mac geschrieben?