Manual:$wgResourceModuleSkinStyles
| ResourceLoader: $wgResourceModuleSkinStyles | |
|---|---|
| 既存の ResourceLoader モジュールに対する外装提供の追加的なスタイルシートの配列。 |
|
| 導入されたバージョン: | 1.24.0 (Gerrit change 141259; git #3971d064) |
| 除去されたバージョン: | 使用中 |
| 許容される値: | (多次元配列) |
| 既定値: | [] |
| その他の設定: アルファベット順 | 機能順 | |
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(またはremoteExtPathかremoteSkinPath)を必ず提示してください。
例:
$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' => [],
);
関連項目
- ResourceLoader
$wgResourceModules- あとでページに読み込めるモジュールを登録する$wgResourceModuleSkinStyles- 既存の ResourceLoader モジュールに追加する、外装付帯スタイルシートを登録する$wgResourceLoaderDebug- MediaWiki の既定のデバッグ モードを構成する- Internal configuration settings:
$wgExtensionAssetsPath,$wgResourceLoaderMaxage ResourceLoaderRegisterModuleshook- Developing with ResourceLoader – Learn how to use ResourceLoader in MediaWiki