MediaWiki:Minerva.js

提供:大乱闘スマッシュブラザーズWiki
2024年7月20日 (土) 15:27時点におけるWIKIMASA (トーク | 投稿記録)による版
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

注意: 保存後、変更を確認するにはブラウザーのキャッシュを消去する必要がある場合があります。

  • Firefox / Safari: Shift を押しながら 再読み込み をクリックするか、Ctrl-F5 または Ctrl-R を押してください (Mac では ⌘-R)
  • Google Chrome: Ctrl-Shift-R を押してください (Mac では ⌘-Shift-R)
  • Internet Explorer / Microsoft Edge: Ctrl を押しながら 最新の情報に更新 をクリックするか、Ctrl-F5 を押してください
  • Opera: Ctrl-F5を押してください
/*****************************
Mobileスキンのメニューを追加するコード。
PARAMS_ARTICLES_MENU: メニューの最上段ブロックの下に新たに追加するブロックの内容
パラメータ: [表示名, アイコンクラス名, 記事名]
*****************************/
const PARAMS_ARTICLES_MENU = [
	['シリーズ紹介', 'minerva-icon--die', '大乱闘スマッシュブラザーズシリーズ'],
	['ファイター', 'minerva-icon--die', 'ファイター'],
	['アクション', 'minerva-icon--die', 'アクション'],
	['テクニック', 'minerva-icon--die', 'テクニック'],
	['ゲームモード', 'minerva-icon--die', 'ゲームモード'],
	['ステージ', 'minerva-icon--die', 'ステージ'],
	['アイテム', 'minerva-icon--die', 'アイテム'],
	['音楽', 'minerva-icon--die', '音楽'],
];
//設定ここまで
//注意:oo-ui-iconElementアイコン系はそれが存在するページを開いたことがある状態じゃないと表示できない

//以下、コード記述。
var WIKI_URL = '/myappswiki/index.php';
var DOM_NAVIGATION = $('#p-navigation');

/**
 *
 * @param items {(string, string, string)[][]}
 */
function makeArticlesMenu(params) {
	const items = makeMenuItemsParent(
		params.map(function (a) {
			return makeMenuItemChild(a[0], a[1], a[2]);
		})
	);
	DOM_NAVIGATION.after(items);
}

/**
 * @param children {string[]}
 */
function makeMenuItemsParent(children) {
	const strChildren = children.join('');
	return '<ul class="toggle-list__list">' + strChildren + '</ul>';
}

/**
 * @param label {string}
 * @param icon {string}
 * @param pagename {string}
 */
function makeMenuItemChild(label, icon, pagename) {
	const a =
		'<li class="toggle-list-item "> \
          <a class="toggle-list-item__anchor " href="' +
		WIKI_URL +
		'/' +
		pagename +
		'" data-mw="interface"> \
          <span class="minerva-icon ' +
		icon +
		'"></span> \
          <span class="toggle-list-item__label">' +
		label +
		'</span> \
          </a> \
          </li>';
	return a;
}

makeArticlesMenu(PARAMS_ARTICLES_MENU);

//メモ:ES6には未対応。

/*
const PARAMS_NAVIGATIONS_MENU = [['最近の更新', 'minerva-icon--history', '特別:最近の更新']];
function addToNavigationsMenu(params) {
	const items = params.map(function (a) {
		return makeMenuItemChild(a[0], a[1], a[2]);
	}).join('');
	DOM_NAVIGATION.append(items);
}
addToNavigationsMenu(PARAMS_NAVIGATIONS_MENU);
*/