Donnerstag, 30. Dezember 2004
Serendipity und Spartacus
Gestern habe ich mich nochmal ein paar Stündchen hingesetzt und eine kleine Idee umgesetzt, die Tom Sommer und die anderen Serendipity-Entwickler schon länger hatten: Ein Plugin-Repository im Stile von Typo3.
Was ich nun gestern ins CVS gestellt habe ist eine zweiteilige Client/Server-Geschichte.
Der Server-Teil erstellt (crontab-automatisiert) anhand unseres 'additional_plugins' CVS-Moduls eine PEAR package.xml-kompatible Datei her. Dabei geht es durch alle Verzeichnisse des CVS-Moduls und erstellt diese Übersicht mit Versions/Autor/Beschreibungs-Informationen.
Der Client-Teil ist ein einfaches Serendipity-Plugin. Dies liest die XML-Datei vom Server und erlaubt das direkte Herunterladen des Plugins via Oberfläche. So kann man ruck-zuck ein Plugin installieren. Derzeit ist das ganze nur in aktuellen 0.8 Snapshots von Serendipity nutzbar, und wird im Zuge der Entwicklung sicher ausgeweitet werden. Noch fehlt derzeit eine Versionierung, so dass Serendipity über eine Aktualisierung eines Plugins benachrichtigt und dies dann auch herunterladen kann. Das sind aber eher Marginalitäten, die einfach zu implementieren wären.
Ziel ist es, noch eine PEAR-Web ähnliche Oberfläche zu schaffen, über die auch andere Autoren ihre XML-Daten ihrer Plugins einstellen und verfügbar machen können. Weiterhin sollen auch unsere Themes über dieses System laufen. Mal schauen, was hier die Zukunft bringt.
Was ich nun gestern ins CVS gestellt habe ist eine zweiteilige Client/Server-Geschichte.
Der Server-Teil erstellt (crontab-automatisiert) anhand unseres 'additional_plugins' CVS-Moduls eine PEAR package.xml-kompatible Datei her. Dabei geht es durch alle Verzeichnisse des CVS-Moduls und erstellt diese Übersicht mit Versions/Autor/Beschreibungs-Informationen.
Der Client-Teil ist ein einfaches Serendipity-Plugin. Dies liest die XML-Datei vom Server und erlaubt das direkte Herunterladen des Plugins via Oberfläche. So kann man ruck-zuck ein Plugin installieren. Derzeit ist das ganze nur in aktuellen 0.8 Snapshots von Serendipity nutzbar, und wird im Zuge der Entwicklung sicher ausgeweitet werden. Noch fehlt derzeit eine Versionierung, so dass Serendipity über eine Aktualisierung eines Plugins benachrichtigt und dies dann auch herunterladen kann. Das sind aber eher Marginalitäten, die einfach zu implementieren wären.
Ziel ist es, noch eine PEAR-Web ähnliche Oberfläche zu schaffen, über die auch andere Autoren ihre XML-Daten ihrer Plugins einstellen und verfügbar machen können. Weiterhin sollen auch unsere Themes über dieses System laufen. Mal schauen, was hier die Zukunft bringt.
Mittwoch, 15. Dezember 2004
Serendipity und WordPress Themes
Ich glaube, ich hab's hier noch nie so deutlich geschrieben - aber in seiner jüngsten Entwicklungsinkarnation von Serendipity unterstützt unser System die Möglichkeit, WordPress-CSS-Templates einzusetzen. Das grundlegende Template und einige Themes gibt's in Evans Nemerson's Blog.
Wer also Serendipity bisher nur nicht ausprobiert hat, weil wir besser programmieren als Templates entwickeln können, der sollte spätestens jetzt mal zuschlagen und unser System "probefahren". Zwar hat die derzeitige 0.8 Version viele neue experimentelle Features, aber läuft ansonsten zumindest bei mir schon sehr problemlos.
Wer also Serendipity bisher nur nicht ausprobiert hat, weil wir besser programmieren als Templates entwickeln können, der sollte spätestens jetzt mal zuschlagen und unser System "probefahren". Zwar hat die derzeitige 0.8 Version viele neue experimentelle Features, aber läuft ansonsten zumindest bei mir schon sehr problemlos.
Montag, 13. Dezember 2004
Serendipity: Multilinguale Einträge
Weil ich heute ja mit dem FreeTagging Plugin schon "knietief" in Serendipity-Code steckte, habe ich direkt noch etwas feines committed: serendipity_event_multilingual (auch hier geht der Link wohl erst in ein paar Stunden dank SourceForge) ermöglicht es Autoren, mehrere Sprachversionen eines einzelnen Artikels zu erstellen.
Im Gegensatz zu bestehenden Babelfish-Plugins funktioniert dies nicht auf der Basis von automatisierten Übersetzungen, sondern der Autor des Blogs kann selber die Sprachversion schreiben, und dabei auf die Wortwahl achten. Gerade also für mehrsprachig geführte Blogs ist dies sehr hilfreich.
Das Plugin funktioniert dermaßen, dass nicht einfach mehrere Artikel eingestellt werden, sondern die Übersetzung ist eine "Eigenschaft" des Originalartikels. Somit werden Trackbacks und Kommentare zu einem Artikel immer auf ein und derselben Seite gelistet, RSS-Feeds funktionieren ohne Duplikate und auch der Aufruf eines separaten Blogs entfällt. Meines Erachtens eine sehr coole Lösung die ich so in noch keinem anderen Blogsystem gesehen habe.
Die jetzige Version ist noch nicht ganz feature complete. Ich wünsche mir, dass in einem Cookie die Sprachpräferenz des Besuchers gespeichert wird, und dass das Plugin mit dem Cache-Plugin harmonisch zusammenarbeitet. Derzeit wird nämlich noch keine Cachbare Version einer Sprachalternative angehangen. Weiterhin wäre es nett, einen RSS Feed für spezielle Sprachversionen zu haben. Beides ist technisch unaufwändig, aber da hab ich jetzt keine Lust mehr.
Viel Spaß!
Im Gegensatz zu bestehenden Babelfish-Plugins funktioniert dies nicht auf der Basis von automatisierten Übersetzungen, sondern der Autor des Blogs kann selber die Sprachversion schreiben, und dabei auf die Wortwahl achten. Gerade also für mehrsprachig geführte Blogs ist dies sehr hilfreich.
Das Plugin funktioniert dermaßen, dass nicht einfach mehrere Artikel eingestellt werden, sondern die Übersetzung ist eine "Eigenschaft" des Originalartikels. Somit werden Trackbacks und Kommentare zu einem Artikel immer auf ein und derselben Seite gelistet, RSS-Feeds funktionieren ohne Duplikate und auch der Aufruf eines separaten Blogs entfällt. Meines Erachtens eine sehr coole Lösung die ich so in noch keinem anderen Blogsystem gesehen habe.
Die jetzige Version ist noch nicht ganz feature complete. Ich wünsche mir, dass in einem Cookie die Sprachpräferenz des Besuchers gespeichert wird, und dass das Plugin mit dem Cache-Plugin harmonisch zusammenarbeitet. Derzeit wird nämlich noch keine Cachbare Version einer Sprachalternative angehangen. Weiterhin wäre es nett, einen RSS Feed für spezielle Sprachversionen zu haben. Beides ist technisch unaufwändig, aber da hab ich jetzt keine Lust mehr.

