2023年政策修订增补工作正在进行中,欢迎参与!
User:D41D8CD98F/minerva.js
跳转到导航
跳转到搜索
注意:在保存之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。
- Firefox/Safari:按住“Shift”的同时单击“刷新”,或按“Ctrl-F5”或“Ctrl-R”(Mac为“⌘-R”)
- Google Chrome:按“Ctrl-Shift-R”(Mac为“⌘-Shift-R”)
- Internet Explorer:按住“Ctrl”的同时单击“刷新”,或按“Ctrl-F5”
- Opera:在“工具→首选项”中清除缓存
- 如果您已登录但该页面出现未登录状态,请尝试在地址栏的地址最后添加代码
?_=1
来访问最新页面。 - 添加代码后的本页地址如下:
-{R|https://moegirl.icu/User:D41D8CD98F/minerva.js?_=1}-
(function() {
// 来自百度的访问默认跳转zh版
// 不需要在所有东西加载完毕后再执行,因此不放在 $(function(){...}) 里面
if(document.referrer.includes('//www.bai' + 'du.com/'))
location = 'https://zh.moegirl.org.cn' + location.pathname + location.search;
mw.loader.using('mobile.site').then(function() {$(function() {mw.loader.using('mediawiki.Uri').then(function() {$('body').off('click')})})});
function withElem(s) {
return new Promise(function(r) {
if ($(s).length) r($(s));
new MutationObserver(function(rec,self) {
$.each(rec, function(i,v) {
var t = $(v.addedNodes).filter(s);
if (t.length) self.disconnect(), r(t)
})
}).observe(document.body, {childList: true, subtree: true})
})
}
if ((mw.config.get('wgCanonicalSpecialPageName') === 'MobileEditor' || location.hash === '#/editor/0') && location.search.includes('&redlink=1'))
location = '/' + mw.config.get('wgPageName').replace('Special:移动版编辑器/', '');
// 避免使用 MobileFrontend 的编辑器
if (mw.config.get('wgAction') === 'view') $.when($.ready, mw.loader.using('skins.minerva.editor')).always(function() {
var editlink = '/index.php?action=edit&title='+encodeURIComponent(mw.config.get('wgPageName'))+'&oldid='+mw.config.get('wgRevisionId');
$('a.edit-page').each(function() { $(this).off('click').prop('href', editlink + '§ion=' + $(this).data('section')) });
$('#ca-edit').off('click').empty().append($('<a>').prop('href', editlink));
});
if (mw.config.get('wgAction') === 'edit') {
withElem('#wpMinoredit').then(function(e) { e.prop('checked', true) });
return;
}
$(document).on('click.D4.customized.heimu', '.heimu', function() {
$(this).removeClass('heimu').addClass('heimu-off');
return false;
});
// “页顶提示模板相关”,利用了[[MediaWiki:Mobile.css]]中的样式
$(function($) {
var infoBoxes = [],
cont = $('<div id="commonBoxContainer"><div id="commonBoxInfo"><div id="commonBoxList"></div></div></div>'),
list = cont.find('#commonBoxList');
$('.mf-section-0').children().each(function() {
var self = $(this);
if (!self.is('.infoBox')) return;
infoBoxes.push(this);
var btn = $('<div class="commonBoxButton">').appendTo(list);
btn.append(self.find('.infoBoxIcon')).find('img').css({
'width': 'auto',
'max-height': '45px',
});
btn.css({
'width': 'auto',
'height': '50px',
'vertical-align': 'bottom',
'border-color': self.css('border-left-color'),
}).on('click touchend', function() {
$(infoBoxes).not(self).hide();
self.toggle();
btn.toggleClass('current', self.css('display') !== 'none');
btn.siblings().removeClass('current');
list.toggleClass('open', btn.hasClass('current'));
return false;
});
});
cont.prependTo($('.mf-section-0'));
$(infoBoxes).appendTo(cont).hide();
});
if (mw.config.get('wgCanonicalSpecialPageName') === 'MobileDiff') {
// 在[[special:移动版差异/xxx]]页面加一个指向[[special:固定链接/xxx]]的链接
// 以及增加切换至桌面版差异显示方式的功能
withElem('.revision-history-links').then(function(a) {
var pageName = mw.config.get('wgPageName');
var revs = /\/(\d+)(?:\.\.\.(\d+))?/.exec(mw.config.get('wgTitle'));
var link = $('<a>固定链接</a>').attr('href', '/' + pageName.replace('移动版差异', '固定链接'));
var desktopdiff = $('<a id="D4-show-desktop-diff" href>桌面版差异</a>');
$(document).on('click.D4.customized.showdesktopdiff', '#D4-show-desktop-diff', function(e) {
if (!$('table.diff')[0]) $.get('/api.php', $.extend(
{ format: 'json', formatversion: 2, action: 'compare', fromrev: revs[1] },
revs[2] ? { torev: revs[2] } : { torelative: 'prev' }
)).then(function(data) {
$('#mw-mf-minidiff').css('display', 'none').before($('<table class="diff">').append($(data.compare.body)));
mw.hook('wikipage.diff').fire($('table.diff'))
});
return false
});
a.prepend(a.children('.revision-history-prev'), $('<li>').append(link), $('<li>').append(desktopdiff))
});
// 处理中文wiki在生成差异时错误增加的空格(桌面版差异也有此问题,对此的处理在[[User:D41D8CD98F/common.js]])
// 另外移动版差异还有段落间隔莫名消失问题,这里也顺便补救
withElem('#mw-mf-minidiff').then(function(t) {
t.children('.mw-diff-inline-changed').contents().each(function() {
if (this.nextSibling) {
if (this.nextSibling.textContent.match(/^[^\x00-\x7f]/))
this.textContent = this.textContent.replace(/ $/, '');
if (this.tagName === this.nextSibling.tagName)
$(this).after('<br>')
}
});
});
}
// [[Template:专题导航]]简化为图标,点击图标时展开
withElem('.ztdh:has(img)').then(function(t) {
var img = t.find('img').first();
var next = t.nextUntil(':not(style,p:not(:has(:not(style,script))))').next('div');
if (next.css('border-top-width') === '1px' && next.css('border-top-style') === 'solid')
t = t.add(next);
{mw.loader.addStyleTag('\
.D4-ztdh-img {\
visibility: visible;\
position: fixed;\
top: 8px;\
right: 8px;\
z-index: 3;\
box-shadow: 0 3px 15px silver;\
width: auto;\
max-height: 100px;\
border-radius: 5px;\
background: #FFFC;\
}\
')}
img.addClass('D4-ztdh-img').one('click', function() {
img.removeClass('D4-ztdh-img');
t.css({ position: '', visibility: '' })[0].scrollIntoView();
return false;
});
t.css({ position: 'absolute', visibility: 'hidden' });
});
if (mw.config.get('wgPageName') === 'Talk:提问求助区') {
$('h2.section-heading')
.next('div:has(.saveNotice:only-child, .MarkAsResolved:last-child)')
.prev()
.css({ textDecoration: 'line-through', color: 'grey', fontStyle: 'italic' })
}
})()