コンテンツにスキップ

英文维基 | 中文维基 | 日文维基 | 草榴社区

利用者:Marsian/12

手入れ・コピペ・ページ移動・その他なんでも(GFDLの範囲で)ご自由にどうぞ. - Marsian / talk 2005年11月9日 (水) 14:05 (UTC)

ナヴィゲーション ポップアップ (en:Wikipedia:Tools/Navigation popups) を導入すると、ポインタをリンクの上に載っけたときに小窓がポップアップするようになり、いろいろ便利な機能が使えるようになります(リンク表記はいまのところ英語がメイン)。

特徴

[編集]
  • 利用者の投稿履歴を開ける
  • 利用者の編集数をカウントできる(Kate's toolで)
  • 利用者にe-mailを送れる
  • ページを編集できる
  • ページの履歴を開ける
  • ページをウォッチリストに追加/から削除
  • ページのノート(会話)ページを開ける/編集できる
  • 「このページへリンクしているページ」(what links here) を開ける
  • 「最近更新したページ」(related changes) を開ける
  • 管理者なら、保護/保護解除・削除・投稿ブロックができる
  • 利用者のアップロードや移動などのログ、ブロックログを開ける
  • 利用者ページのサブページを一覧表示できる ⇒ たぶん「All pages (利用者 namespace)」ってやつ
  • ウィキペディアでの検索と、 global Wikipedia search ができる
  • ページの冒頭部分がプレビュー(ちょっと見る)できる(en:User:Pilaf の Live Preview script のおかげ)
  • 画像のリンクから画像をプレビューできる
  • 各ページの最初の画像をプレビューできる
  • ページがリダイレクト・スタブ・曖昧さ回避だったらそうとわかる
  • ページの情報がわかる: サイズ・内部リンクの数・画像の数・カテゴリの数・最終更新日
  • (オプション)リダイレクトや曖昧さ回避ページを自動的に迂回(バイパス)できる
  • (オプション)ショートカットキーに対応
スキンとサブページ名の対応
- テキトーに作ったから間違ってるかも……
スキン名 サブページ名
javascrips (.js) スタイルシート (.css)
MonoBook
(デフォルト)
monobook.js monobook.css
Simple simple.js simple.css
Classic standard.js standard.css
Amethyst amethyst.js amethyst.css
MySkin myskin.js myskin.css
Cologne Blue cologneblue.js cologneblue.css
Nostalgia nostalgia.js nostalgia.css
Chick chick.js chick.css

インストール

[編集]

利用者ページのサブページを編集することでインストールできます。[[利用者:(ユーザ名)/(スキン名).js]] というページ —(ユーザ名)は自分のユーザ名、(スキン名)は自分が使っているスキン名 — を編集します。たとえば、デフォルトスキンの MonoBook を使っている場合、 [[利用者:(ユーザ名)/monobook.js]] を編集することになります。

  • 具体的には、自分の利用者ページに [[/monobook.js]] という赤リンクを作り、それを編集すればいいでしょう。

頭文字を大文字にした Monobook.js ではだめです。他のスキンを使っている人は、対応する [[/(スキン名).js]] を同様に編集して下さい(表参照)。

サブページを開いたら、次の文をコピーアンドペーストで張り付けて下さい:

// [[User:Lupin/popups.js]]

document.write('<script type="text/javascript" src="' 
             + 'http://en-two.iwiki.icu/w/index.php?title=User:Lupin/popups.js' 
             + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');

保存したら、画面の指示に従って、使用しているブラウザに適した方法でキャッシュをクリアしてください。内部リンクの上にポインタ(カーソル)を置くと、ポップアップが表示されるはずです(今のところリンクは英語で表示されます)。

Tip(?): 一度ポップアップが機能しなくなったとき、サブページ ( — .js) を開いてキャッシュをクリアしたら直った,っぽい. - Marsian / talk

開発バージョン

[編集]

開発バージョン (dev) を入れると、現時点 (2005-12-25) での安定版 (stable) では化けてしまうことがある「利用者:foo」の「利用者」なども正しく表示できるようです。次のようにします:

// [[User:Lupin/popupsdev.js]]

document.write('<script type="text/javascript" src="' 
             + 'http://en-two.iwiki.icu/w/index.php?title=User:Lupin/popupsdev.js' 
             + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');

アンインストールするには

[編集]

サブページを編集して、追加した文字列を消去したのち、ブラウザのキャッシュをクリアして下さい。

設定(必要に応じて)

[編集]

外観を変えるには

[編集]

ユーザースタイルシートを編集することで、ポップアップの外観を変更できます。ユーザースタイルシートは、「スキン名.css」という名前で、monobook.js などと同様、[[利用者:(ユーザー名)/monobook.css]] を編集すればいいことになります。

次に示すのは一例です。色調をオレンジっぽくして、ワクを付け、フォントを変えるものです。 (The last line in particular makes the popup look a bit silly, but it shows the sort of thing you can do if you feel like it).

table.popupBorderTable { background: #FFBE20 /* orange */ !important }
table.popupTable { background: #FFFAEF /* pastel orange */ !important }
font.popupFont { font-family: serif !important; color: #440044 !important; font-size: medium !important }

オプション

[編集]

設定できるオプションがいくつかあります。ポップアップをインストールした javascript ファイル([[/monobook.js]] とか)を編集して、次の様式で文字列を追加して下さい

option = value;

ここで、optionvalue はそれぞれ以下の表から選ぶことになります。

一般的な設定オプション
オプション 入れられる変数 デフォルト値 説明
popupDelay 数値 0.5 ポップアップが開くまでの秒数
simplePopups truefalse false ポップアップをシンプルにしたければ true にして下さい。ページ概要(サイズとか)・画像・プレビュー文などが消え去り、ページタイトルとリンクしか表示されなくなります。リンクだけが欲しかったり、回線が細い場合などにどうぞ。
popupStructure 'original', 'fancy', 'fancy2', 'menus' 'menus' ポップアップの構造を選択します。
  • 'menus' : simplePopupsfalse のときのデフォルト値です(つまりは、なんもいじらなけりゃこれ)。ナビゲーションリンク(末端のリンク)を、ポップアップメニュー(actionか項目名、それとuser)へと放り込みます。
  • 'original': simplePopupstrue にしたときのデフォルト値です。ナビゲーションリンクをポップアップ中に全部表示します(メニューによる階層化をしないということ)。
  • 'fancy'fancy2: 'original' の派生。fancyは上下にリンクが並ぶ感じ。fancy2のが実用的な雰囲気。

これらの変数をセットするときはシングルクォーテーション「'」を含めて記述して下さい。たとえば、popupStructure='fancy'; といったように。 Opera ではある理由により 'original' がうまくデフォルトになってくれません(おそらくスクリプトのバグ)。

popupActionsMenu truefalse true true のときは、ポップアップ中に "actions" というメニューが表示されます。false にすると、ポップアップ内のタイトルがこの機能を兼ねることになります。(利用者リンクをポイントしたときの "user" は取り込めない模様)
popupImages truefalse true false にすると、画像が表示されなくなります。
popupAdminLinks truefalse false true にすると、管理者用のコマンド(ブロック・削除・保護/保護解除)がポップアップ内に現れます。
popupShortcutKeys truefalse false true にすると、キーを押すことでポップアップ中のリンクを素早くフォーカス(選択)することができます。ショートカットが用意されているリンクをマウスでポイントすると、ポップアップヒントの最後にショートカットキーが表示されます(?)。たとえば、FirefoxやOperaであれば、 'e Control-Enter' と入力するとポイントした項目を新たなタブで編集できます。(……できるんだけど、どのキーがどれかが微妙にわかりづらい。e: edit, h: history くらいはわかるけど……)
  • Internet Explorerユーザへの注意: ショートカットはうまく機能しません。なお悪いことに、このオプションをオン (true) にするとバグが出ることがわかっていますので、オフのままにしておいて下さい。
popupDragging truefalse true true のとき、Shift キーを押しながらドラッグするとポップアップを動かせます。
popupFixRedirs truefalse true true では、「Redirects」というリンクを押すことで、リダイレクトページをバイパスします。ただちに保存したくない場合、次の popupRedirAutoClick'wpSave' から変えて下さい。

要約欄にはデフォルトでは「Popups-assisted redirection bypass from リダイレクトページ to 目標のページ」と出ます。

popupRedirAutoClick 'wpSave', 'wpPreview', 'wpDiff' 'wpSave' 「リダイレクトリンクを修正」したときに、編集画面で自動的に押されるボタンを選びます。
  • 'wpSave': 保存
  • 'wpPreview': プレビューの表示
  • 'wpDiff': 差分の表示

不安ならプレビューか差分にしとけば安心(慣れてきたら直接保存にするとか)。大量の張り替えに便利だけれど、一度に1つしか張り替えないわけで、批判的な人もいるかもしれない(それ以前に,リダイレクトをバイパスすること自体についての議論もあるけど)。

popupFixRedirsSummary 文字列(シングルクォーテーションでくくること! リダイレクト迂回作業時、要約欄に自動的に記入される文字列。この文字列中には %s を2つ含めることができます。一つ目はリダイレクトページ、二つ目は目標とするページへとそれぞれ置き換えられます。('リダイレクト迂回。%s%s' とか)
popupFixDabs truefalse false true にすると、曖昧さ回避ページへのリンクを、
  1. 選んだリンクにパイプで張り替える(例えば、[[はやぶさ]] ⇒ [[一式戦闘機 (戦闘機)|はやぶさ]]とか)
  2. リンクを外す(地の文にする)→ この場合要約欄にはundefinedと入ってしまう...

とできるハズだが、どうも「{{disambig}}」に反応しているようで、「{{aimai}}」のページに対してはこの機能は働かない模様。 うまくいった場合、結果はすぐには保存されず、いったん差分が表示されます(これを変える方法があるのかは不明)。要約欄にはデフォルトでは「Popups-assisted disambiguation from 曖昧さ回避ページ to 目標のページ」と出ます。要約欄は次の popupFixDabsSummary を設定すると変えられます。

popupFixDabsSummary 文字列(シングルクォーテーションでくくること! 曖昧さ回避ページ迂回作業時、要約欄に自動的に記入される文字列。この文字列中には %s を2つ含めることができます。一つ目は曖昧さ回避ページ、二つ目は目標とするページへとそれぞれ置き換えられます。('aimai迂回。%s%s' とか)
popupNavLinks truefalse true true なら、ナビゲーションリンク(末端のリンク)が表示されます。(これを切るって事は、単にリンク先ページのステータスやサマリを知りたいだけ、という場合かな)
popupLastEditLink truefalse true true なら、ナビゲーションリンク中に "show last edit" が表示されます。クリックすると、最新版とひとつ前の版との差分を表示します。
popupHistoricalLinks truefalse true true なら、過去の版や差分へのリンクをマウスでポイントした際に、「editOld」といった追加的リンクが表示されます(過去版の編集画面に飛ぶのかな)。false であればふつうのリンクと同じです。
popupPreviews truefalse true これが true でかつ simplePopupsfalse ならば(シンプル版にしていないなら)、リンク先ページの冒頭部分がプレビュー表示されます(つまりデフォルトではプレビューがオン)。うまく表示されない場合はこちらでバグ報告を
popupSummaryData truefalse true true なら、リンク先ページの summary(概要)が表示されます。ファイルサイズやリンク数などです(以下参照)。
popupLastModified truefalse true true なら、summary 中に、リンク先ページが最後に編集されてからの期間を示す age(歳)が表示されます。
popupOnlyArticleLinks truefalse true true なら、ふつうの内部リンクのみがポップアップします。false なら、「編集」や「ヘルプ」といったリンクすらもポップアップします。
imagePopupsForImages truefalse true true なら、ページ中で見えている画像にポインタをあわせたとき、ポップアップ中にも同じ画像を表示します。false でこの機能を切ることができます。(← 切れない……)
popupMaxWidth 整数の値(単位: px)か false 300 ポップアップの横幅の最大値をピクセル単位で指定します。false にすると中身を表示できるまでどんどん広がります。pxで指定した方が無難。
popupInitialWidth 整数の値(単位: px)か false false ポップアップの横幅の初期値をピクセル単位で指定します。false にすると、最初に表示されるものが入るだけの大きさで開きます(つまり、リンク先ページのタイトル分の幅で開いて → 文章とか画像とかを読み込むとグイグイ広がる、ってこと(たぶん))。
popupRevertSummary 文字列(シングルクォーテーションでくくること!(たぶん)) エラー: subst: がありません。過去ログ ではなく subst:過去ログ としてください。}}[{{Fullurl:{{subst:FULLPAGENAME}}|oldid=%s}} この版]へリバート' という感じかな?)←管理者専用のような?

たとえば、文字や画像の表示を止めて(リンクだけを表示して)、管理者用メニューを表示したい場合はこのようになります:

// [[User:Lupin/popups.js]]

document.write('<script type="text/javascript" src="' 
             + 'http://en-two.iwiki.icu/w/index.php?title=User:Lupin/popups.js' 
             + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');

simplePopups=true;
popupAdminLinks=true;
技術的なオプション
オプション 入れられる変数 デフォルト値 説明
popupMaxPreviewSentences 整数の値 4 プレビュー時に表示される文の数……じゃないか、

The maximum number of sentences to extract from something approximating the first meaningful paragraph of an article for the preview.

popupMaxPreviewCharacters 整数の値 600 プレビュー時に表示される文字の数……とはちょっと違うのか

The maximum number of characters to extract from something approximating the first meaningful paragraph of an article for the preview.

popupNavLinkSeparator string(ふつうの文) か
' &sdot; '
' &sdot; ' よくわからないので後回し

HTML inserted between the navigation links. This defaults to ' &bull; ' in en:Konqueror and to ' &#183; ' in Microsoft browsers, as they don't appear to like the &sdot; character.

popupAppendRedirNavLinks truefalse true true なら、リダイレクト先のページについての新たなナヴィゲーションリンクが表示されます。false なら、リダイレクトであることは示しますが新たなナヴィゲーションリンクは表示しません。popupNavLinksfalse ならいずれにしろ何もしません。
removeTitles truefalse true true なら、あー……なんだろ

The titles (the default popup hints) of links are moved to the main link of the popup if this is true. If this is false then they're not.

実験的なオプション
以下のオプションはまだ十分にテストされていないため、解説は行いません:
  • popupLiveOptions
  • popupCookies
  • popupUnsimplifyLink.
  • popupPreviewKillTemplates
  • popupPreviewFirstParOnly
One easy way to test them (and other undocumented options) interactively is to set popupLiveOptions=true.

ほかにもオプションが追加されるかもしれません。設定を追加してほしいという要望も歓迎します。

上級カスタマイズ

[編集]

You can define custom filters for articles. These are javascript functions which are run after the page statistics are generated, and their output is appended (as HTML) to that part of the popup.

(注意: simplePopups が true か、popupSummaryData が false であれば何も表示されません)

The way to set this up is to write a filter function which accepts a string (the wikitext of the article) as input, and returns a fragment of HTML. Repeat for as many filters as you want, and then create an array extraPopupFilters which contains all of the functions, in the order in which you want them to be run.

For example, let's say you want to be told whenever the wikitext of an article contains a table written using HTML tags rather than wiki markup. One way to do this is to add the following to your user javascript file:

たとえば、「ある項目が、wikiマークアップでなく HTMLタグで書かかれたテーブル(表)を含んでいたらそれを知りたい」という場合、以下を javascriptファイルに追加するのも1つの方法です:

// initialize the array - only do this once
extraPopupFilters=new Array();

// define the function
function popupFilterHtmlTable (wikiText) {
  if (/<table/i.test(wikiText)) return '&lt;table&gt;';
  else return '';
};

// add the function to the array (you can repeat this for lots of functions)
extraPopupFilters.push(popupFilterHtmlTable);

これで、HTMLテーブルを含むページに対してポップアップした時に、ポップアップ中に <table> が表示されるようになります(ただし、これではこのページなどのページでも表示されてしまうことがあります。このバグの修正は読者に……え?

Then when a popup is generated for a page containing an HTML table, you should see <table> in the popup. (It may also appear for other pages, such as this page. Correcting this defect is left as an exercise for the reader).

ブラウザ固有の問題

[編集]

以下の問題の真相を究明できたら、どうか教えてください

  • Safari でこのスクリプトを動かすと何度もクラッシュしたという報告が何人から寄せられています
  • popupFixDabs が true のとき、曖昧さ回避ページのリンクが全部は表示されない - 少なくとも Internet Explorer のいくつかのヴァージョンで確認されています
  • Internet Explorer ではキーボードショートカットとポップアップのドラッグが作動しません

フィードバック

[編集]

バグ・問題・提言・改善策は Lupin にお願いします。

ちゃんとプレビューが表示されないページのリストを作りました。追加していって下さい

関連項目

[編集]

(どうでもいいけど en: では Related articles でなく See also が正式になったらしい)

クレジットと外部リンク

[編集]

このツールは、作者である Lupin さん以外にも、何人かの仕事によって支えられています:

助けになってくれたウィキペディアン

[編集]
  • en:User:Brian0918 - a little code and lots of inspiration
  • en:User:IceKarma - aborting download code, making much better use of bandwidth
  • en:User:Mike Dillon - 「ページの年齢」のコード
  • User:Zocky - the menus
  • User:Zyxw - プレビューの拡張
  • ……他にもたくさんの人から有益な提言やコメント、バグレポートをいただきました