Ubiquity und Microformats

Ubiquity bietet (neben Operator) endlich einen echten Anwendungsfall für die Microformats Firefox API. Die Microformats API basiert auf JavaScript und lässt sich somit auch direkt (und ohne viel Aufwand) in die Ubiquity-Commands integrieren.

Das folgende wirklich sinnvolle Beispiel zählt alle hCards einer Seite und gibt das Ergebnis als System-Message aus:

Components.utils.import("resource://gre/modules/Microformats.js");
CmdUtils.CreateCommand({
name: "count-hcards",
execute: function() {
var doc = Application.activeWindow.activeTab.document;
var uFcount = Microformats.count('hCard', doc);
displayMessage( uFcount );
}
})

Martin McEvoy hat ein paar wesentlich schickere Commands gebaut, die mit Hilfe des Transformrs Mikroformate verarbeitet. Da für diese Verarbeitung ein Redirect (oder das öffnen einer zweiten Seite) notwendig ist, überprüft er mit Hilfe der Microformats-API zuerst ob sich die notwendigen Mikroformate überhaupt auf der Seite befinden.

Der folgende Code (von Martin) testet z.B. ob mind. ein hCalendar verfügbar ist, bevor er diesen verarbeitet:

CmdUtils.CreateCommand({
icon: "http://transformr.co.uk/favicon.ico",
name: "get-webcal",
author: {name: "Martin McEvoy", email: "weborganics@googlemail.com"},
help: "Subscribe to a webcal feed using the
hCalendar Microformat.",
preview: function ( pblock ) {
pblock.innerHTML = "Subscribe to web calendar";
},
execute: function() {
var doc = Application.activeWindow.activeTab.document;
var mFcount = Microformats.count('hCalendar', doc,{ showHidden : true });
if (mFcount > 0) {
var url = "webcal://transformr.co.uk/hcalendar/";
url += CmdUtils.getWindowInsecure().location ;
Utils.openUrlInBrowser(url);
} else {
displayMessage('Sorry No hCalendar Events Found!');
}
}
})

Quelle: http://transformr.co.uk/commands

Weitere großartige Ubiquity-Commands im Microfromats-Wiki…

Congratulations on being an RSS reader! You are part of an elite group of people who know how to stay updated in style.