Inspiriert durch Michromeformats, hab ich mich auch mal an ein Chrome-Addon gemacht 🙂

Das Addon erkennt auf der Seite verlinkte ActivityStrea.ms:

<link rel="activitystream" type="application/atom+xml" href="..." />Code-Sprache: HTML, XML (xml)

oder:

<link rel="alternate" class="activitystream" type="application/atom+xml" href="..." />Code-Sprache: JavaScript (javascript)

Kein Hexenwerk, aber immerhin mal ein Anfang 🙂 Falls euch noch ein paar Features einfallen, immer raus damit.

Gute Neuigkeiten! Michael Kaply, der die Weiterentwicklung von Operator (ein Microformats Addon für Firefox) Ende 2008 eingestellt hat…

Operator – Deciding what to do with Operator is difficult. […] That being said, I’m going to do a few fixes for Operator, call it 1.0 and then stop development.

…widmet sich jetzt doch wieder dem de facto (Microformats) Browser Plugin

The biggest news I have is that I have resumed work on Operator. In particular, I’m fixing bugs, adding a few usability enhancements and adding support for new microformat stuff like the value class/pattern for dates. I’m also considering completely removing the “Actions” toolbar and switching to interacting only with the data. I’m definitely looking for feedback on that one.

Wer Ideen zu neuen Features oder Funktionen hat, kann diese gerne auf Michaels Weblog loswerden.
Mein Wunsch: Microdata support 🙂

(Ich hoffe dass die Angekündigten value-class-pattern Änderungen eventuell auch irgendwann in die native Microformats Firefox API aufgenommen werden.)

Ubiquity gibt es ja jetzt schon ne ganze Weile und es wurde auch schon zu genüge darüber berichtet, deshalb will ich auch gar nicht mehr groß darauf eingehen. Da ich das Firefox-Addon aber recht spannend finde und sicherlich noch einiges darüber schreiben werde, möchte ich diejenigen die noch nichts von Ubiquity gehört haben auf den Artikel von Markus Spath (auf netzwertig) und das folgende Video hinweisen…

Hier klicken, um den Inhalt von Vimeo anzuzeigen.
Erfahre mehr in der Datenschutzerklärung von Vimeo.

Ich persönlich mag das quicksilver-ähnliche Handling und das kontextsensitive reagieren der Ubiquity-Befehle (frei nach Markus).
D.h. Ubiquity arbeitet, genau nach dem Microformats-Prinzip: „Designed for humans first and machines second…“, mit den gleichen Informationen die auch der User zu Gesicht bekommt… der Webseite.
Das schreit ja nahezu nach einigen coolen Microformats-Anwendungen 🙂

Warum sollte nur die Ausgabe ((X)HTML) semantisch anreichern und die Eingabe vernachlässigen?

Beim spielen mit dem hCard-Mappers und der Firefox-Microformats-API kam mir die Idee, auch Formulare semantisch auszuzeichnen…

In dem Artikel Use the new microformats API in your Firefox 3.0 Extensions beschreibt Rob Crowther wie man mit Hilfe der Firefox-Microformats-API eine hCard speichert um sie zum Ausfüllen verschiedener Formulare weiterverwenden zu können.

Das Problem: Das Prinzip funktioniert leider nur bei Formularen die dem festgelegten Aufbau entsprechen. Im Fall des Beispiels wäre das:

<h1>hCardFormFiller Target Form</h1>
<form action="#" method="post">
    <label>Name: <input type="text" id="name" /></label><br />
    <label>Email: <input type="text" id="email" /></label><br />
    <label>Home page: <input type="text" id="homepage" /></label><br />
    <label>Street Address: <input type="text" id="address1" /></label><br />
    <label>City: <input type="text" id="address2" /></label><br />
    <label>Region: <input type="text" id="city" /></label><br />
    <label>Postcode: <input type="text" id="postcode" /></label><br />
    <input type="submit" />
</form>Code-Sprache: HTML, XML (xml)

Warum nicht gleich das Formular als hCard-From aufbauen?

<form action="#" method="post" id="vcard" >
  <fieldset id="fn">
    <legend>Name</legend>
    <label for="given-name">Vorname:</label>
      <input type="text" id="given-name" />
    <label for="family-name">Nachname:</label>
      <input type="text" id="family-name" />
  </fieldset>
  <label for="email">Email:</label>
    <input type="text" id="email" />
  <label for="url">Homepage:</label>
    <input type="text" id="url" />
  <fieldset id="adr">
    <legend>Adresse</legend>
    <label for="street-address">Straße:</label>
      <input type="text" id="street-address" />
    <label for="locality">Stadt:</label>
      <input type="text" id="locality" />
    <label for="region">Region:</label>
      <input type="text" id="region" />
    <label for="postal-code">Postleitzahl:</label>
      <input type="text" id="postal-code" />
  </fieldset>
  <input type="submit" />
</form>Code-Sprache: HTML, XML (xml)

