LLWiki正在建设中,欢迎加入我们

“User:Bhsd/minerva.js”的版本间差异

来自LLWiki
跳转到导航 跳转到搜索
标签移动版网页编辑 移动版编辑
(// 使用Wikiplus小工具快速编辑)
标签移动版网页编辑 移动版编辑
 
(未显示2个用户的20个中间版本)
第2行: 第2行:
// 拆分自[[Special:Mypage/common.js]],不可使用ES6语法
// 拆分自[[Special:Mypage/common.js]],不可使用ES6语法
"use strict";
"use strict";
/*global mw, $, VConsole*/
mw.gadgets = mw.gadgets || {};
mw.loader.using( 'jquery.client' ).then(function() {
mw.loader.using( 'jquery.client' ).then(function() {
if ($.client.profile().name == 'firefox') {
if ($.client.profile().name == 'firefox') {
mw.gadgets.stickyHeading = $.extend(mw.gadgets.stickyHeading, {mode: 'desktop'});
mw.gadgets = $.extend(mw.gadgets, {stickyHeading: {mode: 'desktop'}});
mw.hook( 'wikipage.content' ).add(function($content) {
mw.hook( 'wikipage.content' ).add(function($content) {
console.log('Hook: wikipage.content, Firefox开始移除性章节标题');
console.log('Hook: wikipage.content, Firefox开始移除性章节标题');
$content.removeClass( 'stickyHeading' );
$content.removeClass( 'stickyHeading' );
});
});
}
}
});
});


if (mw.config.get( 'wgArticleId' ) == 1521) {
// 直接进入讨论页
mw.loader.using( ['oojs-ui-core', 'ext.gadget.site-lib'] ).then(function() {
$(function() { $('.talk').off( 'click' ).click(function(e) { e.stopImmediatePropagation(); }); });
mw.tipsy( $('#bodyContent'), '.myTable td[data-sort-value]', {id: 'myTipsy'} );
});
}


mw.loader.using( 'mediawiki.util' ).then(function() {
mw.loader.using( ['mediawiki.util', 'skins.minerva.scripts'] ).then(function() {
const nsid = mw.config.get( 'wgNamespaceNumber' ),
// console
specialPage = mw.config.get( 'wgCanonicalSpecialPageName' ),
if (mw.util.getParamValue( 'vconsole' )) {
pageName = mw.util.wikiUrlencode( mw.config.get( 'wgPageName' ) ),
mw.loader.getScript( 'https://cdn.jsdelivr.net/npm/vconsole@3.3.4/dist/vconsole.min.js' )
title = mw.util.wikiUrlencode( mw.config.get('wgTitle') ),
.then(function() {
script = mw.config.get('wgScript'),
new VConsole(); // jshint ignore: line
loadJs = function(page) { mw.loader.load(script + '?action=raw&ctype=text/javascript&title=' + page); };
$('#__vconsole').one('click', function() {
$('.vc-cmd-input').replaceWith( $('<textarea>', {class: 'vc-cmd-input'}) );
$('#__vc_log_default').on('click', '.vc-item-code', function() {
const $this = $(this);
$this.text( $this.html() );
});
});
});
}
else {
$('<div>', {id: "__vconsole", html: $('<div>', {class: "vc-switch", text: "vConsole"})}).insertAfter( 'body' )
.click(function() {
mw.loader.using( 'mediawiki.Uri' ).then(function() {
const uri = new mw.Uri();
uri.query.vconsole = 1;
location.href = uri.toString();
});
});
}


const nsid = mw.config.get( 'wgNamespaceNumber' ),
if (mw.config.get( 'wgArticleId' ) > 0 && mw.config.get('wgAction') == 'view') {
// 移动版强制章节折叠
specialPage = mw.config.get( 'wgCanonicalSpecialPageName' ),
loadJs( 'user:bhsd/mobileCollapse.js' );
pageName = mw.util.wikiUrlencode( mw.config.get( 'wgPageName' ) ),
}
title = mw.util.wikiUrlencode( mw.config.get('wgTitle') ),
else if (specialPage == "History") {
script = mw.config.get('wgScript'),
/* 移动版历史添加与当前对比链接 */
loadJs = function(page) { mw.loader.load(script + '?action=raw&ctype=text/javascript&title=' + page); };
$(function() {
const lastrevid = mw.util.getParamValue( 'offset' ) ? 'cur' : parseInt( $('.page-summary > a').first().attr( 'href' ).match(/\d+$/) );
$('.list-thumb').append(function() {
const oldid = parseInt( $(this).parent().attr( 'href' ).match( /\d+$/ ) );
return oldid == lastrevid ? null : $('<p>').append( $('<a>', {text: "当前",
href: '/zh/special:diff/' + oldid + '/' + lastrevid}) );
});
});
}


const $menu = $('#mw-mf-page-left'),
if (mw.config.get( 'wgArticleId' ) > 0 && mw.config.get('wgAction') == 'view') {
group = [
// 移动版强制章节折叠
{icon: 'fa fa-retweet', text: '替换文本', href: '/zh/Special:替换文本'},
loadJs( 'user:bhsd/mobileCollapse.js' );
{icon: 'fa fa-ban', text: '滥用过滤器', href: '/zh/Special:滥用过滤器'},
}
{icon: 'fas fa-external-link-alt', text: '链接搜索', href: '/zh?target=http://*&title=Special:链接搜索'},
else if (specialPage == 'Recentchanges') {
{icon: 'fa fa-users', text: '用户列表', href: '/zh?title=Special:用户列表&creationSort=1&desc=1'},
// 移除多余的符号和空白字符
{icon: 'fa fa-puzzle-piece', text: '版本', href: '/zh/Special:版本'}
mw.hook( 'wikipage.content' ).add(function($content) {
],
console.log('Hook: wikipage.content,开始移除多余字符');
extraGroup = [
$content.find( '.mw-changeslist-line-inner' ).contents().filter(function() { return this.nodeType == 3; })
{ icon: 'fa fa-folder-open', text: '子页面',
.remove();
href: '/zh?title=Special:前缀索引&prefix=' + title + '/&namespace=' + nsid + '&stripprefix=1'
});
}, { icon: 'fa fa-hourglass-half', text: '展开模板',
}
href: '/zh?title=Special:展开模板&wpRemoveComments=1&wpGenerateRawHtml=true&wpInput={{:' + pageName + '}}'
else if (specialPage == "History") {
}, {icon: 'fa fa-copy', text: '所有页面', href: '/zh?title=Special:所有页面&namespace=' + nsid}
/* 移动版历史添加与当前对比链接 */
];
const addDiffLink = function(lastrevid) {
$('.list-thumb').append(function() {
$('<ul>', {html: (mw.config.get( 'wgIsArticle' ) ? extraGroup : []).concat( group ).map(function(ele) {
return $('<li>', {html: $('<a>', {class: ele.icon, href: ele.href, html: $('<span>', {text: ele.text})})});
const oldid = parseInt( $(this).parent().attr( 'href' ).match( /\d+$/ ) );
})}).insertAfter( $menu.children().eq(2) );
return oldid == lastrevid ? null : $('<p>').append( $('<a>', {text: "当前",
href: script + '/special:移动版差异/' + oldid + '...' + lastrevid }) );
});
};
$(function() {
if ( !mw.util.getParamValue( 'offset' ) ) {
addDiffLink(parseInt( $('.page-summary > a').first().attr( 'href' ).match(/\d+$/) ));
return;
}
mw.loader.using( 'mediawiki.api' ).then(function() {
console.log('API request: 查询最新修订ID');
const timerStart = mw.now();
new mw.Api().get({ action: 'query', prop: 'info', titles: mw.config.get( 'wgRelevantPageName' ),
formatversion: 2 }).then(function(data) {
console.log('End API request: 已获得最新修订ID,用时 ' + (mw.now() - timerStart) + ' ms');
addDiffLink(parseInt( data.query.pages[0].lastrevid ));
}, function(reason) { mw.notify('无法获得最新修订ID。错误信息:' + reason, {type: 'error'}); });
});
});
}

/* 自定义移动版导航 */
mw.hook( 'mobile.menu' ).add(function($menu) {
console.log('Hook: mobile.menu,开始添加自定义导航项目');
$menu.find( '.mw-ui-icon-minerva-contributions' ).parent()
.after( $('<li>').append( $('<a>', {html: '<i class="fa fa-folder-open"></i><span>子页面</span>',
href: script + '?title=Special:前缀索引&prefix=' + title + '/&namespace=' + nsid + '&stripprefix=1'
}) ) ).after( $('<li>').append( $('<a>', {html: '<i class="fa fa-hourglass-half"></i><span>展开模板</span>',
href: script + '?title=Special:展开模板&wpRemoveComments=1&wpGenerateRawHtml=true&wpInput={{:' + pageName + '}}'
}) ) ).after( $('<li>').append( $('<a>', {html: '<i class="fa fa-copy"></i><span>所有页面</span>',
href: script + '?title=Special:所有页面&namespace=' + nsid
}) ) ).after( $('<li>').append( $('<a>', {href: script + '/Special:替换文本',
html: '<i class="fa fa-retweet"></i><span>替换文本</span>'
}) ) ).after( $('<li>').append( $('<a>', {href: script + '/Special:滥用过滤器',
html: '<i class="fa fa-ban"></i><span>滥用过滤器</span>'
}) ) ).after( $('<li>').append( $('<a>', {href: script + '?target=http://*&title=Special:链接搜索',
html: '<i class="fas fa-external-link-alt"></i><span>链接搜索</span>'
}) ) ).after( $('<li>').append( $('<a>', {html: '<i class="fa fa-users"></i><span>用户列表</span>',
href: script + '?title=Special:用户列表&creationSort=1&desc=1'
}) ) ).after( $('<li>').append( $('<a>', {href: script + '/Special:版本',
html: '<i class="fa fa-puzzle-piece"></i><span>版本</span>'}) ) );
});
});
});
//</nowiki>
//</nowiki>

2023年3月17日 (五) 13:00的最新版本

//<nowiki>
// 拆分自[[Special:Mypage/common.js]],不可使用ES6语法
"use strict";
mw.loader.using( 'jquery.client' ).then(function() {
	if ($.client.profile().name == 'firefox') {
		mw.gadgets = $.extend(mw.gadgets, {stickyHeading: {mode: 'desktop'}});
		mw.hook( 'wikipage.content' ).add(function($content) {
			console.log('Hook: wikipage.content, Firefox开始移除黏性章节标题');
			$content.removeClass( 'stickyHeading' );
		});
	}
});

if (mw.config.get( 'wgArticleId' ) == 1521) {
	mw.loader.using( ['oojs-ui-core', 'ext.gadget.site-lib'] ).then(function() {
		mw.tipsy( $('#bodyContent'), '.myTable td[data-sort-value]', {id: 'myTipsy'} );
	});
}

mw.loader.using( ['mediawiki.util', 'skins.minerva.scripts'] ).then(function() {
	const nsid = mw.config.get( 'wgNamespaceNumber' ),
		specialPage = mw.config.get( 'wgCanonicalSpecialPageName' ),
		pageName = mw.util.wikiUrlencode( mw.config.get( 'wgPageName' ) ),
		title = mw.util.wikiUrlencode( mw.config.get('wgTitle') ),
		script = mw.config.get('wgScript'),
		loadJs = function(page) { mw.loader.load(script + '?action=raw&ctype=text/javascript&title=' + page); };

	if (mw.config.get( 'wgArticleId' ) > 0 && mw.config.get('wgAction') == 'view') {
		// 移动版强制章节折叠
		loadJs( 'user:bhsd/mobileCollapse.js' );
	}
	else if (specialPage == "History") {
		/* 移动版历史添加与当前对比链接 */
		$(function() {
			const lastrevid = mw.util.getParamValue( 'offset' ) ? 'cur' : parseInt( $('.page-summary > a').first().attr( 'href' ).match(/\d+$/) );
			$('.list-thumb').append(function() {
				const oldid = parseInt( $(this).parent().attr( 'href' ).match( /\d+$/ ) );
				return oldid == lastrevid ? null : $('<p>').append( $('<a>', {text: "当前",
					href: '/zh/special:diff/' + oldid + '/' + lastrevid}) );
			});
		});
	}

	const $menu = $('#mw-mf-page-left'),
		group = [
		{icon: 'fa fa-retweet', text: '替换文本', href: '/zh/Special:替换文本'},
		{icon: 'fa fa-ban', text: '滥用过滤器', href: '/zh/Special:滥用过滤器'},
		{icon: 'fas fa-external-link-alt', text: '链接搜索', href: '/zh?target=http://*&title=Special:链接搜索'},
		{icon: 'fa fa-users', text: '用户列表', href: '/zh?title=Special:用户列表&creationSort=1&desc=1'},
		{icon: 'fa fa-puzzle-piece', text: '版本', href: '/zh/Special:版本'}
	],
		extraGroup = [
		{ icon: 'fa fa-folder-open', text: '子页面',
			href: '/zh?title=Special:前缀索引&prefix=' + title + '/&namespace=' + nsid + '&stripprefix=1'
		}, { icon: 'fa fa-hourglass-half', text: '展开模板',
			href: '/zh?title=Special:展开模板&wpRemoveComments=1&wpGenerateRawHtml=true&wpInput={{:' + pageName + '}}'
		}, {icon: 'fa fa-copy', text: '所有页面', href: '/zh?title=Special:所有页面&namespace=' + nsid}
	];
	$('<ul>', {html: (mw.config.get( 'wgIsArticle' ) ? extraGroup : []).concat( group ).map(function(ele) {
		return $('<li>', {html: $('<a>', {class: ele.icon, href: ele.href, html: $('<span>', {text: ele.text})})});
	})}).insertAfter( $menu.children().eq(2) );
});
//</nowiki>