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 **
// ** **
// **********************************************************************
// 基于原始代码优化,仅保留中文(zh)、简体中文(zh-hans)和繁体中文(zh-hant)支持。
(function() {
'use strict';
// 提前获取所有需要的配置项,避免重复调用 mw.config.get
const config = mw.config.get([
'wgAction',
'wgNamespaceNumber',
'wgUserLanguage',
'wgPageName'
]);
// 仅在“查看”或“清除缓存”页面,并且是内容命名空间(非特殊页面)时执行
if ($.inArray(config.wgAction, ['view', 'purge']) === -1 || config.wgNamespaceNumber < 0) {
return;
}
// 当DOM加载完成后执行
$(function() {
// 1. 语言文本配置
// 简化映射,直接对应 MediaWiki 的语言变体
const editTexts = {
'zh': '编辑首段',
'zh-hans': '编辑首段',
'zh-hant': '編輯首段'
};
const defaultEditText = '编辑首段';
// 2. 查找必要的DOM元素
const $contentArea = $('#content, #mw_content').first();
const $firstEditSection = $contentArea.find('span.mw-editsection:not(.plainlinks):first');
// 如果找不到原始编辑区块(例如页面不可编辑),则退出
if (!$firstEditSection.length) {
return;
}
// 3. 克隆并添加编辑区块到标题
const $clonedEditSection = $firstEditSection.clone();
$('#mw_header h1, #content h1').first().append($clonedEditSection);
// 4. 修改克隆链接的文本和URL
const editTitle = editTexts[config.wgUserLanguage] || defaultEditText;
$clonedEditSection.find('a').each(function() {
const $link = $(this);
let href = $link.attr('href') || '';
// 设置链接的显示文本和悬停提示
$link.text(editTitle).attr('title', editTitle);
// 修改链接地址
if (!/&(ve|)section=T/.test(href)) { // 非嵌入页面
href = href.replace(/&(ve|)section=\d+/, `&$1section=0&summary=/*%20top%20*/%20`);
} else if (/&vesection=/.test(href)) { // 嵌入页面,VE编辑器
href = mw.util.getUrl(config.wgPageName) + '?veaction=edit&vesection=0&summary=/*%20top%20*/%20';
} else { // 嵌入页面,传统编辑器
href = mw.util.getUrl(config.wgPageName) + '?action=edit§ion=0&summary=/*%20top%20*/%20';
}
$link.attr('href', href);
});
});
})();