Jump to content

Extension:Highlight Links in Category

From mediawiki.org
This page is a translated version of the page Extension:Highlight Links in Category and the translation is 100% complete.
MediaWiki 拡張機能マニュアル
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という名前のディレクトリ内に配置します。
    開発者とコード寄稿者は、上記の代わりに以下を使用してGitからインストールします:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/HighlightLinksInCategory
  • 以下のコードを LocalSettings.php ファイルの末尾に追加します:
    wfLoadExtension( 'HighlightLinksInCategory' );
    
  • Yes 完了 – ウィキの「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フックを呼び出していないようです。

関連項目