「MediaWiki:Minerva.js」の版間の差分

提供:大乱闘スマッシュブラザーズWiki
編集の要約なし
編集の要約なし
76行目: 76行目:
return makeMenuItemChild(a[0], a[1], a[2]);
return makeMenuItemChild(a[0], a[1], a[2]);
}).join('');
}).join('');
console.log(items);
DOM_NAVIGATION.append(items);
DOM_NAVIGATION.append(items);
}
}
addToNavigationsMenu(PARAMS_NAVIGATIONS_MENU);
*/
*/

2024年7月20日 (土) 15:20時点における版

/*****************************
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);
*/