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

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

来自LLWiki
跳转到导航 跳转到搜索
(// 使用Wikiplus小工具快速编辑)
标签移动版网页编辑 移动版编辑
(// 使用Wikiplus小工具快速编辑)
标签移动版网页编辑 移动版编辑
 
第44行: 第44行:
eruda.init({tool: ['console', 'elements']});
eruda.init({tool: ['console', 'elements']});
eruda.add(erudaDom);
eruda.add(erudaDom);
eruda.add(erudaCode);
// <style>必需插入shadowRoot里
// <style>必需插入shadowRoot里
$('<style>', { text: '#eruda > .eruda-entry-btn { left: 0.76923077rem !important;' +
$('<style>', { text: '#eruda > .eruda-entry-btn { left: 0.76923077rem !important;' +

2022年2月11日 (五) 00:18的最新版本

//<nowiki>
// 由ResourceLoader直接调用,不可使用ES6语法
"use strict";
/* global eruda */
mw.gadgets = $.extend(mw.gadgets, { charinsert: {collapse: false},
	stickyHeading: {namespace: [12]},
	custommenu: {src: 'user:花生酥/Sidebar.json'},
	CommentsInLocalTime: {time: 'ah:mm'},
	talkHelper: {scroll: true},
	contentBackup: {range: ['vector', 'minerva'], stay: '0'}
});
window.hotcat_multi_autocommit = true;
window.hotcat_del_needs_diff = false;
window.LiveClockTimeZone = 'Asia/Shanghai';

$(function() {
	if (mw.config.get('wgArticleId') !== 8) {
		return;
	}
	$('.mainpage-flex-title').contents().wrap(function() {
		return $('<a>', {href: '/zh/LLWiki:首页/' + this.textContent}).css('color', 'inherit');
	});
	$('#IDOL_PROJECTS').contents().wrap($('<a>', {href: '/zh/LLWiki:首页/企划'}).css('color', 'inherit'));
});

mw.loader.using( ['mediawiki.util', 'mediawiki.notify'], function() {
	const specialPage = mw.config.get( 'wgCanonicalSpecialPageName' ),
		action = mw.config.get( 'wgAction' ),
		nsid = mw.config.get( 'wgNamespaceNumber' ),
		loadJs = function(page, dependencies) {
		mw.loader.using( dependencies || [], function() {
			mw.loader.load( mw.util.getUrl(page, {action: 'raw', ctype: 'text/javascript'}) ); // 注意标题转义
		});
	};

	// 导入工具函数
	loadJs( 'user:bhsd/tool.js' );
	
	// 手机console
	if (mw.util.getParamValue( 'eruda' )) {
		$.when(mw.loader.getScript( '//cdn.jsdelivr.net/npm/eruda' ),
			mw.loader.getScript( '//cdn.jsdelivr.net/npm/eruda-dom' )
		).then(function() {
			eruda.init({tool: ['console', 'elements']});
			eruda.add(erudaDom);
			// <style>必需插入shadowRoot里
			$('<style>', { text: '#eruda > .eruda-entry-btn { left: 0.76923077rem !important;' +
				'top: auto !important; bottom: 3rem; position: absolute; cursor: pointer; }' +
				'.eruda-container div.eruda-console-container { padding-bottom: 40px; }' +
				'.eruda-js-input { min-height: 40px; } #eruda-console .eruda-js-input > textarea { font-size: 16px; }'
			}).appendTo( eruda._$el );
		});
	} else if ($.client.profile().name == 'iphone') {
		$('<div>', {html: $('<div>', {class: 'fas fa-tools'}), id: 'eruda-loader'}).appendTo( document.body )
			.click(function() {
			mw.loader.using( 'mediawiki.Uri', function() {
				const uri = new mw.Uri();
				uri.query.eruda = 1;
				location.href = uri.toString();
			});
		});
	}
	
	if (nsid >= 0) {
		// 在mw-code内解析内外链接
		if (['javascript', 'css', 'Scribunto'].includes( mw.config.get( 'wgPageContentModel' ) ) &&
			['view', 'edit', 'submit'].includes( action )) { // Ajax预览时可能为edit
			loadJs( 'user:bhsd/autolink.js', 'mediawiki.api' );
		}
		
		// 编辑相关功能
		if (mw.config.get( 'skin' ) == 'minerva' || ['edit', 'submit'].includes( action )) { // 停用桌面版Wikiplus
			loadJs( 'user:bhsd/edit.js', 'ext.gadget.site-lib' );
		}
		
		if (nsid === 0 && action == 'view') {
			const pageImage = $('meta[property="og:image"][content*=img_auth]').prop( 'content' );
			if (!pageImage) {
				mw.notify('当前条目没有页面图像!', {type: 'warn'});
			} else {
				const filepath = pageImage.match( /img_auth\.php(?:\/thumb)?(\/\w\/\w{2}\/[^/]+)/ )[1];
				mw.loader.addStyleTag( 'img[src*="' + filepath + '"]' +
					'{ border: 3px solid pink; box-shadow: 5px 6px hotpink; box-sizing: border-box; }' );
			}
		}
	}

	else if (specialPage == 'Recentchanges') {
		// 显示页面ID
		$.when( $.ready, mw.loader.using( ['mediawiki.api', 'ext.gadget.site-lib']) ).then(function() {
			const obj = {},
				api = new mw.Api(),
				queryId = function($pages) {
				if ($pages.length === 0) { return Promise.resolve( null ); }
				const titles = $pages.map(function() { return this.title; }).toArray().join( '|' );
				return mw.timedQuery(api, {titles: titles}, '页面ID').then(function(data) {
					const pageids = data.query.pages.map( function(ele) { return [ele.title, ele.pageid]; } );
					return Object.fromEntries( pageids );
				}, function() { throw null; });
			};
			$('<a>', {text: '显示页面 ID', href: '#'}).click(function(e) {
				e.preventDefault();
				const $pages = $( '.mw-changeslist-title' ).slice(0, 50).not( '.id-queried' );
				queryId( $pages.not(function() { return obj[this.title]; }) ).then(function(data) {
					$.extend(obj, data);
					$pages.addClass( 'id-queried' )
						.before(function() { return $('<span>', {class: "queried-id", text: obj[this.title]}); });
				}, function() {});
			}).insertBefore( '.mw-changeslist' );
		});
	}

	else if (specialPage == 'Uncategorizedtemplates') {
		// 移除模板文档
		$('.special li').filter(function() { return this.textContent.endsWith( '/doc' ); }).remove();
	}

	else if (specialPage == 'Allpages') {
		// 隐藏重定向
		$('<a>', { href: "#", text: '显示/隐藏重定向' }).css("margin-left", "1em").click(function(e) {
			e.preventDefault();
			$( '.mw-allpages-chunk' ).toggleClass( 'noredirect' );
		}).insertAfter( '#ooui-php-7' );
	}
});
//</nowiki>