Viel Spaß!
Serendipity: Freies Artikeltagging
Es ist zwar schon etwas länger her, dass ich auf dem Kölner Mini-Bloggertreffen war - aber damals habe ich mir etwas auf meine Todo-Liste für Serendipity geschrieben.
Alp Uckan hatte gemeint, einem Blog würde ein System zum freien Tagging von Artikeln guttun. Und weil die Plugin-Infrastruktur von Serendipity eigentlich nichts unmöglich macht, habe ich das mal in einem Plugin umgesetzt.
Das in ein paar Stunden im CVS verfügbare Plugin Freetag (Link funktioniert je nach SF.Net Lag vielleicht erst nach ein paar Stunden) erlaubt in einem kleinen, aber feinen, Eingabefeld die Eingabe von einer beliebigen Liste an Tags, getrennt durch Kommas.
Beim betrachten von Artikeln werden dem Benutzer die vorhandenen Tags angezeigt, und jedes Tag ist anklickbar - das funktioniet dann genauso wie die Ansicht nach Kategorien (auch blätterbar). Genauso gibt es auch RSS Feeds für jedes Tag.
Sprich, das ganze funktioniert genauso wie Kategorien, bis auf folgendes: Tags sind nicht hierarchisch angelegt, und Tags sind nicht fest definiert. So kann man jederzeit ein neues Tag erfinden oder benutzen, ohne umständlich Kategorien anlegen zu müssen.
Somit sind Tags zwar chaotischer und anfällig für Dopplungen und Überbenutzung, aber für eine Art Stichwortsystem recht gut geeignet.
Das Plugin benötigt jedoch eine aktuellste CVS-Serendipity Version (Snapshot von mindestens heute nachmittag), da nur dort eine neue Infrastruktur für beliebige Eigenschaften von Artikeln besteht. Mit dieser Struktur ist auch das Caching von Artikeln, die Leserechtseinschränkung und demnächst auch Multi-Lingualität möglich. Also, probiert's aus.
Alp Uckan hatte gemeint, einem Blog würde ein System zum freien Tagging von Artikeln guttun. Und weil die Plugin-Infrastruktur von Serendipity eigentlich nichts unmöglich macht, habe ich das mal in einem Plugin umgesetzt.
Das in ein paar Stunden im CVS verfügbare Plugin Freetag (Link funktioniert je nach SF.Net Lag vielleicht erst nach ein paar Stunden) erlaubt in einem kleinen, aber feinen, Eingabefeld die Eingabe von einer beliebigen Liste an Tags, getrennt durch Kommas.
Beim betrachten von Artikeln werden dem Benutzer die vorhandenen Tags angezeigt, und jedes Tag ist anklickbar - das funktioniet dann genauso wie die Ansicht nach Kategorien (auch blätterbar). Genauso gibt es auch RSS Feeds für jedes Tag.
Sprich, das ganze funktioniert genauso wie Kategorien, bis auf folgendes: Tags sind nicht hierarchisch angelegt, und Tags sind nicht fest definiert. So kann man jederzeit ein neues Tag erfinden oder benutzen, ohne umständlich Kategorien anlegen zu müssen.
Somit sind Tags zwar chaotischer und anfällig für Dopplungen und Überbenutzung, aber für eine Art Stichwortsystem recht gut geeignet.
Das Plugin benötigt jedoch eine aktuellste CVS-Serendipity Version (Snapshot von mindestens heute nachmittag), da nur dort eine neue Infrastruktur für beliebige Eigenschaften von Artikeln besteht. Mit dieser Struktur ist auch das Caching von Artikeln, die Leserechtseinschränkung und demnächst auch Multi-Lingualität möglich. Also, probiert's aus.
(Seite 1 von 1, insgesamt 4 Einträge)

















