User:哈里布莱/js/bestcat.js
来自Vocawiki
更多操作
注意:在发布之后,您可能需要清除浏览器缓存才能看到所作出的更改的影响。
- Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl + F5或Ctrl + R(Mac为⌘ R)
- Google Chrome:按Ctrl + Shift + R(Mac为⌘ Shift R)
- Edge:按住Ctrl的同时单击刷新,或按Ctrl + F5。
$(function () {
const $container = $('#catlinks');
const $normalSection = $container.find('.mw-normal-catlinks');
const $ul = $normalSection.find('ul');
if (!$ul.length) return;
const dateCats = [];
const normalCats = [];
const dateRegex = /(\d{2,4}年|\d{1,2}月|\d{1,2}日|\d{4}[-/]\d{1,2}([-\/]\d{1,2})?)/;
$ul.children('li').each(function () {
const $li = $(this);
const text = $.trim($li.text());
if (dateRegex.test(text)) {
dateCats.push($li);
} else {
normalCats.push($li);
}
});
// 保留HotCat挂钩
const $hotcatArea = $container.find('.catlinks-allhidden, .catlinks-hotcat, .catlinks-add');
$ul.empty();
// 创建分块
function makeBlock(title, items) {
if (items.length === 0) return null;
const $div = $('<div class="cat-split-block">');
const $list = $('<ul>');
items.forEach($li => $list.append($li));
$div.append(title, ":​", $list);
return $div;
}
const blocks = [
makeBlock('分类', normalCats),
makeBlock('日期分类', dateCats)
].filter(Boolean);
$ul.append(blocks);
if ($hotcatArea.length) {
$ul.after($hotcatArea);
}
});