MediaWiki:Gadget-edit0.js:修订间差异
外观
小无编辑摘要 |
小无编辑摘要 |
||
| 第7行: | 第7行: | ||
// ** ** | // ** ** | ||
// ********************************************************************** | // ********************************************************************** | ||
// | // 基于原始代码优化,仅保留中文(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加载完成后执行 | // 当DOM加载完成后执行 | ||
$(function | $(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)) { // | if (!/&(ve|)section=T/.test(href)) { // 非嵌入页面 | ||
href = href.replace(/&(ve|)section=\d+/, `&$1section=0&summary=/*%20top%20*/%20`); | |||
} else if (/&vesection=/.test(href)) { // 嵌入页面,VE编辑器 | |||
} else if (/&vesection=/.test(href)) { // | 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'; | |||
} else { // | |||
} | } | ||
$link.attr('href', href); | |||
}); | }); | ||
}); | }); | ||
} | |||
})(); | |||
2025年11月12日 (三) 12:40的版本
// [[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);
});
});
})();