Firefox3からは、ブラウザ自身でmicroformatsを解析出来る仕組みが入ったのですが、その対応がOperatorに中途半端に入っている様です。
chromeからmicroformatsを扱う為には
Components.utils.import("resource://gre/modules/Microformats.js");
というコードが必要なのですが、この処理がコメントアウトされていました。実際には
$(FIREFOX_PROFILE)/extensions/{95C9A302-8557-4052-91B7-2BB6BA33C885}/chrome/operator.jar
に含まれる
content/operator.js
が原因で、パッチで表すならば以下の様な感じ。
--- chrome/content/operator.js.orig Wed Mar 19 11:44:26 2008
+++ chrome/content/operator.js Tue Mar 25 19:11:01 2008
@@ -77,7 +77,7 @@
/* Attempt to use the Microformats module if available (Firefox 3) */
if (Components.utils.import) {
try {
-// Components.utils.import("resource:///modules/Microformats.js");
+ Components.utils.import("resource:///modules/Microformats.js");
} catch (ex) {
/* Unable to load system Microformats - use builtin */
}
おしいなぁ...作者。もしくは開発時はバギーだったかな?実際の作業としては「operator.jar」を解凍し上記パッチを当てた(もしくは手編集)後に再度zip(拡張子jar)化すればOK。見事以前までのmicroformat Operatorが帰ってきました。
相変わらずウチのサイトはmicroformatsだらけですが...
ところでFirefox3で扱えるmicroformats、「Describing microformats in JavaScript - MDC」を見るとどうやら自前でmicroformatの定義が出来る様です。今後draftとして拡張されていくであろうmicroformatsへの配慮ですかね。せっかくmicrosummaryのOperatorプラグイン作ってたのに、こっちの方向で作り直しか?
で、さらにドキュメントの例を見ていると
var adr_definition = {
mfVersion: 0.8,
mfObject: adr,
className: "adr",
properties: {
"type" : {
plural: true,
types: ["work", "home", "pref", "postal", "dom", "intl", "parcel"]
},
"post-office-box" : {
},
"street-address" : {
plural: true
},
"extended-address" : {
},
"locality" : {
},
"region" : {
},
"postal-code" : {
},
"country-name" : {
}
}
};
という記述が...。これOperatorのソースコードのままだね。ってことはOperatorのソースをFirefox3に持ってったのかな?とにかく簡単に拡張出来そうな仕組みなので、しばらく追ってみる。