OPML is knudde, maar….

OPML (Outline Processor Markup Language) is niet nieuw, maar staat de laatste tijd meer in de belangstelling als voorheen. Dat betekent ook dat de kritiek op OPML (weer) toeneemt.
Zelf heb ik nooit zoveel met OPML gedaan, tot de komst van OPMLmanager en wat pogingen om daar de shownotes voor de EduKast mee te onderhouden.
En ik moet zeggen, nu ik er eindelijk wat meer mee heb willen doen, kan ik niet anders concluderen dan dat de critici absoluut gelijk hebben: OPML is een knudde specificatie!
Maar dat hoeft je niet te weerhouden er handige dingen mee te doen.
Belangrijkste probleem met OPML dat ik had/heb is dat er geen unieke identificatie aan een knooppunt gehangen kan worden. En dat is tamelijk onhandig.
OPMLmanager nodigt namelijk niet uit tot het onderhouden van veel kleine OPML-bestanden. En daarom zijn alle shownotes voor alle afleveringen van de EduKast opgenomen in één OPML-bestand.

Per aflevering wil ik op de EduKast-website natuurlijk alleen maar de shownotes voor die betreffende aflevering laten zien. Ik wil dus een deel van het totale OPML-bestand pakken en dat converteren naar HTML. Daarvoor wil je naar een punt in die boomstructuur kunnen verwijzen en dat kan met OPML (door het ontbreken van die identificatie) niet.

Voor mezelf heb ik daarom de afspraak gemaakt dat de boomstructuur zodanig opgebouwd is dat ik op het hoogste niveau steeds een map maak die een unieke naam heeft: de naam van de aflevering van de EduKast.
Daardoor kan ik (met wat moeilijk telwerk voor de onderliggende niveaus) steeds de informatie van één aflevering ophalen uit het totale OPML-bestand.

Ik heb een plugin voor Nucleus gemaakt waardoor ik met één stukje code in het bericht kan verwijzen naar de shownotes van een bepaalde aflevering, zo kan ik de shownotes voor aflevering 107 opvragen met:
<%OPML(edukast-107-20051106)%>
en dat ziet er dan zo uit:
Shownotes
OPML

Om te voorkomen dat de OPMLmanager-website te zwaar belast wordt, wordt het resultaat 60 minuten lang in de cache bewaard. De layout is nog erg basic, er wordt bijvoorbeeld wel al gedetecteerd of een link een RSS-feed is maar er wordt nog geen icoontje getoond. Voor het overige denk ik trouwens niet dat inklapbare mappen hier nodig zijn.

De volgende stap is het door Nucleus laten genereren van de basis voor de shownotes: een OPML-bestand dat de berichten van de afgelopen week bevat.