aboutsummaryrefslogtreecommitdiffstats
path: root/PMWriter.js
diff options
context:
space:
mode:
authoranekos2009-03-02 15:05:25 +0000
committeranekos2009-03-02 15:05:25 +0000
commitb4d7e25e090d081b024b46123a98a2e6441c8e46 (patch)
tree1f13ab45413f47b2580faafebd0f81b5bfee1516 /PMWriter.js
parent6a1d6440d5b5641bca23e7566739b363dbaa3d51 (diff)
downloadvimperator-plugins-b4d7e25e090d081b024b46123a98a2e6441c8e46.tar.bz2
なにかしらんけど、変更したのでコミット
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@30713 d0d07461-0603-4401-acd4-de1884942a52
Diffstat (limited to 'PMWriter.js')
-rw-r--r--PMWriter.js74
1 files changed, 63 insertions, 11 deletions
diff --git a/PMWriter.js b/PMWriter.js
index d4b93c6..a60fcb2 100644
--- a/PMWriter.js
+++ b/PMWriter.js
@@ -2,6 +2,7 @@
/*
* さわるなきけん!
* DO NOT USE!
+ * このコードを読むと失明する場合があります。
* */
@@ -39,6 +40,23 @@
//};
}
+ let langselector =
+ <div>
+ <style><![CDATA[
+ .lang-hide { display: none }
+ ]]></style>
+ <script language="javascript"><![CDATA[
+ var element = document.createElement('style');
+ document.getElementsByTagName('head')[0].appendChild(element);
+ var lang = 'default';
+ if (/^ja/.test(window.navigator.language))
+ lang = 'ja';
+ element.sheet.insertRule('.lang-' + lang + ' { display: block !important }', 0);
+ document.write(sheet);
+ ]]></script>
+ </div>;
+
+ //'<style><![CDATA[ .lang-ja { display: none } ]]></style>');
function action () {
const IOService = services.get('io');
@@ -91,6 +109,26 @@
return result;
}
+ function allLang (tag, info, utf, f) {
+ if (!f)
+ f = function (v) v;
+
+ let ff = utf ? function (v) fromUTF8Octets(f(v).toString())
+ : f
+
+ if (!tag)
+ tag = 'div';
+
+ let result = <></>;
+
+ for (let i = 0, l = info.length(); i < l; i++) {
+ let it = info[i];
+ result += <{tag} class={'lang-hide '+(i==0?"lang-default ":'')+(i==l-1?'lang-ja ':'')+"lang-"+(it.@lang.toString()||'default')}>{ff(it)}</{tag}>;
+ }
+
+ return result;
+ }
+
let myname = __context__.NAME;
let otags = liberator.eval('tags', liberator.plugins.pluginManager.list);
@@ -178,16 +216,28 @@
// プラグイン毎のドキュメント
{
- let src = pluginInfo.detail.toString();
- //let detailBody = liberator.plugins.PMWikiParser(src.split(/\n/));
- let detailBody = plugin.info.detail
+ //let src = pluginInfo.detail.toString();
+ let detailBody = allLang('div',
+ pluginInfo.detail,
+ false,
+ function (v) liberator.plugins.PMWikiParser.parse(fromUTF8Octets(v.toString())));
+ //let detailBody = plugin.info.detail
+ let title = allLang('span',
+ pluginInfo.name,
+ true,
+ function (it) (it.toString() || '---'))
+ let description = allLang('span',
+ pluginInfo.description,
+ true,
+ function (it) (it.toString()) || '---')
let body = <div>
+ <div>{langselector}</div>
<div class="information" id="information">
- <h1>{plugin.info.name.toString()}</h1>
+ <h1>{title}</h1>
<div>
<dl>
<dt>Description</dt>
- <dd>{plugin.info.description || '---'}</dd>
+ <dd>{description}</dd>
<dt>Latest version</dt>
<dd>{plugin.info.version || '???'}</dd>
<dt>Vimperator version</dt>
@@ -199,7 +249,10 @@
<dt>Author</dt>
<dd>{authors}</dd>
<dt>License</dt>
- <dd>{plugin.info.license || '--'}</dd>
+ <dd>{allLang('span',
+ pluginInfo.license,
+ true,
+ function (v) (v || '--'))}</dd>
</dl>
</div>
</div>
@@ -210,7 +263,7 @@
io.getFile(outputDir + htmlFilename),
<html>
<head>
- <title>{plugin.info.name.toString()}</title>
+ <title>{pluginFilename}</title>
<link rel="stylesheet" href="plugin.css" type="text/css" />
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
</head>
@@ -220,17 +273,15 @@
</html>.toString()
);
allHtml += body;
- }
- // index.html
- {
+ // index.html
indexHtml += <tr class="plugin">
<td class="name">
<a href={CodeRepos + pluginFilename} class="coderepos" target="_blank">{"\u2606"}</a>
<a href={htmlFilename} class="link">{plugin.name}</a>
</td>
<td class="description">
- {plugin.info.description}
+ {description}
</td>
<td class="author">
{authors}
@@ -253,6 +304,7 @@
<script type="text/javascript">
Hatena.Star.Token = '48e8f4c633307a76a4dd923111e22a25e80b6e8a';
</script>
+ {langselector}
<style><![CDATA[
.hatena-star-comment-container {
display: none;