MediaWiki:Gadget-edit0.js:修订间差异
外观
小无编辑摘要 |
小无编辑摘要 |
||
| 第1行: | 第1行: | ||
// [[en:MediaWiki:Gadget-edittop.js]] | // [[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() { | (function() { | ||
'use strict'; | 'use strict'; | ||
// 确保 mediawiki.util 和 jquery 模块加载完成后再执行 | |||
mw.loader.using(['mediawiki.util', 'jquery']).then(function() { | mw.loader.using(['mediawiki.util', 'jquery']).then(function() { | ||
// 一次性获取所有需要的配置变量 | |||
const config = mw.config.get([ | const config = mw.config.get([ | ||
'wgAction', | 'wgAction', | ||
| 第12行: | 第22行: | ||
]); | ]); | ||
// 仅在查看或清除缓存页面,且为内容命名空间时运行 | |||
if (!['view', 'purge'].includes(config.wgAction) || config.wgNamespaceNumber < 0) { | if (!['view', 'purge'].includes(config.wgAction) || config.wgNamespaceNumber < 0) { | ||
return; | return; | ||
} | } | ||
// 定义常量 | |||
const EDIT_SUMMARY = '/* top */ '; | const EDIT_SUMMARY = '/* top */ '; | ||
const TITLES = { | const TITLES = { | ||
| 第23行: | 第35行: | ||
}; | }; | ||
// DOM 加载完成后执行 | |||
$(function() { | $(function() { | ||
const userLang = config.wgUserLanguage; | const userLang = config.wgUserLanguage; | ||
// 根据用户语言获取对应的编辑链接文本 | |||
const editTitle = TITLES[userLang] || '编辑首段'; | const editTitle = TITLES[userLang] || '编辑首段'; | ||
// 获取内容区域和第一个编辑区块 | |||
const $content = $('#content, #mw_content').first(); | const $content = $('#content, #mw_content').first(); | ||
const $firstEditSection = $content.find('span.mw-editsection:not(.plainlinks):first'); | const $firstEditSection = $content.find('span.mw-editsection:not(.plainlinks):first'); | ||
// 如果找不到编辑区块,则停止执行 | |||
if (!$firstEditSection.length) { | if (!$firstEditSection.length) { | ||
return; | return; | ||
} | } | ||
// 复制编辑区块并添加到标题后面 | |||
const $clonedEditSection = $firstEditSection.clone(); | const $clonedEditSection = $firstEditSection.clone(); | ||
$('#mw_header h1, #content h1').first().append($clonedEditSection); | $('#mw_header h1, #content h1').first().append($clonedEditSection); | ||
// 修改复制出的编辑链接的文本和 href 属性 | |||
$clonedEditSection.find('a').text(editTitle).each(function() { | $clonedEditSection.find('a').text(editTitle).each(function() { | ||
const $link = $(this); | const $link = $(this); | ||
| 第43行: | 第61行: | ||
if (!/&(ve|)section=T/.test(originalHref)) { | if (!/&(ve|)section=T/.test(originalHref)) { | ||
newHref = originalHref.replace(/&(ve|)section=\d+/, `&$1section=0&summary=${encodeURIComponent(EDIT_SUMMARY)}`); | // 非嵌入页面:替换 section 参数 | ||
newHref = originalHref.replace( | |||
/&(ve|)section=\d+/, | |||
`&$1section=0&summary=${encodeURIComponent(EDIT_SUMMARY)}` | |||
); | |||
} else if (/&vesection=/.test(originalHref)) { | } else if (/&vesection=/.test(originalHref)) { | ||
// 嵌入页面,使用VE编辑器:构建新URL | |||
newHref = mw.util.getUrl(config.wgPageName, { | newHref = mw.util.getUrl(config.wgPageName, { | ||
veaction: 'edit', | veaction: 'edit', | ||
| 第51行: | 第74行: | ||
}); | }); | ||
} else { | } else { | ||
// 嵌入页面,使用传统编辑器:构建新URL | |||
newHref = mw.util.getUrl(config.wgPageName, { | newHref = mw.util.getUrl(config.wgPageName, { | ||
action: 'edit', | action: 'edit', | ||
2025年11月12日 (三) 11: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 **
// ** **
// **********************************************************************
// Simplified and optimized version for Chinese (zh) locales.
(function() {
'use strict';
// 确保 mediawiki.util 和 jquery 模块加载完成后再执行
mw.loader.using(['mediawiki.util', 'jquery']).then(function() {
// 一次性获取所有需要的配置变量
const config = mw.config.get([
'wgAction',
'wgNamespaceNumber',
'wgUserLanguage',
'wgPageName'
]);
// 仅在查看或清除缓存页面,且为内容命名空间时运行
if (!['view', 'purge'].includes(config.wgAction) || config.wgNamespaceNumber < 0) {
return;
}
// 定义常量
const EDIT_SUMMARY = '/* top */ ';
const TITLES = {
'zh': '编辑首段',
'zh-hans': '编辑首段',
'zh-hant': '編輯首段'
};
// DOM 加载完成后执行
$(function() {
const userLang = config.wgUserLanguage;
// 根据用户语言获取对应的编辑链接文本
const editTitle = TITLES[userLang] || '编辑首段';
// 获取内容区域和第一个编辑区块
const $content = $('#content, #mw_content').first();
const $firstEditSection = $content.find('span.mw-editsection:not(.plainlinks):first');
// 如果找不到编辑区块,则停止执行
if (!$firstEditSection.length) {
return;
}
// 复制编辑区块并添加到标题后面
const $clonedEditSection = $firstEditSection.clone();
$('#mw_header h1, #content h1').first().append($clonedEditSection);
// 修改复制出的编辑链接的文本和 href 属性
$clonedEditSection.find('a').text(editTitle).each(function() {
const $link = $(this);
const originalHref = $link.attr('href') || '';
let newHref;
if (!/&(ve|)section=T/.test(originalHref)) {
// 非嵌入页面:替换 section 参数
newHref = originalHref.replace(
/&(ve|)section=\d+/,
`&$1section=0&summary=${encodeURIComponent(EDIT_SUMMARY)}`
);
} else if (/&vesection=/.test(originalHref)) {
// 嵌入页面,使用VE编辑器:构建新URL
newHref = mw.util.getUrl(config.wgPageName, {
veaction: 'edit',
vesection: 0,
summary: EDIT_SUMMARY
});
} else {
// 嵌入页面,使用传统编辑器:构建新URL
newHref = mw.util.getUrl(config.wgPageName, {
action: 'edit',
section: 0,
summary: EDIT_SUMMARY
});
}
$link.attr('href', newHref);
});
});
});
})();