From 984f070cec08f03bc02c0b992884b1417c1330dd Mon Sep 17 00:00:00 2001
From: anekos
Date: Tue, 9 Dec 2008 08:19:19 +0000
Subject: License を追加 全ての項目で lang が効くようにした。
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@26204 d0d07461-0603-4401-acd4-de1884942a52
---
pluginManager.js | 75 +++++++++++++++++++++++++++++++-------------------------
1 file changed, 42 insertions(+), 33 deletions(-)
diff --git a/pluginManager.js b/pluginManager.js
index d53bfda..c1f1c85 100644
--- a/pluginManager.js
+++ b/pluginManager.js
@@ -4,7 +4,7 @@ var PLUGIN_INFO =
Manage Vimperator Plugin
Vimpeatorプラグインの管理
teramako
-0.1
+0.2
2.0pre
2.0pre
{info.author.toString()}>;
- if (info.author.@homepage.toString() != '')
- xml += <> {makeLink(info.author.@homepage.toString())}>;
- if (info.author.@mail.toString() != '')
- xml += <> ({makeLink("mailto:"+info.author.@mail)})>;
+ var xml = <>{info.toString()}>;
+ if (info.@homepage.toString() != '')
+ xml += <> {makeLink(info.@homepage.toString())}>;
+ if (info.@mail.toString() != '')
+ xml += <> ({makeLink("mailto:"+info.@mail)})>;
return xml;
},
- description: function(info){
- if (!info.description) return null;
- var desc = info.description[0].toString();
- for (let i=info.description.length(), lang=lang.split('-', 2).shift(); i-->1;){
- if (info.description[i].@lang == lang){
- desc = info.description[i].toString();
- break;
- }
- }
- for (let i=info.description.length(); i-->1;){
- if (info.description[i].@lang == lang){
- desc = info.description[i].toString();
- break;
- }
- }
- return makeLink(fromUTF8Octets(desc));
+ description: function(info) makeLink(fromUTF8Octets(info.toString())),
+ license: function(info) {
+ var xml = <>{info.toString()}>;
+ if (info.@document.toString() != '')
+ xml += <> {makeLink(info.@document.toString())}>;
+ return xml;
},
- version: function(info) info.version || null,
- maxVersion: function(info) info.maxVersion || null,
- minVersion: function(info) info.minVersion || null,
+ version: id,
+ maxVersion: id,
+ minVersion: id,
detail: function(info){
- if (!info.detail)
- return null;
+ if (info.* && info.*[0].nodeKind() == 'element')
+ return info.*;
- if (info.detail.* && info.detail.*[0].nodeKind() == 'element')
- return info.detail.*;
-
- var text = fromUTF8Octets(info.detail.*.toString());
+ var text = fromUTF8Octets(info.*.toString());
var lines = text.split(/\r\n|[\r\n]/);
var xml = <>>;
var ite = Iterator(lines);
@@ -127,6 +117,25 @@ var tags = {
return xml;
}
};
+function chooseByLang (elems) {
+ if (!elems)
+ return null;
+ function get (lang) {
+ for (let i=elems.length(); i-->1;){
+ if (elems[i].@lang == lang)
+ return elems[i];
+ }
+ }
+ return get(lang) || get(lang.split('-', 2).shift()) || elems[0] || elems;
+}
+for (let it in Iterator(tags)) {
+ let [name, value] = it;
+ tags[name] = function (info) {
+ if (!info[name])
+ return null;
+ return value.call(tags, chooseByLang(info[name]));
+ };
+}
function makeLink(str){
return XMLList(str.replace(/(?:https?:\/\/|mailto:)\S+/g, '$&'));
}
--
cgit v1.2.3