プロジェクト:ウィキ技術部/スクリプト開発/trunk/withWTECH.js

/************************************************************************/
// ja> =ウィキ技術部開発版スクリプトの体験リンク機能=
//   > [[プロジェクト:ウィキ技術部]]で開発されているスクリプトを
//   > 簡単に体験するためのリンクを生成する機能。
//   > [[Help:WithJS withCSS]]の、動作する名前環境が異なるものとほぼ同じ
/************************************************************************/
mw.loader.using( ['mediawiki.util'], function () {
	const extraCSS = mw.util.getParamValue( 'withWTECHCSS' );
	const extraJS = mw.util.getParamValue( 'withWTECHJS' );
    const ns = mw.config.get("wgFormattedNamespaces")[102];
    const target = "^(" + ns + "|" + encodeURI(ns) + "):(ウィキ技術部|" + encodeURI("ウィキ技術部") + ")/(スクリプト開発|" + encodeURI("スクリプト開発") +")/(trunk|tags|branches)/.+\."

	if ( extraCSS ) {
        console.log(extraCSS);
        console.log(extraCSS);
		// WARNING: DO NOT REMOVE THIS "IF" - REQUIRED FOR SECURITY (against XSS/CSRF attacks)
		if ( new RegExp(target + "css$").test( extraCSS ) ) {
			mw.loader.load( '/w/index.php?title=' + encodeURIComponent( extraCSS ) + '&action=raw&ctype=text/css', 'text/css' );
		} else {
			mw.notify( 'ウィキ技術部のページのみ許可されます。', { title: 'Invalid withWTECHCSS value' } );
		}
	}

	if ( extraJS ) {
		// WARNING: DO NOT REMOVE THIS "IF" - REQUIRED FOR SECURITY (against XSS/CSRF attacks)
		if ( new RegExp(target + "js$").test( extraJS ) ) {
			mw.loader.load( '/w/index.php?title=' + encodeURIComponent( extraJS ) + '&action=raw&ctype=text/javascript' );
		} else {
			mw.notify( 'ウィキ技術部のページのみ許可されます。', { title: 'Invalid withWTECHJS value' } );
		}
	}
});