/* Copyright (c) 2008 Leandro Lopez (inkel) See the file LICENSE.txt for licensing information. */ // Inspired by TransFormr http://transformr.co.uk/ Components.utils.import("resource://gre/modules/Microformats.js"); function dcmf(node, validate) { if (node) { Microformats.parser.newMicroformat(this, node, "dublincore", validate); } } dcmf.prototype.isValid = function() { for(var p in this) if(this[p]) return true; return false; } var dcmf_definition = { mfVersion: 0.8, mfObject: dcmf, className: "dublincore", properties: { 'contributor': { }, 'coverage': { }, 'creator': { }, 'date': { datatype: "dateTime" }, 'description': { }, 'format': { }, 'identifier': { }, 'language': { }, 'publisher': { }, 'relation': { datatype: "anyURI" }, 'rights': { }, 'source': { }, 'subject': { }, 'title': { value: 'Untitled' }, 'type': { }, // 'created': { } }, validate: function(node) { var classes = ''; for(var p in this.properties) { classes += " or contains(concat(' ', @class, ' '), ' " + p + " ')"; } var xpathExpression = "count(descendant::*[" + classes.substring(4) + "])"; var xpathResult = (node.ownerDocument || node).evaluate(xpathExpression, node, null, Components.interfaces.nsIDOMXPathResult.ANY_TYPE, null).numberValue; if (xpathResult == 0) { throw("Unable to create microformat"); } return true; } }; Microformats.add("dublincore", dcmf_definition); CmdUtils.CreateCommand({ //icon: "http://localhost:7453/semweb/dcmf/dcmf.png", icon: "data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%10%00%00%00%10%08%03%00%00%00(-%0FS%00%00%03%00PLTE%ED_%01%F3%A0b%F9%F1%D6%F7%BAY%F1%9C%5E%FD%C9b%F5%CF%AC%F6%B6T%FE%C8Y%F8%C2%94%F7%ED%DA%F6%A85%F6%B8V%F8%F6%E6%F2%B5%60%F3%C2%7B%F6%D4%9E%F6%DA%AA%FD%CEt%F3%A20%F5%B5%81%FD%CCr%F5%B1M%FB%96I%F8%DA%A3%F1%A4j%F1%95T%F4%7F%2B%F3%B9%8B%FD%CAp%FF%D1f%F7%C0%91%F7%E1%C6%FD%D0w%FA%ACo%FB%DF%9E%F8%EF%DA%F0%849%F8%D1%8C%F5%CD%A7%F6%C3%95%F8%EE%D1%F6%B4S%EF%9B%2C%F7%E9%CA%F5%94M%F8%E9%D3%F5%8EC%F9%D6%B3%F5%C1t%F3m%11%EEb%04%EFc%05%ED%60%02%FBy%1B%FAw%19%EEa%03%F1g%09%F9v%18%F2i%0B%F0e%07%F7%AC8%F0%9A(%F3k%0D%FAx%1A%EFd%06%F5n%10%F7r%14%F6p%12%F8%F8%E9%F4l%0E%F0%99'%F7%AD9%F8t%16%F3%A2%2F%F4%A41%F4m%0F%F4%A52%F9u%17%F3%A1.%FBz%1C%F0f%08%FF%CBY%FF%CCZ%F3j%0C%F5%A63%FE%C1P%FF%CAX%F2%A0-%F2%9F%2C%FF%C9W%FE%C0O%F8s%15%FE%C3R%F5o%11%FE%C2Q%FF%C8V%FF%CD%5B%FE%C4S%FF%C7U%FF%CE%5C%FE%C5T%F2h%0A%FF%CF%5D%F1%9C*%FE%BFN%F5%A74%F6%AA6%FF%C6U%F1%9D*%F5%A85%FE%BEM%F1h%0A%F6%A96%F6%AB7%F1%9D%2B%F1%9B)%F6q%13%FF%C7V%FE%C6T%F6%AA7%EF%98%26%F1%9C)%FE%C5S%F2%9E%2B%FE%BDL%F7q%13%FF%C8W%F8%AE%3A%F1f%08%FE%C3Q%FE%C4R%F4%A30%EDa%03%F5%A73%F2%9F-%F7s%15%F2%9E%2C%F5%A84%FBx%1A%F0%9B(%FCz%1C%F0d%06%F7%AB8%F8u%17%F2j%0C%F2%9E%60%F7%AC9%F0%9A'%FF%CBZ%FE%C1O%F5%D2%9C%F0%9B)%F7%AB7%FF%CAY%FE%C2P%F9%F0%D0%F6o%11%F2%9Fa%FF%CC%5B%FF%D0%5E%F9%F1%D1%F5%D3%9D%F7%AD%3A%F4%A62%F0%99%26%F3%A0.%F3%9Fa%F5m%0F%F8%C1%92%FE%BFM%FF%CD%5C%F9%C3%94%F8%C2%93%F4%A2d%FE%C0N%F3l%0E%F4%A40%F7%AE%3A%FE%BCK%F0%98%26%F9%F0%D1%F1%9E%2B%F3%A1%2F%F6%CF%90%F8%B0%3E%EDi%10%F4%A51%F6%E5%CE%F5%A62%F8%F7%E8%F2%A0.%F4%A54%F4%D2%9C%F7%F5%E6%F5%D5%A3%F7%E7%C5%ECb%05%F5%BE%90%F0%A06%F6%A4e%F2%BCo%F8%DF%AE%F7%B4~%F9%E9%C3%FF%CB_%F6%CE%8C%F9%C9%9C%FB%E6%AB%F5p%13%FD%D9%7F%FC%84%2C%F9%CC%A2%F6%C7%7F%F3%89%3D%F4o%12%F7%C5%99%F4%821%F8%D6%99%FC%883%FC%DB%92%F5%D3%9C%FF%CE%5D%F3%A1c%FD%D2z%F8%E7%C1%F8%E5%CC%F3%AFz%F7%E4%C0%F5%DB%AF%F7%DA%BB%FC%D2%85%F7%F2%DE%FD%D9%89%F1%A9I%F9%F1%D4%F4%A88%FA%C0%8E%F6%E2%BE%F8%E5%BD%FA%EB%BE%F7%EB%CE%F7%EC%CF%F7%EC%D0%F0%88%40%F4%8B%40%F5%8FD%EDg%0E%F8%C0%91%F3%A44%F4%B5Z%FA%C2%91%F7%EA%D4%F7%F7%E9%F8%F8%EB%F8%F8%EA%0E%C4%0Eg%00%00%00FtRNS%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%00i%96D%D0%00%00%00%09pHYs%00%00%0B%12%00%00%0B%12%01%D2%DD~%FC%00%00%00%F0IDAT%18%95cp%85%83K%E9)%F3%83%E4%18%20%1C%26%09%09%D7%F4%94%C4%A0%A82%88%C0%CE%C5%93%FB%5DS%82gE%25%A7%02%05%DE*%B9z%D8%CE%CCv%0D%0E%AF%CFIjbp%ED%0D0s%B5-%CA%E6v%8DJ(o%8E%8Ff00%EB6w-%CA%CEksMN%8D%9D%1D%9D%CF%B0%C6%C1%DC%CA%B50%AF%CD%D7%B5%BA)%2C3%BF%96a%8D%B9%95%9F%2B%90%EF%0D%B5%9Ca%8D%D5%84%18%D7P%DF%16%AFe%91%DB2J%EC%5C%198%3Dc%9C%5D%81%FC%FD%91%C5%193%EC%DC%5D%19%D6v8%BB%B8%1E%F0%8A%00%F2%7B%A6%2C%ADteXY%E7%E2%E4%E3%CA%2B%20%B0%E8%EE%F4%E9%3A%403%E4%81%7C%FB%10%A3u%F7%19%19%E7M%02%19*%0F%E2%A7Y%06%DA%98%18%5B%98%82%04%B8%DC%EC'%02%F9%7D%20%3E%C8c%0C%AE%F6%D6%05%966%8E%60%FEQ%A0%00%00h5Xbt1%CB%D3%00%00%00%00IEND%AEB%60%82", name: "dcmf", author: { name: "Leandro López", email: "inkel.ar@gmail.com" }, contributors: ["Eva Méndez", "Alejandro Gonzalo Bravo García"], description: "Extracts Dublin Core Microformats", help: "Search the current page for Dublin Core Microformats and extacts them.", _count_dcmf: function(doc) { return Microformats.count('dublincore', doc, { showHidden : true }); }, preview: function ( pblock ) { var doc = Application.activeWindow.activeTab.document; var mfs = Microformats.get('dublincore', doc, { showHidden: true }); if(mfs.length > 0) { var preview = CmdUtils.renderTemplate('