MediaWiki‐ノート:Common.js

記事名チェック機能についての議論は/記事名チェッカで行っています。

EnhancedCollapsibleElementsの廃止、collapsibleの統合

現在、ウィキペディア日本語版では折りたたみ要素が4種類もあります(EnhancedCollapsibleElements、mw-collapsible、collapsible、NavFrame)。mw-collapsibleはMediaWiki本体から提供されており、collapsibleとNavFrameは他言語版からの輸入、EnhancedCollapsibleElementsは日本語版独自となっています。今のウィキペディア日本語版には機能の重複が多い要素を4種類もサポートする余力がないので、将来的にはMediaWikiのデベロッパーからのサポートを受けられるmw-collapsibleに一本化したいと思いますが、今回はまずEnhancedCollapsibleElementsを廃止してmw-collapsibleに移行することと、collapsibleをmw-collapsibleに統合することを提案します。

  • collapsible:機能がmw-collapsibleとほとんど同じであり、統合にはそれほど手間がかかりません。具体的には、英語版などで使用されているスクリプトを移入して、collapsibleとcollapsedクラスをmw-collapsedとmw-collapsibleに自動変換します。なお、{{Navbox}}における使用はmw-collapsibleに移行済みです。
  • EnhancedCollapsibleElements:現在、MediaWiki:License(除去提案中)、{{Delete}}、{{即時削除/エラー}}、{{編集フィルターの警告}}系で使用されています。mw-collapsibleより高機能ですが、使用数が少なく、現時点での使用が除去提案中のMediaWiki:Licenseを除きいずれもmw-collapsibleで代替できると判断します。
  • NavFrameもできれば移行したいところですが、標準名前空間における使用が5,000ページ以上であり、移行に時間がかかるので、今回はいったん見送ります。

--ネイ会話2021年9月18日 (土) 05:03 (UTC)返信

合意成立と判断して、collapsibleの統合を実施しました。EnhancedCollapsibleElementsについてはMediaWiki:Licenseにおける使用が除去済みで、それ以外は後ほど作業に取り掛かります。--ネイ会話2021年9月25日 (土) 16:16 (UTC)返信
チェック 作業が完了しました。--ネイ会話2021年9月26日 (日) 05:50 (UTC)返信

記事名チェッカ廃止提案のお知らせ

MediaWiki‐ノート:Common.js/記事名チェッカ#廃止提案にて、記事名チェッカの廃止を提案しています。--ネイ会話2021年9月25日 (土) 16:33 (UTC)返信

editintroのためのコード

Infoboxが設置されていることを検知(正確にはInfobox内にあるCSSクラスを検知)してeditintroを選択するコードが追加されたようです。対象のInfobox専用のカテゴリや隠しカテゴリを作り、Infoboxにそれを含めることで、カテゴリを検知するコードだけで済ませることはできないでしょうか。JavaScriptコードはできるだけ単純なほうがいいと思います。

他に、IDを検知するコードがありますが、こちらは実際に使われているのでしょうか。--whym会話2025年4月21日 (月) 03:12 (UTC)返信

コメント &editintro=のクエリパラメータは1つしか追加できないので、検知順序に気を払う必要はありますが、カテゴリ検知への一本化でも反対しません。IDの検知コードは前回の更新以前からありましたが、現在使われている形跡はなく、同じテンプレートが複数回同じページ上で参照読み込みされた場合、HTMLに同一IDが2つ以上追加されるという問題もあるのでこちらは除去でもいいと思います。 --Dragoniez (talk) 2025年4月29日 (火) 08:29 (UTC)返信
リファクタリングしたコードを置いておきます。(Common.jsといえども、もうES5縛りである必要はありませんよね?)
/**
 * Magic editintros
 *
 * Appends `&editintro=Template:hogehoge` to the query parameters of edit links
 * on the page dynamically, referring to the categories that the page belongs to.
 */
if ( mw.config.get( 'wgNamespaceNumber' ) === 0 ) {

	/**
	 * @param {string} title The template title without a namespace prefix.
	 */
	const addEditIntro = ( title ) => {
		$( '.mw-editsection, #ca-edit, #ca-ve-edit' ).find( 'a' ).each( function ( _, el ) {
			el.href = $( this ).attr( 'href' ) + '&editintro=' + mw.util.wikiUrlencode( 'Template:' + title );
		});
	};

	/**
	 * Mapping from category titles to template titles to use for editintro (both
	 * with no namespace prefix).
	 *
	 * Note: Currently, MediaWiki supports addition of only one editintro, since query
	 * parameters must be unique (see also [[phab:T390419]]). The order of registration
	 * in this Map object determines which editintro should be prioritized than another.
	 *
	 * @type {Map<string, string>}
	 */
	const editintroMap = new Map( [
		['存命人物', 'BLP editintro'],
		['Youtube personality', 'Infobox YouTube personality editintro'],
		['学校記事', '学校記事 editintro'],
		['鉄道車両関連', 'RRS editintro']
	] );
	const categories = new Set( mw.config.get( 'wgCategories' ) );

	$( function () {
		for ( const [ cat, temp ] of editintroMap ) {
			if ( categories.has( cat ) ) {
				addEditIntro( temp );
				return;
			}
		}
	} );

}
--Dragoniez (talk) 2025年5月6日 (火) 12:48 (UTC)返信
Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9

Portal di Ensiklopedia Dunia

Kembali kehalaman sebelumnya