跳转到内容
打开/关闭菜单
打开/关闭外观设置菜单
打开/关闭个人菜单
未登录
登录后可编辑和发表评论。

MediaWiki:Gadget-site-js.js

MediaWiki界面

注意:在发布之后,您可能需要清除浏览器缓存才能看到所作出的更改的影响。

  • Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl + F5Ctrl + R(Mac为 R
  • Google Chrome:Ctrl + Shift + R(Mac为 Shift R
  • Edge:按住Ctrl的同时单击刷新,或按Ctrl + F5
/**
 * 本页面为自动生成,请勿直接修改!否则你的编辑将被覆盖!!!
 * 请至 https://github.com/Vocawiki/wiki-frontend/blob/main/src/gadgets/site-js/index.ts 修改源代码。
 */
/* <pre> */
"use strict";(function(){function e(){let e=[];for(let n=0;n<localStorage.length;n++){let r=localStorage.key(n);t(r)&&e.push(r)}e.forEach(e=>localStorage.removeItem(e))}function t(e){return e.startsWith(`RandomSong-CatsData-`)}function n(){let e=mw.config.get(`wgRevisionId`);e!==0&&e<188873&&r()}function r(){let e=document.getElementById(`vocawiki-content-license`);if(!e)return;let t=i(mw.config.get(`wgUserLanguage`));e.insertAdjacentHTML(`beforeend`,t)}function i(e){switch(e.startsWith(`en-`)&&(e=`en`),e){default:return`而当前页面的当前版本采用<a class="external" href="https://creativecommons.org/licenses/by-nc-sa/3.0/cn/deed.zh-hans">知识共享 署名-非商业性使用-相同方式共享 3.0中国大陆</a>授权。`;case`zh-hk`:return`而當前頁面的當前版本採用<a class="external" href="https://creativecommons.org/licenses/by-nc-sa/3.0/cn/deed.zh-hant">共享創意 姓名標示-非商業性-相同方式分享 3.0 中國大陸</a>授權。`;case`zh-hant`:case`zh-tw`:return`而當前頁面的當前版本採用<a class="external" href="https://creativecommons.org/licenses/by-nc-sa/3.0/cn/deed.zh-hant">創用CC 姓名標示-非商業性-相同方式分享 3.0 中國大陸</a>授權。`;case`en`:return` The current version of the current page is licensed under <a class="external" href="https://creativecommons.org/licenses/by-nc-sa/3.0/cn/deed.en">Creative Commons Attribution-NonCommercial-ShareAlike 3.0 China Mainland</a> instead.`}}function a(){setInterval(o,200)}function o(){$(`.mw-parser-output :is(ol, ul):not(.margin-left-set, .preflight *)`).each((e,t)=>{let n=$(t);if(/none.+none/i.test(n.css(`list-style`))||n.is(`.gallery`))n.parent().is(`li`)&&n.parent().parent().is(`ul, ol`)?n.css(`margin-left`,`1.2em`):n.css(`margin-left`,`0.2em`);else if(n.is(`ol`)){let e=n.children(`li`),t=n.attr(`start`),r=/^\d+$/.test(t)?+t:0;e.each((e,t)=>{let n=$(t).attr(`value`);/^\d+$/.test(n)?r=Math.max(r,+n):r++}),n.attr(`data-last-margin-left-max-length`,r).css(`margin-left`,`${`${r}`.length*.5+1.2}em`)}else n.css(`margin-left`,`1.2em`);n.addClass(`margin-left-set`)})}function s(){let e=document.body,t=$(e),n=$(window),r={purple:{labelColor:` `,labelBackgroundColor:`#9070c0`,labelBorderColor:`#b090e0 #7050a0 #9070c0 #b090e0`,labelPadding:`.2em .3em .2em .3em`,textBorderColor:`#9070c0`,textBackgroundColor:`#f0edf5`,textPadding:`1em`},green:{labelColor:` `,labelBackgroundColor:`#75c045`,labelBorderColor:`#90d060 #60b030 #75c045 #90d060`,labelPadding:`.2em .3em .2em .3em`,textBorderColor:`#75c045 #60b030 #60b030 #75c045`,textBackgroundColor:`#f5fffa`,textPadding:`1em`},red:{labelColor:` `,labelBackgroundColor:`#FF0000`,labelBorderColor:`#FF8888 #CC0000 #FF0000 #FF8888`,labelPadding:`.2em .3em .2em .3em`,textBorderColor:`#FF0000 #CC0000 #CC0000 #FF0000`,textBackgroundColor:`#fffafa`,textPadding:`1em`},blue:{labelColor:` `,labelBackgroundColor:`#5b8dd6`,labelBorderColor:`#88abde #3379de #5b8dd6 #88abde`,labelPadding:`.2em .3em .2em .3em`,textBackgroundColor:`#f0f8ff`,textBorderColor:`#5b8dd6 #3379de #3379de #5b8dd6`,textPadding:`1em`},yellow:{labelColor:` `,labelBackgroundColor:`#ffe147`,labelBorderColor:`#ffe977 #ffd813 #ffe147 #ffe977`,labelPadding:`.2em .3em .2em .3em`,textBackgroundColor:`#fffce8`,textBorderColor:`#ffe147 #ffd813 #ffd813 #ffe147`,textPadding:`1em`},orange:{labelColor:` `,labelBackgroundColor:`#ff9d42`,labelBorderColor:`#ffac5d #ff820e #ff9d42 #ffac5d`,labelPadding:`.2em .3em .2em .3em`,textBackgroundColor:`#ffeedd`,textBorderColor:`#ff9d42 #ff820e #ff820e #ff9d42`,textPadding:`1em`},black:{labelColor:`#fff`,labelBackgroundColor:`#7f7f7f`,labelBorderColor:`#999999 #4c4c4c #7f7f7f #999999`,labelPadding:`.2em .3em .2em .3em`,textBackgroundColor:`#e5e5e5`,textBorderColor:`#7f7f7f #4c4c4c #4c4c4c #7f7f7f`,textPadding:`1em`},transparent:{labelColor:` `,labelBackgroundColor:`#fff`,labelBorderColor:`#000`,labelPadding:`.2em .3em .2em .3em`,textBackgroundColor:`transparent`,textBorderColor:`transparent`,textPadding:`10px 0px`}},i={top:{className:`tabLabelTop`,labelColorSide:`top`,labelBorderSide:[`left`,`right`],labelColorSideReverse:`bottom`,dividerSizeType:`height`},bottom:{className:`tabLabelBottom`,labelColorSide:`bottom`,labelBorderSide:[`left`,`right`],labelColorSideReverse:`top`,dividerSizeType:`height`},left:{className:`tabLabelLeft`,labelColorSide:`left`,labelBorderSide:[`top`,`bottom`],labelColorSideReverse:`right`,dividerSizeType:`width`},right:{className:`tabLabelRight`,labelColorSide:`right`,labelBorderSide:[`top`,`bottom`],labelColorSideReverse:`left`,dividerSizeType:`width`}},a=[`1`,`on`,`true`,`yes`];t.addClass(`tab`);let o=e=>Reflect.ownKeys(e).length,s=e=>e.substring(0,1).toLowerCase()+e.substring(1),c=e=>e.substring(0,1).toUpperCase()+e.substring(1);mw.hook(`wikipage.content`).add(e=>{e.find(`.Tabs`).each(function(){var e;let t=$(this);if(t.children(`.TabLabel`)[0])return;let l=Array.from(this.classList).filter(e=>Reflect.has(r,e)),u=$.extend({labelPadding:`2px`,labelBorderColor:`#aaa`,labelColor:`green`,labelBackgroundColor:$(`#content`).css(`background-color`)||`rgba(247,251,255,0.8)`,textPadding:`20px 30px`,textBorderColor:`#aaa`,textBackgroundColor:`white`,defaultTab:1},l[0]?(e=r[l[0]])==null?{}:e:{},this.dataset||{}),d={label:{},text:{}},f=t.append(`<div class="TabLabel"></div>`).children(`.TabLabel`),p=t.append(`<div class="TabDivider"></div>`).children(`.TabDivider`),m=t.append(`<div class="TabContent"></div>`).children(`.TabContent`),h=u.labelPadding,g=u.labelColor,_=Reflect.has(i,u.labelSide)?u.labelSide:`top`,v=i[_],y=a.includes(u.labelColorSideReverse),b=parseInt(u.dividerSize),x=parseInt(u.defaultTab);_===`top`?(f.after(p),p.after(m)):_===`bottom`&&(m.after(p),p.after(f)),!isNaN(b)&&b>0&&t.find(`.TabDivider`)[v.dividerSizeType](b);let S=c(y?v.labelColorSideReverse:v.labelColorSide);t.addClass(v.className),y&&t.addClass(`reverse`),t.children(`.Tab`).each(function(){($(this).children(`.TabLabelText`).text().replace(/\s/g,``).length||$(this).children(`.TabLabelText`).children().length)&&($(this).children(`.TabLabelText`).appendTo(f),$(this).children(`.TabContentText`).appendTo(t.children(`.TabContent`))),$(this).remove()}),(isNaN(x)||x<=0||x>f.children(`.TabLabelText`).length)&&(x=1),f.children(`.TabLabelText`).on(`click`,function(){let e=$(this);e.addClass(`selected`).siblings().removeClass(`selected`).css({"border-color":`transparent`,"background-color":`inherit`}),m.children(`.TabContentText`).eq(f.children(`.TabLabelText`).index(e)).addClass(`selected`).siblings().removeClass(`selected`).removeAttr(`style`),o(d.label)>0&&e.css(d.label),setTimeout(()=>{n.triggerHandler(`scroll`)},1)}).eq(x-1).trigger(`click`),h&&f.children(`.TabLabelText`).css(`padding`,h),[`labelBorderColor`,`labelBackgroundColor`,`textPadding`,`textBorderColor`,`textBackgroundColor`].forEach(e=>{let t=e.startsWith(`label`)?`label`:`text`,n=s(e.replace(t,``));d[t][n]=u[e]}),g?d.label[`border${S}Color`]=g:d.label.borderColor&&(d.label[`border${S}Color`]=`green`),f.find(`.selected`).trigger(`click`),o(d.text)>0&&m.css(d.text),u.autoWidth===`yes`&&t.addClass(`AutoWidth`),u.float===`left`&&t.addClass(`FloatLeft`),u.float===`right`&&t.addClass(`FloatRight`)})})}function c(){mw.config.get(`wgNamespaceNumber`)===6&&($(`.ns-6 #mw-imagepage-content`)[0]&&$(`.regToDel`)[0]&&$(`#file`).before($(`#mw-imagepage-content`)),$(`.ns-6 .regToDel`).css(`margin-bottom`,`1rem !important`))}function l(){s(),a(),n(),c()}function u(e){return typeof e==`string`&&/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|0{8}-0{4}-0{4}-0{4}-0{12})$/i.test(e)}function d(){try{if(!u(crypto.randomUUID()))throw Error(`crypto.randomUUID() is not supported`)}catch{let e=new Uint8Array(16),t=()=>crypto.getRandomValues(e),n=e=>e.toString(16).padStart(2,`0`);crypto.randomUUID=()=>{let e=t();e[6]=e[6]&15|64,e[8]=e[8]&63|128;let r=Array.from(e,n);return[...r.slice(0,4),`-`,...r.slice(4,6),`-`,...r.slice(6,8),`-`,...r.slice(8,10),`-`,...r.slice(10,16)].join(``)}}}var f=class{static set(e,t,n){let r={value:t,expiry:Date.now()+n};try{localStorage.setItem(e,JSON.stringify(r))}catch(t){console.warn(`Failed to set cache item "${e}" in localStorage:`,t)}}static get(e){let t=localStorage.getItem(e);if(!t)return null;try{let n=JSON.parse(t);return Date.now()>n.expiry?(localStorage.removeItem(e),null):n.value}catch(t){return console.warn(`Corrupted cache data for key "${e}", clearing it.`,t),localStorage.removeItem(e),null}}static remove(e){localStorage.removeItem(e)}};let p=`gadget-randomsong-cache`,m=1*864e5;async function h(){let e=new mw.Api,t=3;try{for(;t--;){let t=await e.get({action:`query`,generator:`random`,grnnamespace:0,grnlimit:30,prop:`categories`,cllimit:`max`}),n=Object.values(t.query.pages).filter(e=>e.categories.some(({title:e})=>e.endsWith(`歌曲`)));if(n.length>0)return n.map(e=>e.title)}}catch(e){mw.notify(wgULS(void 0,void 0,`网络连接出错`,`網路連接出錯`,`網絡連接出錯`),{type:`error`}),console.error(`网络/API错误:`,e)}return null}async function g(){let e=f.get(p);return!e&&(e=await h(),f.set(p,e,m),!e)?null:()=>{let[t,...n]=e;return n.length===0?f.remove(p):f.set(p,n,m),t}}function _(){$(async()=>{let e=$(`#n-sidebar-random-song a`),t=await g();t&&e.on(`mousedown`,()=>{e.attr(`href`,mw.util.getUrl(t()))})})}d();let{wgCanonicalSpecialPageName:v,wgAction:y}=mw.config.get([`wgCanonicalSpecialPageName`,`wgAction`]),b=$(window);$(`.annotation`).each((e,t)=>{let n=new OO.ui.PopupWidget({$content:$(t).children(`.annotation-content`),padded:!0,autoFlip:!1});$(t).append(n.$element).on(`mouseover`,()=>{n.toggle(!0)}).on(`mouseout`,()=>{n.toggle(!1)})});let x=[`s`,`del`],S=[`heimu`,`colormu`,`just-kidding-text`],C=[...x,...S.map(e=>`.${e}`)].join(`,`),w=e=>{e.find(C).each((e,t)=>{if(t.isTemplateFixed)return;t.isTemplateFixed=!0;let n=[...t.querySelectorAll(C)];n.length>0&&(n.forEach(e=>{e.isTemplateFixed=!0,e.classList.remove(...S)}),console.info(`TemplateFix`,t,n))})};(async()=>{await $.ready;try{let e;try{e=top.location.host}catch{e=``}let t=!/(?:^|\.)voca\.wiki\.?$/.test(location.host);if(top!==window||t){let n=t?location.host:e;oouiDialog.alert(`<p>您当前是在${t?`非Vocawiki域名`:`嵌套窗口`}访问,请注意不要在此域名下输入您的用户名或密码,以策安全!</p><p>${n?`${t?`当前`:`顶层窗口`}域名为 <code>${n}</code>,`:``}Vocawiki域名为 <code>voca.wiki</code> 。</p>`,{title:`Vocawiki提醒您`,size:`medium`})}}catch(e){console.debug(e)}if(mw.hook(`wikipage.content`).add(w),/[)]$/.test(location.pathname+location.search)){let e=location.hash;location.hash=`%`,location.hash=e}switch(b.on(`hashchange.hashchange`,()=>{let e=decodeURIComponent(location.hash.replace(/^#/,``));if(e.length>0){let t=document.getElementById(e);if(t){let e=$(t),n=e.closest(`.mw-collapsible.mw-collapsed`);n.length>0&&n.find(`.mw-collapsible-toggle`).first().triggerHandler(`click`);let r=e.closest(`.TabContentText:not(.selected)`);r.length>0&&r.closest(`.Tabs`).children(`.TabLabel`).children().eq(r.index()).trigger(`click`),setTimeout(()=>{$(`html, body`).scrollTop(e.offset().top-window.innerHeight/8)},50)}}}),b.triggerHandler(`hashchange.hashchange`),l(),_(),v){case`Upload`:$(`#wpLicense`).val(`Copyright`);break;case`BatchUpload`:$(`textarea`).val(`{{Copyright}}`);break;case`MassEditRegex`:$(`#wpSummaryLabel`).text(`摘要:`);break}y===`edit`&&$(`[for="wpSummary"] .mw-summary-preset-item a`).on(`click`,e=>{let t=$(`[name="wpSummary"]`);return t.val(`${String(t.val())} ${$(e.currentTarget).text()}`.trim()),t.trigger(`focus`),!1}),e()})()})();
/* </pre> */