diff options
author | teramako | 2008-12-07 14:02:28 +0000 |
---|---|---|
committer | teramako | 2008-12-07 14:02:28 +0000 |
commit | 12126df778b6ffe0b7f24fe0d13fcdb3e1b90d04 (patch) | |
tree | 90411ac303576c1d0532d0329b776081b248a4a2 /pluginManager.js | |
parent | 56bad7a64d31859373e52dd8a10836fa718b17f3 (diff) | |
download | vimperator-plugins-12126df778b6ffe0b7f24fe0d13fcdb3e1b90d04.tar.bz2 |
情報の詳細とURLのリンク
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@26068 d0d07461-0603-4401-acd4-de1884942a52
Diffstat (limited to 'pluginManager.js')
-rw-r--r-- | pluginManager.js | 67 |
1 files changed, 54 insertions, 13 deletions
diff --git a/pluginManager.js b/pluginManager.js index 3d17583..9b4f06a 100644 --- a/pluginManager.js +++ b/pluginManager.js @@ -3,7 +3,10 @@ var PLUGIN_INFO = <name>{NAME}</name> <description>Manage Vimperator Plugin</description> <description lang="ja">Vimpeatorプラグインの管理</description> -<version>0.1a</version> +<author mail="teramako@gmail.com" homepage="http://d.hatena.ne.jp/teramako/">teramako</author> +<version>0.1</version> +<minVersion>2.0pre</minVersion> +<maxVersion>2.0pre</maxVersion> <detail><![CDATA[ これはVimperatorプラグインの詳細情報orヘルプを表示するためのプラグインです。 == Command == @@ -12,12 +15,40 @@ var PLUGIN_INFO = 省略すると全てのプラグインの詳細を表示します。 オプション -v はより細かなデータを表示します -== Mapping == -none +== for plugin Developer == +プラグインの先頭に + var PLUGIN_INFO = ... とE4X形式でXMLを記述してください + 各要素は下記参照 + +== 要素 == +name: + プラグイン名 +description: + 簡易説明 + 属性langに"ja"などと言語を指定するとFirefoxのlocaleに合わせたものになります。 +author: + 製作者名 + 属性mailにE-Mail、homepageにURLを付けるとリンクされます +version: + プラグインのバージョン +maxVersion: + プラグインが使用できるvimperatorの最大バージョン +minVersion: + プラグインが使用できるvimperatorの最小バージョン +detail: + ここにコマンドやマップ、プラグインの説明 + CDATAセクションにwikit的に記述可能 + +== wiki書式 == +* == title == でh1 +* definition: (最後に":")で定義リストのdt + 後続が空行でない、かつ、最後が":"でないならば、定義リストのdd +* mailto: ... , http:// ... はリンクになります == ToDo == -* E-Mail and URL link -* 更新通知&アップデート機能 +* 更新通知 と アップデート機能 +* wiki書式の追加 + ]]></detail> </VimperatorPlugin>; @@ -26,7 +57,15 @@ liberator.plugins.pluginManager = (function(){ var lang = window.navigator.language; var tags = { name: function(info) info.name ? fromUTF8Octets(info.name.toString()) : null, - author: function(info) info.author || null, + author: function(info) { + if (!info.author) return null; + var xml = <>{info.author.toString()}</>; + if (info.author.@homepage.toString() != '') + xml += <><span> </span>{makeLink(info.author.@homepage.toString())}</>; + if (info.author.@mail.toString() != '') + xml += <><span> </span>({makeLink("mailto:"+info.author.@mail)})</>; + return xml; + }, description: function(info){ if (!info.description) return null; var desc = info.description[0].toString(); @@ -42,7 +81,7 @@ var tags = { break; } } - return fromUTF8Octets(desc); + return makeLink(fromUTF8Octets(desc)); }, version: function(info) info.version || null, maxVersion: function(info) info.maxVersion || null, @@ -63,30 +102,32 @@ var tags = { while ([num, line] = ite.next()){ if (!line) continue; if (/^\s*==(.*)==\s*$/.test(line)){ - line = RegExp.$1; - xml += <h1 style="font-weight:bold;font-size:medium;">{line}</h1>; + xml += <h1 style="font-weight:bold;font-size:medium;">{makeLink(RegExp.$1)}</h1>; continue; } let reg = /^\s*(.*)\s*:\s*$/; if (reg.test(line)){ - let dl = <dl/>; + let dl = <dl><dt>{makeLink(RegExp.$1)}</dt></dl>; while ([num, line] = ite.next()){ if (!line) break; if (reg.test(line)){ - dl.* += <dt>{RegExp.$1}</dt>; + dl.* += <dt>{makeLink(RegExp.$1)}</dt>; } else { - dl.* += <dd>{line.replace(/^\s+|\s+$/g, "")}</dd>; + dl.* += <dd>{makeLink(line.replace(/^\s+|\s+$/g, ""))}</dd>; } } xml += dl; continue; } - xml += <>{line}<br/></>; + xml += <>{makeLink(line)}<br/></>; } } catch (e){} return xml; } }; +function makeLink(str){ + return XMLList(str.replace(/(https?:\/\/|mailto:)[^\s]+/g, '<a href="#" highlight="URL">$&</a>')); +} function fromUTF8Octets(octets){ return decodeURIComponent(octets.replace(/[%\x80-\xFF]/g, function(c){ return "%" + c.charCodeAt(0).toString(16); |