「MediaWiki:Minerva.js」の版間の差分
細 (ページの白紙化) タグ: 白紙化 差し戻し済み |
細編集の要約なし タグ: 手動差し戻し |
||
| 1行目: | 1行目: | ||
/***************************** | |||
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); | |||
*/ | |||
2024年7月20日 (土) 15:27時点における最新版
/*****************************
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);
*/