Extension:Highlight Links in Category
リリースの状態: 安定 |
|
|---|---|
| 実装 | ユーザー インターフェイス, 自分のウィキ |
| 説明 | Adds a CSS class to links pointing to members of a category |
| 作者 | Brent Laabs (BrentLaabsトーク) |
| 最新バージョン | 0.9.0 (2026-02-18) |
| 互換性の方針 | master が後方互換性を維持しています。 |
| MediaWiki | 1.40+ |
| データベースの変更 | いいえ |
|
$wgHighlightLinksInCategory |
|
| ライセンス | MIT ライセンス |
| ダウンロード | GitHub:
readme |
| 例 | allthetropes.org |
Highlight Links in Categoryは、あるカテゴリのメンバーを指すリンクにCSSクラスを追加する拡張機能です。
インストール
- Downloadして、ファイルを
extensions/フォルダー内のHighlightLinksInCategoryという名前のディレクトリ内に配置します。 - 以下のコードを LocalSettings.php ファイルの末尾に追加します:
wfLoadExtension( 'HighlightLinksInCategory' );
完了 – ウィキの「Special:Version」に移動して、拡張機能が正しくインストールされたことを確認します。
構成パラメーター
- $wgHighlightLinksInCategory
- このグローバルは、どのカテゴリに CSS クラスが追加されるかを設定する配列です。キーはカテゴリ名で、空白ではなく「_」 (アンダースコア) を含む必要があります。「Category:」(カテゴリ:) は含めないでください。各キーの値は、そのカテゴリに追加したい CSS クラスです。たとえば、以下のようになります。
$wgHighlightLinksInCategory = array(
"Disambiguation_pages" => 'disambig',
"Templates" => 'templates',
);
複数のクラスを追加する場合は、以下のようにクラス名をスペースで区切ってください。
$wgHighlightLinksInCategory = array( "My_Cat" => "class1 class2 class3" );
好きなだけ追加できますが、UXの観点からすると、500種類のスタイルリンクを追加するのはすごいことではないのかもしれません。
$wgHighlightLinksInCategory が設定されていないか、空である場合、この拡張機能は何もしません。
Wikiファームを運営していて、いくつかのWikiでこれをオフにする必要がある場合、$wgHighlightLinksInCategory = nullを設定してください; false を使用すると、正しくない動作につながる可能性があります。
スタイル
これらのリンクに必要なスタイルを、あなたのwikiのMediaWiki:Common.cssに追加するだけです。たとえば
a.disambig {
color: rebeccapurple
}
a.templates {
font-weight: bold;
background-color: #efe;
}
あるカテゴリを他のカテゴリより優先させたい場合は、CSS で指定する必要があります。
a.templates.disambig {
font-weight: normal;
background-color: transparent;
color: rebeccapurple;
}
あるいは、代わりに元のa.templatesルールを a.templates:not(.disambig)として定義することもできたでしょう。
リンクアイコンのアプローチもあります。
a.superlink {
background-image: url(super.png);
padding-left: 16px;
}
利用者の切り替え
このハイライトの切り替えを簡単に設定する方法は、CSS を含む Gadget を作成することです。そう、これはパーソナライズ部分を他の拡張機能に外部委託するパーソナライズの拡張機能です。夜も眠れるようになりました。
動作の仕組み
MediaWikiがどのリンクされたページが存在するか決定した直後に(レッドリンクを作成するために)、GetLinkColoursフックを実行します(LinkHolderArray.phpを参照)。
そのページにリンクされているすべてのページIDのリストがあるので、データベースのクエリを実行すれば、これらのリンクのうち、強調したいカテゴリのセットに含まれるものを確認することができます。
このクエリは categorylinks テーブルのインデックスに対してのみ発生するので、それなりに高速です。
そして、$wgHighlightLinksInCategoryでユーザが設定した構成値を使って、結果に基づいてCSSクラスが割り当てられます。
CSSの仕組みの説明は、ドキュメントの範囲外です。
既知の問題点
- CSS スタイルはFlowに追加されません。なぜなら、そこでは GetLinkColorsフックを呼び出していないようです。
| この拡張機能は以下のウィキ ファーム/ウィキ ホスト/パッケージに含まれています: |
