{"id":1141,"date":"2008-09-16T20:38:37","date_gmt":"2008-09-16T18:38:37","guid":{"rendered":"http:\/\/notizblog.org\/?p=1141"},"modified":"2023-06-28T19:53:30","modified_gmt":"2023-06-28T17:53:30","slug":"ubiquity-und-microformats","status":"publish","type":"post","link":"https:\/\/notiz.blog\/2008\/09\/16\/ubiquity-und-microformats\/","title":{"rendered":"Ubiquity und Microformats"},"content":{"rendered":"\n<p>Ubiquity bietet (neben <a href=\"https:\/\/web.archive.org\/web\/20120630183520\/http:\/\/mike.kaply.com\/2008\/03\/17\/operator-09-is-available\/\">Operator<\/a>) endlich einen echten Anwendungsfall f\u00fcr die <em>Microformats Firefox API<\/em>. Die <a href=\"https:\/\/web.archive.org\/web\/20120503100548\/https:\/\/developer.mozilla.org\/en\/Using_microformats\">Microformats API<\/a> basiert auf JavaScript und l\u00e4sst sich somit auch direkt (und ohne viel Aufwand) in die <a href=\"https:\/\/wiki.mozilla.org\/Labs\/Ubiquity\/Commands_In_The_Wild\">Ubiquity-Commands<\/a> integrieren.<\/p>\n\n\n\n<p>Das folgende wirklich sinnvolle Beispiel z\u00e4hlt alle <a href=\"http:\/\/microformats.org\/wiki\/hCard\">hCards<\/a> einer Seite und gibt das Ergebnis als <a href=\"https:\/\/wiki.mozilla.org\/Labs\/Ubiquity\/Ubiquity_0.1_Author_Tutorial#Hello_World:_The_First_Command\">System-Message<\/a> aus:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">Components.utils.import(<span class=\"hljs-string\">\"resource:\/\/gre\/modules\/Microformats.js\"<\/span>);\nCmdUtils.CreateCommand({\n  <span class=\"hljs-attr\">name<\/span>: <span class=\"hljs-string\">\"count-hcards\"<\/span>,\n  <span class=\"hljs-attr\">execute<\/span>: <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span>(<span class=\"hljs-params\"><\/span>) <\/span>{\n    <span class=\"hljs-keyword\">var<\/span> doc = Application.activeWindow.activeTab.document;\t\n    <span class=\"hljs-keyword\">var<\/span> uFcount = Microformats.count(<span class=\"hljs-string\">'hCard'<\/span>, doc);\n    displayMessage( uFcount );\n  }\n})<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Martin McEvoy hat ein paar wesentlich schickere Commands gebaut, die mit Hilfe des <a href=\"https:\/\/web.archive.org\/web\/20100413130036\/http:\/\/transformr.co.uk\/\">Transformrs<\/a> Mikroformate verarbeitet. Da f\u00fcr diese Verarbeitung ein Redirect (oder das \u00f6ffnen einer zweiten Seite) notwendig ist, \u00fcberpr\u00fcft er mit Hilfe der Microformats-API zuerst ob sich die notwendigen Mikroformate \u00fcberhaupt auf der Seite befinden.<\/p>\n\n\n\n<p>Der folgende Code (von Martin) testet z.B. ob mind. ein hCalendar verf\u00fcgbar ist, bevor er diesen verarbeitet:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">CmdUtils.CreateCommand({\n  icon: <span class=\"hljs-string\">\"http:\/\/transformr.co.uk\/favicon.ico\"<\/span>,\n  name: <span class=\"hljs-string\">\"get-webcal\"<\/span>,\n  author: {name: <span class=\"hljs-string\">\"Martin McEvoy\"<\/span>, email: <span class=\"hljs-string\">\"weborganics@googlemail.com\"<\/span>},\n  help: <span class=\"hljs-string\">\"Subscribe to a webcal feed using the \n&lt;a href=\\\"http:\/\/microformats.org\/wiki\/hcalendar\\\"&gt;hCalendar&lt;\/a&gt; Microformat.\"<\/span>,\n  preview: <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-params\">( pblock )<\/span> <\/span>{\n    pblock.innerHTML = <span class=\"hljs-string\">\"Subscribe to web calendar\"<\/span>;\n  },\n  execute: <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\n    <span class=\"hljs-keyword\">var<\/span> doc = Application.activeWindow.activeTab.document;\n    <span class=\"hljs-keyword\">var<\/span> mFcount = Microformats.count(<span class=\"hljs-string\">'hCalendar'<\/span>, doc,{ showHidden : <span class=\"hljs-keyword\">true<\/span> });\n    <span class=\"hljs-keyword\">if<\/span> (mFcount &gt; <span class=\"hljs-number\">0<\/span>) {\n      <span class=\"hljs-keyword\">var<\/span> url = <span class=\"hljs-string\">\"webcal:\/\/transformr.co.uk\/hcalendar\/\"<\/span>;\n      url += CmdUtils.getWindowInsecure().location ; \n      Utils.openUrlInBrowser(url);\n    } <span class=\"hljs-keyword\">else<\/span> {\n      displayMessage(<span class=\"hljs-string\">'Sorry No hCalendar Events Found!'<\/span>);\n    }\n  }\n})<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Quelle: <a href=\"https:\/\/web.archive.org\/web\/20081121062147\/http:\/\/transformr.co.uk\/commands\">http:\/\/transformr.co.uk\/commands<\/a><\/p>\n\n\n\n<p>Weitere gro\u00dfartige Ubiquity-Commands im <a href=\"http:\/\/microformats.org\/wiki\/ubiquity\">Microfromats-Wiki<\/a>&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ubiquity bietet (neben Operator) endlich einen echten Anwendungsfall f\u00fcr die Microformats Firefox API. Die Microformats API basiert auf JavaScript und l\u00e4sst sich somit auch direkt (und ohne viel Aufwand) in die Ubiquity-Commands integrieren. Das folgende wirklich sinnvolle Beispiel z\u00e4hlt alle hCards einer Seite und gibt das Ergebnis als System-Message aus: Martin McEvoy hat ein paar [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"webmentions_disabled_pings":false,"webmentions_disabled":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":""},"categories":[2],"tags":[130,164,536,724],"class_list":{"0":"post-1141","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-web","7":"tag-firefox","8":"tag-microformats","9":"tag-semantic-html","10":"tag-ubiquity","11":"h-entry","12":"hentry"},"_links":{"self":[{"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/posts\/1141","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/comments?post=1141"}],"version-history":[{"count":5,"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/posts\/1141\/revisions"}],"predecessor-version":[{"id":22727,"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/posts\/1141\/revisions\/22727"}],"wp:attachment":[{"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/media?parent=1141"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/categories?post=1141"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/tags?post=1141"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}