Das Einheitliche Format für Ein- (Formular) und Ausgabe (Microformats) hätte zur Folge, dass keine aufwendigen Mapper (wie z.B. hCard-Mapper) mehr nötig wären um ein Formular per hCard auszufüllen…

Schöne neue Welt 🙂

Rob Crowther hat für IBM developerWorks eine großartige Anleitung (mit Beispiel-Code) geschrieben, wie man die Microformats API in Firefox3 Extensions nutzen kann.

The upcoming Firefox 3.0 release has built-in support for microformats in the form of an API that you can access from a Firefox extension. In this tip, you follow a simple example of how to use this API from within your extension code. You take a skeleton Hello World extension and give it the ability to store an hCard from any Web page and then use that stored hCard to populate a Web form.

Die Beispiel-Erweiterung von Crowther nutzt hCard-Informationen um ein (im Beispiel beiliegendes) Profil-Formular auszufüllen.

hcardformfiller.jpg

Ablauf: Zuerst auf ne Seite mit hCard, linken Knopf drücken, dann auf das Fromular und rechten Knopf drücken.

hCardFormFiller für WordPress

Um dem Beispiel etwas mehr Nutzen zu geben, habe ich es testweise für das WordPress Kommentarformular umgeschrieben. Die Einzige notwendige Änderung ist, folgenden Code in der overlay.js:

onToolbarButtonPasteCommand: function(e) {
 if (this.uF.fn) {
   content.document.getElementById('name').value = this.uF.fn;
   content.document.getElementById('email').value = this.uF.email[0].value;
   content.document.getElementById('homepage').value = this.uF.url[0];
   content.document.getElementById('address1').value = this.uF.adr[0]['street-address'];
   content.document.getElementById('address2').value = this.uF.adr[0].locality;
   content.document.getElementById('city').value = this.uF.adr[0].region;
   content.document.getElementById('postcode').value = this.uF.adr[0]['postal-code'];
 }
}Code-Sprache: JavaScript (javascript)

durch folgenden Code:

onToolbarButtonPasteCommand: function(e) {
 if (this.uF.fn) {
   content.document.getElementById('author').value = this.uF.fn;
   content.document.getElementById('email').value = this.uF.email[0].value;
   content.document.getElementById('url').value = this.uF.url[0];
 }
}Code-Sprache: JavaScript (javascript)

zu ersetzen und das war’s. Jetzt könnt ihr mit einer hCard bewaffnet losziehen und WordPress Blogs zuspammen 🙂

Wer das Addon mal ausprobieren möchte kann sich den angepassten hCardFormFiller for WordPress runterladen… den original Code findet man hier.

Nachdem die Microformats kein UI spendiert bekommen haben, gibt es vielleicht demnächst einige Addons die diese Lücke füllen werden.

Interessante Links:

Michael Kaply plant einige interessante neue Features für Operator (Firefox Microformats-Addon).

Um User-Skripte vor der Installation nicht erst herunterladen zu müssen, sollen die Skripte von JS auf XML umgestellt werden. Als Basis für das XML-Modell wurde das, von Microsoft spezifizierte, OpenService Format angedacht.

So könnte ein Script z.B. aussehen:

<?xml version="1.0" encoding="utf-8"?>
<openServiceDescription
  xmlns="http://www.microsoft.com/schemas/openservicedescription/1.0">
  <display>
    <name>Find with MapQuest</name>
    <icon>http://www.mapquest.com/favicon.ico</icon>
  </display>
  <homepageUrl>http://www.mapquest.com</homepageUrl>
  <activity category="Map">
    <activityAction context="hCard.adr">
      <execute method="get"
        action="http://www.mapquest.com/maps/map.adp?searchtype=address">
        <parameter name="address" value="{street-address}"/>
        <parameter name="city" value="{locality}"/>
        <parameter name="state" value="{region}"/>
        <parameter name="zipcode" value="{postal-code}"/>
        <parameter name="country" value="{country-name}"/>
      </execute>
    </activityAction>
  </activity>
</openServiceDescription>Code-Sprache: HTML, XML (xml)

Weitere Gedanken zu der „OpenService extension for microformats contexts“ oder „Automatic Discovery“ findet ihr im Microformats Wiki

Nachdem sich Benjamin Nowack gestern (via twitter) noch gefragt hat ob es möglich ist, einem Firefox-HTML-Validator RDFa beizubringen…

wondering if the FF HTML Validator extension could be hacked to support RDFa. Basic QA is a bit too complicated with only the w3.org checker

…hat er ihn heute auf seiner Webseite veröffentlicht 🙂

Benjamin Nowacks angepasster Validator basiert auf der HTML Validator Extension for Firefox von Marc Gueury und funktioniert leider vorerst nur unter Windows.

Zum Download

Weitere sehr interessante Projekte von Herrn Nowack die man sich auch unbedingt anschauen sollte:

  • ARC – Easy RDF and SPARQL for LAMP systems
  • SPARQLBot – Your Semantic Web Command Line