MediaWiki:Gadget-edit0.js
外观
注意:在发布之后,您可能需要清除浏览器缓存才能看到所作出的更改的影响。
- Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5或Ctrl-R(Mac为⌘-R)
- Google Chrome:按Ctrl-Shift-R(Mac为⌘-Shift-R)
- Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5。
// [[en:MediaWiki:Gadget-edittop.js]]
// **********************************************************************
// ** ***WARNING GLOBAL GADGET FILE*** **
// ** changes to this file affect many users. **
// ** please discuss on the talk page before editing **
// ** **
// **********************************************************************
// Simplified and optimized version for Chinese (zh) locales.
(function() {
'use strict';
// 优化点 1:使用 mw.loader.using 确保依赖加载完成
// 确保 mediawiki.util 和 jQuery 模块已加载
mw.loader.using(['mediawiki.util', 'jquery']).then(function() {
// 优化点 2:提前获取配置,避免重复调用 mw.config.get
var config = mw.config.get([
'wgAction',
'wgNamespaceNumber',
'wgUserLanguage',
'wgPageName'
]);
// 优化点 3:简化条件判断,提前返回
// 仅在查看或清除缓存页面,且为内容命名空间时运行
if (!['view', 'purge'].includes(config.wgAction) || config.wgNamespaceNumber < 0) {
return;
}
// 优化点 4:使用 const 声明常量,增强代码可读性和可维护性
const EDIT_SUMMARY = '/* top */ ';
const TITLES = {
'zh': '编辑首段',
'zh-hans': '编辑首段',
'zh-hant': '編輯首段'
};
// 优化点 5:使用箭头函数和更简洁的语法
$(function() {
const userLang = config.wgUserLanguage;
// 优化点 6:使用可选链操作符 (?.) 简化默认值获取
const editTitle = TITLES[userLang] || '编辑首段';
// 优化点 7:使用更精确的选择器,减少 DOM 查询
const $content = $('#content, #mw_content').first();
const $firstEditSection = $content.find('span.mw-editsection:not(.plainlinks):first');
if (!$firstEditSection.length) {
return;
}
const $clonedEditSection = $firstEditSection.clone();
// 优化点 8:使用更高效的 DOM 插入方式
$('#mw_header h1, #content h1').first().append($clonedEditSection);
// 优化点 9:使用 text() 而不是 attr('title') 来设置标题
// 因为 title 属性的值就是元素的文本内容
$clonedEditSection.find('a').text(editTitle).each(function() {
const $link = $(this);
const originalHref = $link.attr('href') || '';
let newHref;
// 优化点 10:使用 switch 语句替代复杂的 if-else 嵌套
if (!/&(ve|)section=T/.test(originalHref)) {
newHref = originalHref.replace(/&(ve|)section=\d+/, `&$1section=0&summary=${encodeURIComponent(EDIT_SUMMARY)}`);
} else if (/&vesection=/.test(originalHref)) {
newHref = mw.util.getUrl(config.wgPageName, {
veaction: 'edit',
vesection: 0,
summary: EDIT_SUMMARY
});
} else {
newHref = mw.util.getUrl(config.wgPageName, {
action: 'edit',
section: 0,
summary: EDIT_SUMMARY
});
}
$link.attr('href', newHref);
});
});
});
})();