Extension:Highlight Links in Category
![]() リリースの状態: 安定 |
|
---|---|
![]() |
|
実装 | ユーザー インターフェイス, 自分のウィキ |
説明 | Adds a CSS class to links pointing to members of a category |
作者 | Brent Laabs (BrentLaabsトーク) |
最新バージョン | 0.9.0 (2021-05-29) |
MediaWiki | 1.25+ |
データベースの変更 | いいえ |
ライセンス | MIT ライセンス |
ダウンロード | readme repository |
例 | https://allthetropes.org/ |
$wgHighlightLinksInCategory |
|
Highlight Links in Categoryは、あるカテゴリのメンバーを指すリンクにCSSクラスを追加する拡張機能です。
問題やバグを報告するには、Miraheze Phabricatorを使用してください。
インストール
- ダウンロードして、ファイルを
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フックを呼び出していないようです。
関連項目
- Category:LinkEnd extensions - その他の方法でリンクをカスタマイズする
この拡張機能は以下のパッケージ/ウィキファームに含まれています: This is not an authoritative list. Some wiki farms/hosts may contain this extension even if they are not listed here. Always check with your wiki farms/hosts or bundle to confirm. |
この拡張機能は Miraheze が作成しました。 Miraheze にはない問題点があるかもしれません。 バグの報告や設定変更の依頼は、ウィキメディアの Phabricator ではなく、Miraheze Phabricator でお願いします。 |