Startseite

17.11.05

Tagging mit Movable Type

Schon vor einiger Zeit habe ich Tagging über Technorati hier im Weblog eingeführt und das Plugin hierfür auch beim Einsatz von mtview.php nutzbar gemacht. Nun wollte ich das Tagging umstellen. Ziel der Umstellung sollte sein, dass die Tag auf interne Seiten verlinkt werden, die alle Artikel zu diesem Thema anzeigen.

Dieser Beitrag beschreibt, welche Anforderungen ich an das Tagging richte, welche Lösungen für mich in Betracht kamen und welche ich nun wie implementiert habe. Wie das in der Praxis aussieht könnt ihr übrigens im Brettspiel-Blog betrachten.

Anforderungen an das Tagging

Folgende Anforderungen habe ich an mein Tagging gestellt:

  1. Die Tags sollen auf interne Seiten verweisen. Damit scheiden die Plugins Technoratitags und MT-Tagslite leider aus.
  2. Alle Tags sollen über eine einheitliche URL erreicht werden können. Dies ist idealerweise $bloghome/tags/$tag. (Hier muss ich beim genannten Brettspiel-Blog nochmals ran.)
  3. Das Plugin sollte mit möglichst vielen Installationsarten von Movable Type zurechtkommen.

Verfügbare Plugins / Lösungsansätze

Bei der Suche nach Möglichkeiten hierzu bin ich im wesentlichen auf drei mögliche Lösungen gestoßen:

  1. Die erste Lösung stammt von einfach persönlich und wird in dem Tutorial Kreatives Tagging im Movable Type Weblog vorgestellt. Die Lösung erfüllt meine ersten beiden Punkte vollständig, den dritten nur eingeschränkt, da ich entsprechende Rewrite-Rules für Apache definieren können muss, was nicht immer der Fall ist. Der Hauptgrund, warum ich mich gegen diese Lösung entschieden habe, war die Nutzung der Suchfunktion zum Anzeigen der Artikel zu einem Tag. Das ist nicht nur dynamisch und erzeugt damit Serverlast sondern es findet auch immer Artikel, die das Tag zwar im Text aber nicht als Tag enthalten. Dies ist vor allem bei negativen Vergleichen ("Dieses Spiel ist kein Geschicklichkeitsspiel.") lästig. Daher schied diese Lösung für mich aus.
  2. Die zweite Lösung, gefunden bei pixelgrafix, basiert auf dem Tagwire Plugin für Movable Type. Leider habe ich weder in der Originaldokumentation noch in dem Artikel einen Hinweis darauf gefunden, wie ich die Tags innerhalb meines Weblogs verlinken kann. Da damit zumindest augenscheinlich meine ersten beiden Punkte nicht oder nur bedingt erfüllt sind, habe ich auch diese Lösung verworfen.
  3. Als dritte Lösung habe ich mir das Tag-Plugin von Six Apart angeschaut. Auch dieses hat eine Schwäche: Kategorien und Tags werden vermischt, was vom Benutzer wieder zu trennen ist. Diese Schwäche ist aber zugleich auch eine Stärke des Plugins: Alles, was Movable Type für Kategorien unterstützt wird auch von diesem Plugin unterstützt. Das bedeutet vor allem, dass auch statische Archiv-Seiten für jeden Tag erzeugt werden. Und das war mir wichtig. Das Problem ist also, hier die Vermischung von Tags und Kategorien zu durchbrechen.

Realisierung

Das Hauptproblem ist das Ausblenden der Tags in der Kategorieliste unter jedem Eintrag und der Kategorieübersicht für das gesamte Weblog. Dazu bietet sich das Plugin FilterCategories an. Allerdings unterstützt dieses die Erkennung von Tag-Kategorien leider nicht von Haus aus. Also habe ich es um die Parameter exculde_parents, exclude_tags und only_tags erweitert. exclude_tags blendet alle Tag-Kategorien aus der reinen Kategorieliste aus, only_tags blendet alle echten Kategorien aus und lässt nur Tags stehen um z.B. eine Tag-Cloud zu erzeugen.
Die gepatchte Version gibt es hier zum Download (5kB).

Mit diesem Plugin ist die Bereinigung der Kategorieliste um die Tags ein Kinderspiel:
<MTTopLevelCategories>
<MTFilterCategories exclude_tags="1">
<MTSubCatIsFirst><ul class="module-list"></MTSubCatIsFirst>
[...]
</MTFilterCategories>
</MTTopLevelCategories>

Unter einem Eintrag können die Tags mit folgendem Code eingebunden werden:
Tags: <MTEntryTags> <a href="<$MTTagArchiveLink$>"><$MTTagName$></a> </MTEntryTags>

Offene Nachteile dieser Lösung

Auf Leserseite ist nun nichts mehr von der Vermischung von Kategorien und Tags zu sehen. Im Autorenbereich von Movable Type tauchen allerdings immer noch die Kategorien in der Tag-Liste und umgekehrt die Tags in der Kategorieliste auf. Ich werde versuchen auch das noch durch kleine Hacks zu beheben.