|
|
(17 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
| /* Any JavaScript here will be loaded for all users on every page load. */ | | /* Any JavaScript here will be loaded for all users on every page load. */ |
− | mw.loader.load('https://wjghj.cn/index.php?title=MediaWiki:NotifyWhenCopy.js&action=raw&ctype=text/javascript');
| |
− | mw.loader.load('https://common.wjghj.cn/js/SsiModal');
| |
− | mw.loader.load('https://common.wjghj.cn/js/AddUserBadge');
| |
| | | |
− | /** Prettyprint **/ | + | /** Global script (gtag.js) - Google Analytics */ |
| + | mw.loader.load('https://www.googletagmanager.com/gtag/js?id=UA-148909815-2'); |
| $(function () { | | $(function () { |
− | var pagename = mw.config.get('wgPageName');
| |
− | if (pagename.substr(pagename.length - 3, 3) === '.js') {
| |
− | $('#mw-content-text pre').addClass('prettyprint lang-js linenums');
| |
− | } else if (pagename.substr(pagename.length - 4, 4) === '.css') {
| |
− | $('#mw-content-text pre').addClass('prettyprint lang-css linenums');
| |
− | } else if (wgNamespaceNumber === 828) {
| |
− | $('#mw-content-text pre').addClass('prettyprint lang-lua linenums');
| |
− | }
| |
− | mw.loader.load('https://common.wjghj.cn/js/prettify');
| |
− | mw.loader.load('https://common.wjghj.cn/css/prettify', 'text/css');
| |
− | });
| |
− |
| |
− |
| |
− | /** JS Minify **/
| |
− | mw.loader.load('https://common.wjghj.cn/js/JsMin');
| |
− | var jsminModal = function (originaltext) {
| |
− | ssi_modal.show({
| |
− | className: 'in-page-edit minify-js',
| |
− | outSideClose: false,
| |
− | center: true,
| |
− | title: '压缩JS代码',
| |
− | content: '<section><textarea id="minifyjs-text" style="width:100% !important;min-height:350px;"></textarea><label for="minifyjs-conment">评论:</label><textarea id="minifyjs-conment" style="width:100% !important;min-height:50px;"></textarea><label for="minifyjs-level">压缩等级:</label><select id="minifyjs-level"><option value="1">最小压缩</option><option value="2" selected="selected">普通压缩</option><option value="3">超级压缩</option></select><hr/><b>压缩前: </b><span id="minifyjs-oldsize">-</span> <b>压缩后: </b><span id="minifyjs-newsize">-</span> <b>压缩率: </b><span id="minifyjs-ratio">0.00%</span></section>',
| |
− | buttons: [{
| |
− | label: '关闭',
| |
− | className: 'btn btn-secondary',
| |
− | method: function (e, modal) { modal.close() }
| |
− | }, {
| |
− | label: '压缩',
| |
− | className: 'btn btn-primary',
| |
− | method: function (e, modal) {
| |
− | $('#minifyjs-text').val(jsmin($('#minifyjs-conment').val(), $('#minifyjs-text').val(), $('#minifyjs-level').val()));
| |
− | $('#minifyjs-oldsize').html(jsmin.oldSize);
| |
− | $('#minifyjs-newsize').html(jsmin.newSize);
| |
− | $('#minifyjs-ratio').html((Math.round(jsmin.newSize / jsmin.oldSize * 1000) / 10) + '%');
| |
− | }
| |
− | }],
| |
− | onShow: function () {
| |
− | $('#minifyjs-text').val(originaltext);
| |
− | }
| |
− | });
| |
− | }
| |
− | if (wgNamespaceNumber === 8 && wgAction === 'edit' && wgPageName.substr(wgPageName.length - 3, 3) === '.js') {
| |
− | $('.editButtons').append('<div class="wgMinifyJs in-page-edit" style="float:right"><a href="javascript:;" id="minify-js" class="btn btn-primary">压缩JS</a></div>');
| |
− | $('#minify-js').click(function () {
| |
− | jsminModal($('#wpTextbox1').val());
| |
− | });
| |
− | }
| |
− |
| |
− |
| |
− | /** Demo **/
| |
− | switch (mw.config.get('wgPageName')) {
| |
− | case 'InPageEdit-v2':
| |
− | case 'InPageEdit-v2/API':
| |
− | case '受限制页面':
| |
− | mw.loader.load('https://common.wjghj.cn/js/InPageEdit-v2');
| |
− | break;
| |
− | }
| |
− |
| |
− | /** Global script (gtag.js) - Google Analytics **/
| |
− | mw.loader.load('https://www.googletagmanager.com/gtag/js?id=UA-148909815-2');
| |
− | $(window).load(function () {
| |
| window.dataLayer = window.dataLayer || []; | | window.dataLayer = window.dataLayer || []; |
| function gtag() { dataLayer.push(arguments); } | | function gtag() { dataLayer.push(arguments); } |
| gtag('js', new Date()); | | gtag('js', new Date()); |
− |
| |
| gtag('config', 'UA-148909815-2'); | | gtag('config', 'UA-148909815-2'); |
| }); | | }); |
| | | |
− | /** | + | // mw.loader.load('https://www.wjghj.cn/index.php?title=MediaWiki:NotifyWhenCopy.js&action=raw&ctype=text/javascript'); |
− | * ECharts
| + | // mw.loader.load('/js/SsiModal'); |
− | * Put ECharts on wiki pages
| + | // mw.loader.load('/js/AddUserBadge'); |
− | * Apache licenses https://www.echartsjs.com
| + | // mw.loader.load('/js/i18n-js/editor'); // I18nEdit |
− | **/
| + | |
− | $(function () {
| + | /** InPageEdit Demo */ |
− | if ($('.echarts, .ECharts, .Echarts').length > 0) {
| + | $(function(){ |
− | mw.loader.load('https://cdn.bootcss.com/echarts/4.4.0-rc.1/echarts.min.js'); // ECharts CDN
| + | var pageName = mw.config.get('wgPageName', '') |
− | var tryEcharts = setInterval(function () {
| + | if (pageName.startsWith('InPageEdit')) { |
− | if (typeof (echarts) !== 'undefined') {
| + | mw.loader.load('https://unpkg.com/mediawiki-inpageedit'); |
− | clearInterval(tryEcharts);
| |
− | $('.echarts, .ECharts, .Echarts').each(function () {
| |
− | var $this = $(this),
| |
− | option = eval("(" + $this.text() + ")"),
| |
− | echartsElement = 'echartsElement-' + $this.index();
| |
− | console.log("(" + $this.text() + ")");
| |
− | $this.attr({ 'id': echartsElement });
| |
− | echarts.init(document.getElementById(echartsElement)).setOption(option);
| |
− | });
| |
− | }
| |
− | }, 500);
| |
| } | | } |
| }); | | }); |
− |
| |
− | /* 拷贝时的版权提示
| |
− | $(window).on('copy', function () {
| |
− | if (wgUserGroups.includes('sysop')) return; // 不对管理员生效
| |
− | mw.notify('你复制了什么呀~记得注明出处哦!');
| |
− | var selectString = window.getSelection().toString();
| |
− | if (selectString.length < 40) return; // 内容过短时不添加后缀
| |
− | var finalString = selectString + '\n\n内容来自: ' + location.href + '\n采用知识共享署名-非商业性使用-相同方式共享(CC BY-NC-SA)授权。';
| |
− | $('body').append($('<textarea>').attr('id', 'copyNt').val(finalString));
| |
− | $('#copyNt').select();
| |
− | document.execCommand('cut');
| |
− | $('#copyNt').remove();
| |
− | });
| |
− | */
| |
− |
| |
− | /**
| |
− | * User Functions
| |
− | ** Provides functions similar to [[Mw:Extension:UserFunctions]]
| |
− | * Author: 机智的小鱼君
| |
− | * Logs:
| |
− | **
| |
− | **/
| |
− | (function ($, mw) {
| |
− | $('.UserFunctions').html(function () {
| |
− |
| |
− | // Create variables
| |
− | var NoMatchedItems = 0,
| |
− | $this = $(this), // class="UserFunctions"
| |
− | $children = $this.children(),
| |
− | type = this.dataset.type,
| |
− | username = mw.config.get('wgUserName'),
| |
− | usergroup = mw.config.get('wgUserGroups');
| |
− |
| |
− | // Functions
| |
− | switch (type) {
| |
− |
| |
− | case 'iflogin':
| |
− | if (username != null) {
| |
− | $this.children('[data-keyword="true"]').show();
| |
− | $this.children('[data-keyword="false"]').hide();
| |
− | } else {
| |
− | $this.children('[data-keyword="false"]').show();
| |
− | $this.children('[data-keyword="true"]').hide();
| |
− | }
| |
− | break;
| |
− |
| |
− | case 'username':
| |
− | return username;
| |
− | break;
| |
− |
| |
− | case 'ifusername':
| |
− | $children.each(function () {
| |
− | var keyword = this.dataset.keyword;
| |
− | if (keyword == username) {
| |
− | $(this).show(); ++NoMatchedItems;
| |
− | } else {
| |
− | $(this).hide();
| |
− | }
| |
− | });
| |
− | break;
| |
− |
| |
− | case 'usergroup':
| |
− | return usergroup;
| |
− | break;
| |
− |
| |
− | case 'ifingroup':
| |
− | $children.each(function () {
| |
− | var keyword = this.dataset.keyword;
| |
− | if ($.inArray(keyword, usergroup) > 0) {
| |
− | $(this).show(); ++NoMatchedItems;
| |
− | } else {
| |
− | $(this).hide();
| |
− | }
| |
− | });
| |
− | break;
| |
− |
| |
− | default:
| |
− | return '<a href="https://dev.fandom.com/wiki/UserFunctions" target="_blank"><span style="font-weight:bold;color:#b00">User Functions type error!</span></a>';
| |
− |
| |
− | }
| |
− |
| |
− | // If no matched items, then show default
| |
− | if (NoMatchedItems < 1) {
| |
− | $this.children('[data-keyword="!default"]').show();
| |
− | }
| |
− | });
| |
− | }(jQuery, mediaWiki));
| |