Jump to content

Manual:$wgResourceModuleSkinStyles

From mediawiki.org
This page is a translated version of the page Manual:$wgResourceModuleSkinStyles and the translation is 100% complete.
ResourceLoader: $wgResourceModuleSkinStyles
既存の ResourceLoader モジュールに対する外装提供の追加的なスタイルシートの配列。
導入されたバージョン:1.24.0 (Gerrit change 141259; git #3971d064)
除去されたバージョン:使用中
許容される値:(多次元配列)
既定値:[]
この構成オプションは拡張機能で使用してはいけません。 固有の ResourceLoader モジュールには外装ごとの書式を提供するため、必ず skinStyles プロパティを採用してください。 これは外装専用であり、既存のモジュール自体をカスタム化するために用います。

$wgResourceModuleSkinStyles グローバルによって外装は追加のスタイルシートを持ち込み、既存の ResourceLoader モジュールをカスタム化します。 外装は修正の対象で skin.json 内の ResourceModuleSkinStyles キーを編集します。 拡張機能ごとにモジュールの書式を外装単位でカスタム化するには、ResourceLoader モジュールにある skinStyles キーを設定します。

これら2つの方法で既定の書式の上書きが楽に(あるいは可能に)なり、ほとんどのページでは使用しない書式を読み込まず、外装が残す書式のフットプリントを低減します。 一例として、特定の外装に Special:UserLogin ページ表示を上書きする CSS コードが大量に含まれる場合、これを別の CSS もしくは LESS ファイルに置いて 'mediawiki.special.userlogin.login.styles' を上書きさせると、ResourceLoader は個別のページでこのモジュールが必要な場合に限り、その外装の CSS を読み込みます。

$wgResourceModuleSkinStyles は多次元数列。 第1レベルには(外装/拡張機能の)パッケージ名が含まれ、追加の書式設定(以下の例の "foo")を補完します。 第2レベルはキーと値のペア:

  • キー(key)とは常にモジュール名で、それぞれ別の書式を適用するべきです。 既定では定義した内容で、このモジュールに関してそれ自体の書式を定義済みの CSS/LESS ファイルを 置き換え ます。 対照するモジュール名の先頭に + 記号を付けると、すでに定義済みの書式に自作のスタイルを追加 するため、ファイル全体を置き換えるのではなく、すべてのスタイルを保持 した上で、自作の書式の定義のみ上書き/追加。
  • (value)は対応するファイルの関連パス。 単一のモジュールに複数のファイルを追加でき、アレー内に書き込みます。

Vector はこの方式を採用する外装の一つであり、実用的な 使い方のデモを適切に示します。 定義は ResourceModuleSkinStyles キーの箇所を参照してください。

ResourceLoader モジュールの定義と使い方の基本情報は、$wgResourceModules  の説明文書を参照してください。

説明文書

特定の ResourceLoader について、その他の拡張機能の ResourceModules キーが定義済みの書式を改変する時はskin.json 内の ResourceModuleSkinStyles キーを使ってください。

$wgResourceModuleSkinStyles を使って定義した書式はのちに既存のモジュールに対する skinStyles 一覧に追加します。 styles 一覧は改変も無効化もできません。

一例として、ResourceLoader モジュールbar の定義の場合:

$wgResourceModules['bar'] = [
  'scripts' => 'resources/bar/bar.js',
  'styles' => 'resources/bar/main.css',
];

そして、こちらはその他の書式を外装 Foo が示す見せ方です。

$wgResourceModuleSkinStyles['foo'] = [
  'bar' => 'skins/Foo/bar.css',
];

これがほぼ等価なものは右のとおり。

$wgResourceModules['bar'] = [
  'scripts' => 'resources/bar/bar.js',
  'styles' => 'resources/bar/main.css',
  'skinStyles' => [
    'foo' => 'skins/Foo/bar.css',
  ],
];

もしそのモジュールが skinStyles 内に特定の外装に対するエントリを定義してある場合は、$wgResourceModuleSkinStyles を無視します。

個別のモジュールが skinStyles['default'] を定義すると、外装はそれを置換せず拡張しようとする場合があります。 接頭辞 + を使って実施。

例:

$wgResourceModules['bar'] = [
  'scripts' => 'resources/bar/bar.js',
  'styles' => 'resources/bar/basic.css',
  'skinStyles' => [
    'default' => 'resources/bar/additional.css',
  ],
];
// § <code>+</code> に注意。
$wgResourceModuleSkinStyles['foo'] = [
  '+bar' => 'skins/Foo/bar.css',
];

これがほぼ等価なものは右のとおり。

$wgResourceModules['bar'] = [
  'scripts' => 'resources/bar/bar.js',
  'styles' => 'resources/bar/basic.css',
  'skinStyles' => [
    'default' => 'resources/bar/additional.css',
    'foo' => [
      'resources/bar/additional.css',
      'skins/Foo/bar.css',
    ],
  ],
];

言い換えるなら、外装が無効にしない可能性のあるスタイルシートには、モジュールの執筆者の皆さんに styles 一覧を使ってもらう必要があります。 示した既定の書式が拡張もしくは置換の対象であるなら、skinStyles['default'] を採用。

$wgResourceModules に関しては、パスは MediaWiki ルートへの相対が既定です。 常に localBasePath および remoteBasePath(またはremoteExtPathremoteSkinPath)を必ず提示してください。

例:

$wgResourceModuleSkinStyles['foo'] = [
  'bar' => 'bar.css',
  'quux' => 'quux.css',
  'remoteSkinPath' => 'Foo',
  'localBasePath' => __DIR__,
];
MediaWiki バージョン:
1.25
Gerrit change 161173

MediaWiki UI の書式をクリア

MediaWiki コアには MediaWiki UI CSS ResourceLoader モジュールとして default skinStyles を追加、既定の書式設定を外装が上書きできるようにします。 極端な例を挙げると、ほとんどの書式を除去した場合:

$wgResourceModuleSkinStyles['foo'] = [
        'mediawiki.ui' => [],
        'mediawiki.ui.checkbox' => [],
        'mediawiki.ui.radio' => [],
        'mediawiki.ui.anchor' => [],
        'mediawiki.ui.button' => [],
        'mediawiki.ui.input' => [],
        'mediawiki.ui.icon' => [],
        'mediawiki.ui.text' => [],
);

関連項目