wikiplus-highlight 2.15.2 → 2.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -12,13 +12,13 @@
12
12
  在*个人 JS 页*添加以下代码:
13
13
 
14
14
  ```javascript
15
- mw.loader.load('//cdn.jsdelivr.net/npm/wikiplus-highlight@2.15.2');
15
+ mw.loader.load('//cdn.jsdelivr.net/npm/wikiplus-highlight@2.16.0');
16
16
  ```
17
17
 
18
18
 
19
19
 
20
20
  ```javascript
21
- mw.loader.load('//unpkg.com/wikiplus-highlight@2.15.2/dist/main.min.js');
21
+ mw.loader.load('//unpkg.com/wikiplus-highlight@2.16.0/dist/main.min.js');
22
22
  ```
23
23
 
24
24
  ### 稳定版本
package/dist/main.min.js CHANGED
@@ -4,5 +4,5 @@
4
4
  * @author 机智的小鱼君 <https://github.com/Dragon-Fish>
5
5
  * @license GPL-3.0
6
6
  */
7
- (async()=>{"use strict";if(mw.libs.wphl)return;mw.libs.wphl=!0;const i="2.15.2",c="object"==typeof mw.storage&&"function"==typeof mw.storage.getObject?mw.storage:{getObject(e){e=localStorage.getItem(e);if(!1===e)return!1;try{return JSON.parse(e)}catch(e){return null}},setObject(e,i){try{var t=JSON.stringify(i);return localStorage.setItem(e,t)}catch(e){return!1}}},p=Object.fromEntries||(e=>{const i={};for(var[t,n]of e)i[t]=n;return i}),E=e=>"function"==typeof e.flat?e.flat():e.reduce((e,i)=>e.concat(i),[]),a=(e=i)=>e.split(".").map(e=>Number(e));var P=(e,i)=>{var[e,t]=a(e),[i,n]=a(i);return e<i||e===i&&t<n};const t=(e,...i)=>mw.msg("wphl-"+e,...i),n=(...e)=>$($.parseHTML(t(...e)));var e=(...i)=>()=>{var e=$("<p>",{html:t(...i)});return mw.notify(e,{type:"success",autoHideSeconds:"long",tag:"wikiplus-highlight"}),e},o=a().slice(0,2).join(".");const r="//fastly.jsdelivr.net",l="npm/codemirror@5.65.3",d="gh/bhsd-harry/codemirror-mediawiki@1.1.5",s="npm/wikiplus-highlight@"+o,{wgPageName:D,wgNamespaceNumber:U,wgPageContentModel:H,wgServerName:B,wgScriptPath:V,wgUserLanguage:Q,skin:q}=mw.config.values,u=null!==mw.loader.getState("ext.CodeMirror"),m=c.getObject("InPageEditMwConfig")||{},R=""+B+V,w=m[R]||{},h=!(w.time>Date.now()-2592e6),F={css:"css","sanitized-css":"css",javascript:"javascript",json:"javascript",wikitext:"mediawiki"},g=u?{lib:"ext.CodeMirror.lib",css:"ext.CodeMirror.lib.mode.css",javascript:"ext.CodeMirror.lib.mode.javascript",lua:l+"/mode/lua/lua.min.js",mediawiki:h?"ext.CodeMirror.data":[],htmlmixed:"ext.CodeMirror.lib.mode.htmlmixed",xml:[]}:{lib:l+"/lib/codemirror.min.js",css:l+"/mode/css/css.min.js",javascript:l+"/mode/javascript/javascript.min.js",lua:l+"/mode/lua/lua.min.js",mediawiki:[],htmlmixed:l+"/mode/htmlmixed/htmlmixed.min.js",xml:l+"/mode/xml/xml.min.js"},f={searchcursor:l+"/addon/search/searchcursor.min.js",search:s+"/search.min.js",markSelection:l+"/addon/selection/mark-selection.min.js",activeLine:l+"/addon/selection/active-line.min.js",trailingspace:l+"/addon/edit/trailingspace.min.js",matchBrackets:l+"/addon/edit/matchbrackets.min.js",closeBrackets:l+"/addon/edit/closebrackets.min.js",matchTags:s+"/matchtags.min.js",fold:s+"/fold.min.js"},k=[{option:"styleSelectedText",addon:"search",download:"markSelection",only:!0},{option:"styleActiveLine",addon:"activeLine"},{option:"showTrailingSpace",addon:"trailingspace"},{option:"matchBrackets",complex:(e,i)=>"mediawiki"!==e&&!i||{bracketRegex:/[{}[\]]/}},{option:"autoCloseBrackets",addon:"closeBrackets",complex:(e,i)=>"mediawiki"!==e&&!i||'()[]{}""'},{option:"matchTags",addon:["matchTags","fold"],modes:["mediawiki","widget"]},{option:"fold",modes:["mediawiki","widget"]}];let b=c.getObject("Wikiplus-highlight-addons")||["search"],y=c.getObject("Wikiplus-highlight-indent")||"4";const J={'"':"quot","'":"apos","<":"lt",">":"gt","&":"amp"," ":"nbsp"},x=i=>e=>{e.replaceSelection(e.getSelection().split("\n").map(i).join("\n"),"around")},C=x(e=>e.split("").map(e=>{if(e in J)return`&${J[e]};`;const i=e.charCodeAt();return i<256?`&#${i};`:`&#x${i.toString(16)};`}).join("")),j=({keyMap:e})=>e.default===e.pcDefault,K={"Ctrl-/":C,"Ctrl-\\":x(encodeURIComponent)},G={"Cmd-/":C,"Cmd-\\":x(encodeURIComponent)},v=async(u,e)=>{if(["mediawiki","widget"].includes(e)&&b.includes("contextmenu")){const i=$(u.getWrapperElement()).addClass("CodeMirror-contextmenu"),[t]=(mw.config.get("extCodeMirrorConfig")||{functionSynonyms:[{invoke:"invoke","调用":"invoke",widget:"widget","小工具":"widget"}]})["functionSynonyms"];e=i=>Object.keys(t).filter(e=>t[e]===i).map(e=>e.startsWith("#")?e:"#"+e);const w=e("invoke"),h=e("widget");await mw.loader.using("mediawiki.Title"),i.contextmenu(({pageX:e,pageY:i})=>{const t=u.coordsChar({left:e,top:i}),{line:n,ch:a}=t,o=u.getTokenTypeAt(t);if(/\bmw-(?:template-name|parserfunction)\b/.test(o)){const c=u.getLineTokens(n);for(var[s,{type:r,end:l,string:d}]of[...c.entries()].reverse())0<s&&c[s-1].type===r&&(c[s-1].end=l,c[s-1].string+=d,c.splice(s,1));const m=c.findIndex(({start:e,end:i})=>e<a&&i>=a),g=c[m].string.replace(/\u200e/g,"").replace(/_/g," ").trim();if(/\bmw-template-name\b/.test(o)){const p=new mw.Title(g);return 0!==p.namespace||g.startsWith(":")?open(p.getUrl(),"_blank"):open(mw.util.getUrl("Template:"+g),"_blank"),!1}if(!(m<2)&&/\bmw-parserfunction-delimiter\b/.test(c[m-1].type)&&/\bmw-parserfunction-name\b/.test(c[m-2].type)){e=c[m-2].string.trim().toLowerCase();if(w.includes(e))open(mw.util.getUrl("Module:"+g),"_blank");else{if(!h.includes(e))return;open(mw.util.getUrl("Widget:"+g,{action:"edit"}),"_blank")}return!1}}})}};let M=c.getObject("Wikiplus-highlight-i18n"),W;M?P(M["wphl-version"],i)&&(W=e("welcome-upgrade",i,0)):(M={},W=e("welcome"));const S={zh:"zh-hans","zh-hans":"zh-hans","zh-cn":"zh-hans","zh-my":"zh-hans","zh-sg":"zh-hans","zh-hant":"zh-hant","zh-tw":"zh-hant","zh-hk":"zh-hant","zh-mo":"zh-hant"}[Q]||"en",X=`${r}/${s}/i18n/${S}.json`,Y=M["wphl-version"]===o;var e=async()=>{Y&&M["wphl-lang"]===S||(M=await $.ajax(X,{dataType:"json",cache:!0}),c.setObject("Wikiplus-highlight-i18n",M)),mw.messages.set(M)},Z=Promise.all([mw.loader.using("mediawiki.util"),e()]);const O=(e,i)=>0===e.length?Promise.resolve():i?mw.loader.using(e):$.ajax(r+"/"+(1<e.length?"combine/":"")+e.join(),{dataType:"script",cache:!0});let _;const z=(e,i=!1)=>{const t=[];for(var{option:n,addon:a=n,download:o=Array.isArray(a)?n:a,only:s}of k)s&&i||n in e.optionHandlers||!ee(a,b)||t.push(f[o]);return t},ee=(e,i)=>Array.isArray(e)?e.some(e=>i.includes(e)):i.includes(e),I=async e=>{let i=[];const t=[],n=[],a="function"==typeof window.CodeMirror;var o=a?window.CodeMirror:{modes:{},prototype:{},commands:{},optionHandlers:{}};if(["mediawiki","widget"].includes(e)&&!o.modes.mediawiki&&(mw.loader.load(`${r}/${d}/mediawiki.min.css`,"text/css"),(u?t:i).push(d+"/mediawiki.min.js")),"mediawiki"===e&&w.config&&w.config.tags.html&&(e="html"),a||((u?i:n).push(g.lib),u||mw.loader.load(`${r}/${l}/lib/codemirror.min.css`,"text/css")),!o.prototype.getSearchCursor&&b.includes("search")&&n.push(f.searchcursor),!o.commands.findForward&&b.includes("search")&&n.push(f.search),n.push(...z(o)),["widget","html"].includes(e))for(const s of["css","javascript","mediawiki","htmlmixed","xml"])o.modes[s]||(i=i.concat(g[s]));else"mediawiki"===e?i=i.concat(g.mediawiki):o.modes[e]||("lua"===e?(u?t:i).push(g.lua):i=i.concat(g[e]));a?await Promise.all([O(i,u),O(t),O(n)]):u?(await O(i,!0),await Promise.all([O(t),O(n)])):(await O(n),await O(i))},ie=e=>{m[R]={config:e,time:Date.now()},c.setObject("InPageEditMwConfig",m)},te=async(i,t)=>{if(["mediawiki","widget"].includes(i)){u&&h&&await t;let e=mw.config.get("extCodeMirrorConfig");if(e||h||!Y||({config:e}=w,e.tags.ref&&(e.tagModes.ref="text/mediawiki"),mw.config.set("extCodeMirrorConfig",e)),e&&e.redirect&&e.img)return e;if(e)return e;const{magicwords:n,extensiontags:a,functionhooks:o,variables:s}=(await(new mw.Api).get({meta:"siteinfo",siprop:e?"magicwords":"magicwords|extensiontags|functionhooks|variables",formatversion:2}))["query"],r=["msg","raw","msgnw","subst","safesubst"];i=e=>E(e.map(({aliases:e,name:i})=>e.map(e=>({alias:e,name:i})))),t=e=>p(e.map(({alias:e,name:i})=>[e.replace(/:$/,""),i]));if(e){const[l]=e["functionSynonyms"];l.subst||i(n.filter(({name:e})=>r.includes(e))).forEach(({alias:e,name:i})=>{l[e.replace(/:$/,"")]=i})}else{e={tagModes:{pre:"mw-tag-pre",nowiki:"mw-tag-nowiki",ref:"text/mediawiki"},tags:p(a.map(e=>[e.slice(1,-1),!0])),urlProtocols:mw.config.get("wgUrlProtocols")};const d=new Set([...o,...s,...r]),c=n.filter(({name:e,aliases:i})=>i.some(e=>/^__.+__$/.test(e))||d.has(e)),m=i(c.filter(e=>e["case-sensitive"])),g=i(c.filter(e=>!e["case-sensitive"])).map(({alias:e,name:i})=>({alias:e.toLowerCase(),name:i}));e.doubleUnderscore=[t(g.filter(({alias:e})=>/^__.+__$/.test(e))),t(m.filter(({alias:e})=>/^__.+__$/.test(e)))],e.functionSynonyms=[t(g.filter(({alias:e})=>!/^__.+__|^#$/.test(e))),t(m.filter(({alias:e})=>!/^__.+__|^#$/.test(e)))]}return e.redirect=n.find(({name:e})=>"redirect"===e).aliases,e.img=t(i(n.filter(({name:e})=>e.startsWith("img_")))),mw.config.set("extCodeMirrorConfig",e),ie(e),e}},ne=async()=>{if(![274,828].includes(U)||D.endsWith("/doc"))return D.endsWith("/doc")?"mediawiki":F[H];{const e=274===U?"Widget":"Lua";return await mw.loader.using(["oojs-ui-windows","oojs-ui.styles.icons-content"]),await OO.ui.confirm(t("contentmodel"),{actions:[{label:e},{label:"Wikitext",action:"accept"}]})?"mediawiki":e.toLowerCase()}},ae=async(e,i)=>{const a=i?"javascript":await ne();var t=I(a);const[n]=await Promise.all([te(a,t),t]);"mediawiki"===a&&n.tags.html?(n.tagModes.html="htmlmixed",await I("html")):"widget"!==a||CodeMirror.mimeModes.widget||CodeMirror.defineMIME("widget",{name:"htmlmixed",tags:{noinclude:[[null,null,"mediawiki"]]}});t=e.height();_&&_.toTextArea();const o=i||"json"===H,s=$.client.profile()["name"];if((_=CodeMirror.fromTextArea(e[0],$.extend({inputStyle:"safari"===s?"textarea":"contenteditable",lineNumbers:!0,lineWrapping:!0,mode:a,mwConfig:n,json:o},p(k.map(({option:e,addon:i=e,modes:t,complex:n=e=>!t||t.includes(e)})=>{i=Array.isArray(i)?i[0]:i;return[e,b.includes(i)&&n(a,o)]})),"mediawiki"===a?{extraKeys:b.includes("escape")&&(j(CodeMirror)?K:G)}:{indentUnit:b.includes("indentWithSpace")?y:"4",indentWithTabs:!b.includes("indentWithSpace")}))).setSize(null,t),_.refresh(),v(_,a),$("#Wikiplus-Quickedit-Jump").children("a").attr("href","#Wikiplus-CodeMirror"),!i){const r="object"==typeof window.Wikiplus?window.Wikiplus:{getSetting(e){var i=c.getObject("Wikiplus_Settings");return i&&i[e]}},l=()=>{$("#Wikiplus-Quickedit-Submit").triggerHandler("click")},d=()=>{$("#Wikiplus-Quickedit-MinorEdit").click(),$("#Wikiplus-Quickedit-Submit").triggerHandler("click")};_.addKeyMap($.extend(j(CodeMirror)?{"Ctrl-S":l,"Shift-Ctrl-S":d}:{"Cmd-S":l,"Shift-Cmd-S":d},[!0,"true"].includes(r.getSetting("esc_to_exit_quickedit"))?{Esc(){$("#Wikiplus-Quickedit-Back").triggerHandler("click")}}:{}))}mw.hook("wiki-codemirror").fire(_)},oe=new MutationObserver(e=>{const i=$(E(e.map(({addedNodes:e})=>[...e]))).find("#Wikiplus-Quickedit, #Wikiplus-Setting-Input");0!==i.length&&ae(i,"Wikiplus-Setting-Input"===i.attr("id"))}),se=(oe.observe(document.body,{childList:!0}),document.getElementById("wphl-style")||mw.loader.addStyleTag("#Wikiplus-Quickedit+.CodeMirror,#Wikiplus-Setting-Input+.CodeMirror{border:1px solid #c8ccd1;line-height:1.3;clear:both}div.Wikiplus-InterBox{font-size:14px;z-index:100}.skin-minerva .Wikiplus-InterBox{font-size:16px}.cm-trailingspace{text-decoration:underline wavy red}div.CodeMirror span.CodeMirror-matchingbracket{box-shadow:0 0 0 2px #9aef98}div.CodeMirror span.CodeMirror-nonmatchingbracket{box-shadow:0 0 0 2px #eace64}#Wikiplus-highlight-dialog .oo-ui-messageDialog-title{margin-bottom:0.28571429em}#Wikiplus-highlight-dialog .oo-ui-flaggedElement-notice{font-weight:normal;margin:0}.CodeMirror-contextmenu .cm-mw-template-name{cursor:pointer}")),{get:re=function(e){return e.value},set:le=function(e,i){e.value=i}}=(se.id="wphl-style",$.valHooks.textarea||{}),de=e=>["Wikiplus-Quickedit","Wikiplus-Setting-Input"].includes(e.id);$.valHooks.textarea={get(e){return de(e)&&_?_.getValue():re(e)},set(e,i){de(e)&&_?_.setValue(i):le(e,i)}},await Z;let T,L,A,ce,N;const me=(e=b)=>{N.toggle(e.includes("indentWithSpace"))};const ge=$(mw.util.addPortletLink({minerva:"page-actions-overflow",citizen:"p-actions"}[q]||"p-cactions","#",t("portlet"),"wphl-settings")).click(async e=>{if(e.preventDefault(),T)L.setValue(b),A.setValue(y);else{await mw.loader.using(["oojs-ui-windows","oojs-ui.styles.icons-content"]),T=new OO.ui.MessageDialog({id:"Wikiplus-highlight-dialog"});const i=new OO.ui.WindowManager;i.$element.appendTo(document.body),i.addWindows([T]),L=new OO.ui.CheckboxMultiselectInputWidget({options:[...k.map(({option:e,addon:i=e})=>{const t=Array.isArray(i)?i[0]:i;return{data:t,label:n("addon-"+t.toLowerCase())}}),...["escape","contextmenu","indentWithSpace","otherEditors"].map(e=>({data:e,label:n("addon-"+e.toLowerCase())}))],value:b}).on("change",me),A=new OO.ui.NumberInputWidget({min:0,value:y}),ce=new OO.ui.FieldLayout(L,{label:t("addon-label"),notices:[t("addon-notice")],align:"top"}),N=new OO.ui.FieldLayout(A,{label:t("addon-indent")}),me()}e="object"==typeof window.Wikiplus;L.$element.find(".oo-ui-checkboxInputWidget").first().toggleClass("oo-ui-widget-enabled",e).children("input").prop("disabled",!e),T.open({title:t("addon-title"),message:ce.$element.add(N.$element).add($("<p>",{html:t("feedback")})),actions:[{action:"reject",label:mw.msg("ooui-dialog-message-reject")},{action:"accept",label:mw.msg("ooui-dialog-message-accept"),flags:"progressive"}],size:"en"===S?"medium":"small"}).closing.then(e=>{ce.$element.detach(),N.$element.detach(),"object"==typeof e&&"accept"===e.action&&(b=L.getValue(),y=A.getValue(),c.setObject("Wikiplus-highlight-addons",b),c.setObject("Wikiplus-highlight-indent",y))})}),pe=("minerva"===q&&ge.find("a").addClass("mw-ui-icon-minerva-settings"),"function"==typeof W&&W().find("#wphl-settings-notify").click(e=>{e.preventDefault(),$("#wphl-settings").triggerHandler("click")}),async i=>{if(b.includes("otherEditors")){let e=i.getOption("mode");e="text/mediawiki"===e?"mediawiki":e;var t=z(CodeMirror,!0),n=i.getOption("json");await O(t);for(const{option:o,addon:s=o,modes:r,complex:l=e=>!r||r.includes(e)}of k.filter(({only:e})=>!e)){var a=Array.isArray(s)?s[0]:s;void 0===i.getOption(o)&&b.includes(a)&&i.setOption(o,l(e,n))}"mediawiki"!==e&&b.includes("indentWithSpace")?(i.setOption("indentUnit",y),i.setOption("indentWithTabs",!1)):"mediawiki"===e&&b.includes("escape")&&i.addKeyMap(j(CodeMirror)?K:G,!0),v(i,e)}});mw.hook("InPageEdit.quickEdit.codemirror").add(({cm:e})=>pe(e)),mw.hook("inspector").add(e=>pe(e)),mw.libs.wphl={version:i,majorVersion:o,options:k,addons:b,indent:y,i18n:M,i18nLang:S,wphlStyle:se,$portlet:ge,CDN:r,CM_CDN:l,MW_CDN:d,REPO_CDN:s,USING_LOCAL:u,MODE_LIST:g,ADDON_LIST:f,I18N_CDN:X,getVersion:a,cmpVersion:P,msg:t,htmlMsg:n,escapeHTML:C,handleContextMenu:v,setI18N:e,getScript:O,getAddonScript:z,intersect:ee,initMode:I,updateCachedConfig:ie,getMwConfig:te,getPageMode:ne,renderEditor:ae,handleOtherEditors:pe},Object.freeze(mw.libs.wphl)})();
7
+ (async()=>{"use strict";if(mw.libs.wphl)return;mw.libs.wphl=!0;const i="2.16",d="object"==typeof mw.storage&&"function"==typeof mw.storage.getObject?mw.storage:{getObject(e){e=localStorage.getItem(e);if(!1===e)return!1;try{return JSON.parse(e)}catch(e){return null}},setObject(e,i){try{var t=JSON.stringify(i);return localStorage.setItem(e,t)}catch(e){return!1}}},g=Object.fromEntries||(e=>{const i={};for(var[t,n]of e)i[t]=n;return i}),P=e=>"function"==typeof e.flat?e.flat():e.reduce((e,i)=>e.concat(i),[]),o=(e=i)=>e.split(".").map(e=>Number(e));const c=(e,...i)=>mw.msg("wphl-"+e,...i),n=(...e)=>$($.parseHTML(c(...e)));var e=(...i)=>()=>{var e=$("<p>",{html:c(...i)});return mw.notify(e,{type:"success",autoHideSeconds:"long",tag:"wikiplus-highlight"}),e},t=o().slice(0,2).join(".");const r="//fastly.jsdelivr.net",l="npm/codemirror@5.65.3",N="gh/bhsd-harry/codemirror-mediawiki@1.1.5",a="npm/wikiplus-highlight@"+t,{wgPageName:U,wgNamespaceNumber:H,wgPageContentModel:D,wgServerName:B,wgScriptPath:Q,wgUserLanguage:V,skin:q}=mw.config.values,p=null!==mw.loader.getState("ext.CodeMirror"),s=d.getObject("InPageEditMwConfig")||{},F=""+B+Q,w=s[F]||{},h=!(w.time>Date.now()-2592e6),J={css:"css","sanitized-css":"css",javascript:"javascript",json:"javascript",wikitext:"mediawiki"},m=p?{lib:"ext.CodeMirror.lib",css:"ext.CodeMirror.lib.mode.css",javascript:"ext.CodeMirror.lib.mode.javascript",lua:l+"/mode/lua/lua.min.js",mediawiki:h?"ext.CodeMirror.data":[],htmlmixed:"ext.CodeMirror.lib.mode.htmlmixed",xml:[]}:{lib:l+"/lib/codemirror.min.js",css:l+"/mode/css/css.min.js",javascript:l+"/mode/javascript/javascript.min.js",lua:l+"/mode/lua/lua.min.js",mediawiki:[],htmlmixed:l+"/mode/htmlmixed/htmlmixed.min.js",xml:l+"/mode/xml/xml.min.js"},u={searchcursor:l+"/addon/search/searchcursor.min.js",search:a+"/search.min.js",markSelection:l+"/addon/selection/mark-selection.min.js",activeLine:l+"/addon/selection/active-line.min.js",trailingspace:l+"/addon/edit/trailingspace.min.js",matchBrackets:l+"/addon/edit/matchbrackets.min.js",closeBrackets:l+"/addon/edit/closebrackets.min.js",matchTags:a+"/matchtags.min.js",fold:a+"/fold.min.js"},f=[{option:"styleSelectedText",addon:"search",download:"markSelection",only:!0},{option:"styleActiveLine",addon:"activeLine"},{option:"showTrailingSpace",addon:"trailingspace"},{option:"matchBrackets",complex:(e,i)=>"mediawiki"!==e&&!i||{bracketRegex:/[{}[\]]/}},{option:"autoCloseBrackets",addon:"closeBrackets",complex:(e,i)=>"mediawiki"!==e&&!i||'()[]{}""'},{option:"matchTags",addon:["matchTags","fold"],modes:["mediawiki","widget"]},{option:"fold",modes:["mediawiki","widget"]}];let k=d.getObject("Wikiplus-highlight-addons")||["search"],b=d.getObject("Wikiplus-highlight-indent")||"4";const K={'"':"quot","'":"apos","<":"lt",">":"gt","&":"amp"," ":"nbsp"},y=i=>e=>{e.replaceSelection(e.getSelection().split("\n").map(i).join("\n"),"around")},x=y(e=>e.split("").map(e=>{if(e in K)return`&${K[e]};`;const i=e.charCodeAt();return i<256?`&#${i};`:`&#x${i.toString(16)};`}).join("")),C=({keyMap:e})=>e.default===e.pcDefault,R={"Ctrl-/":x,"Ctrl-\\":y(encodeURIComponent)},G={"Cmd-/":x,"Cmd-\\":y(encodeURIComponent)},j=async(p,e)=>{if(["mediawiki","widget"].includes(e)&&k.includes("contextmenu")){const i=$(p.getWrapperElement()).addClass("CodeMirror-contextmenu"),[t]=(mw.config.get("extCodeMirrorConfig")||{functionSynonyms:[{invoke:"invoke","调用":"invoke",widget:"widget","小工具":"widget"}]})["functionSynonyms"];e=i=>Object.keys(t).filter(e=>t[e]===i).map(e=>e.startsWith("#")?e:"#"+e);const w=e("invoke"),h=e("widget");await mw.loader.using("mediawiki.Title"),i.contextmenu(({pageX:e,pageY:i})=>{const t=p.coordsChar({left:e,top:i}),{line:n,ch:o}=t,a=p.getTokenTypeAt(t);if(/\bmw-(?:template-name|parserfunction)\b/.test(a)){const c=p.getLineTokens(n);for(var[s,{type:r,end:l,string:d}]of[...c.entries()].reverse())0<s&&c[s-1].type===r&&(c[s-1].end=l,c[s-1].string+=d,c.splice(s,1));const m=c.findIndex(({start:e,end:i})=>e<o&&i>=o),u=c[m].string.replace(/\u200e/g,"").replace(/_/g," ").trim();if(/\bmw-template-name\b/.test(a)){const g=new mw.Title(u);return 0!==g.namespace||u.startsWith(":")?open(g.getUrl(),"_blank"):open(mw.util.getUrl("Template:"+u),"_blank"),!1}if(!(m<2)&&/\bmw-parserfunction-delimiter\b/.test(c[m-1].type)&&/\bmw-parserfunction-name\b/.test(c[m-2].type)){e=c[m-2].string.trim().toLowerCase();if(w.includes(e))open(mw.util.getUrl("Module:"+u),"_blank");else{if(!h.includes(e))return;open(mw.util.getUrl("Widget:"+u,{action:"edit"}),"_blank")}return!1}}})}};let v=d.getObject("Wikiplus-highlight-i18n"),M;v?((e,i)=>{var[e,t]=o(e),[i,n]=o(i);return e<i||e===i&&t<n})(v["wphl-version"],i)&&(M=e("welcome-upgrade",i,0)):(v={},M=e("welcome"));const W={zh:"zh-hans","zh-hans":"zh-hans","zh-cn":"zh-hans","zh-my":"zh-hans","zh-sg":"zh-hans","zh-hant":"zh-hant","zh-tw":"zh-hant","zh-hk":"zh-hant","zh-mo":"zh-hant"}[V]||"en",X=`${r}/${a}/i18n/${W}.json`,Y=v["wphl-version"]===t;e=async()=>{Y&&v["wphl-lang"]===W||(v=await $.ajax(X,{dataType:"json",cache:!0}),d.setObject("Wikiplus-highlight-i18n",v)),mw.messages.set(v)},t=Promise.all([mw.loader.using("mediawiki.util"),e()]);const S=(e,i)=>0===e.length?Promise.resolve():i?mw.loader.using(e):$.ajax(r+"/"+(1<e.length?"combine/":"")+e.join(),{dataType:"script",cache:!0});let O;const _=(e,i=!1)=>{const t=[];for(var{option:n,addon:o=n,download:a=Array.isArray(o)?n:o,only:s}of f)s&&i||n in e.optionHandlers||!Z(o,k)||t.push(u[a]);return t},Z=(e,i)=>Array.isArray(e)?e.some(e=>i.includes(e)):i.includes(e),ee=async e=>{let i=[];const t=[],n=[],o="function"==typeof window.CodeMirror;var a=o?window.CodeMirror:{modes:{},prototype:{},commands:{},optionHandlers:{}};if(["mediawiki","widget"].includes(e)&&!a.modes.mediawiki&&(mw.loader.load(`${r}/${N}/mediawiki.min.css`,"text/css"),(p?t:i).push(N+"/mediawiki.min.js")),"mediawiki"===e&&w.config&&w.config.tags.html&&(e="html"),o||((p?i:n).push(m.lib),p||mw.loader.load(`${r}/${l}/lib/codemirror.min.css`,"text/css")),!a.prototype.getSearchCursor&&k.includes("search")&&n.push(u.searchcursor),!a.commands.findForward&&k.includes("search")&&n.push(u.search),n.push(..._(a)),["widget","html"].includes(e))for(const s of["css","javascript","mediawiki","htmlmixed","xml"])a.modes[s]||(i=i.concat(m[s]));else"mediawiki"===e?i=i.concat(m.mediawiki):a.modes[e]||("lua"===e?(p?t:i).push(m.lua):i=i.concat(m[e]));o?await Promise.all([S(i,p),S(t),S(n)]):p?(await S(i,!0),await Promise.all([S(t),S(n)])):(await S(n),await S(i))},ie=e=>{s[F]={config:e,time:Date.now()},d.setObject("InPageEditMwConfig",s)},te=async(i,t)=>{if(["mediawiki","widget"].includes(i)){p&&h&&await t;let e=mw.config.get("extCodeMirrorConfig");if(e||h||!Y||({config:e}=w,e.tags.ref&&(e.tagModes.ref="text/mediawiki"),mw.config.set("extCodeMirrorConfig",e)),e&&e.redirect&&e.img)return e;if(e)return e;const{magicwords:n,extensiontags:o,functionhooks:a,variables:s}=(await(new mw.Api).get({meta:"siteinfo",siprop:e?"magicwords":"magicwords|extensiontags|functionhooks|variables",formatversion:2}))["query"],r=["msg","raw","msgnw","subst","safesubst"];i=e=>P(e.map(({aliases:e,name:i})=>e.map(e=>({alias:e,name:i})))),t=e=>g(e.map(({alias:e,name:i})=>[e.replace(/:$/,""),i]));if(e){const[l]=e["functionSynonyms"];l.subst||i(n.filter(({name:e})=>r.includes(e))).forEach(({alias:e,name:i})=>{l[e.replace(/:$/,"")]=i})}else{e={tagModes:{pre:"mw-tag-pre",nowiki:"mw-tag-nowiki",ref:"text/mediawiki"},tags:g(o.map(e=>[e.slice(1,-1),!0])),urlProtocols:mw.config.get("wgUrlProtocols")};const d=new Set([...a,...s,...r]),c=n.filter(({name:e,aliases:i})=>i.some(e=>/^__.+__$/.test(e))||d.has(e)),m=i(c.filter(e=>e["case-sensitive"])),u=i(c.filter(e=>!e["case-sensitive"])).map(({alias:e,name:i})=>({alias:e.toLowerCase(),name:i}));e.doubleUnderscore=[t(u.filter(({alias:e})=>/^__.+__$/.test(e))),t(m.filter(({alias:e})=>/^__.+__$/.test(e)))],e.functionSynonyms=[t(u.filter(({alias:e})=>!/^__.+__|^#$/.test(e))),t(m.filter(({alias:e})=>!/^__.+__|^#$/.test(e)))]}return e.redirect=n.find(({name:e})=>"redirect"===e).aliases,e.img=t(i(n.filter(({name:e})=>e.startsWith("img_")))),mw.config.set("extCodeMirrorConfig",e),ie(e),e}},ne=async(e,i)=>{const o=i?"javascript":await(async()=>{if(![274,828].includes(H)||U.endsWith("/doc"))return U.endsWith("/doc")?"mediawiki":J[D];{const e=274===H?"Widget":"Lua";return await mw.loader.using(["oojs-ui-windows","oojs-ui.styles.icons-content"]),await OO.ui.confirm(c("contentmodel"),{actions:[{label:e},{label:"Wikitext",action:"accept"}]})?"mediawiki":e.toLowerCase()}})();var t=ee(o);const[n]=await Promise.all([te(o,t),t]);"mediawiki"===o&&n.tags.html?(n.tagModes.html="htmlmixed",await ee("html")):"widget"!==o||CodeMirror.mimeModes.widget||CodeMirror.defineMIME("widget",{name:"htmlmixed",tags:{noinclude:[[null,null,"mediawiki"]]}});t=e.height();O&&O.toTextArea();const a=i||"json"===D;if((O=CodeMirror.fromTextArea(e[0],$.extend({inputStyle:"contenteditable",lineNumbers:!/Android\b/.test(navigator.userAgent),lineWrapping:!0,mode:o,mwConfig:n,json:a},g(f.map(({option:e,addon:i=e,modes:t,complex:n=e=>!t||t.includes(e)})=>{i=Array.isArray(i)?i[0]:i;return[e,k.includes(i)&&n(o,a)]})),"mediawiki"===o?{extraKeys:k.includes("escape")&&(C(CodeMirror)?R:G)}:{indentUnit:k.includes("indentWithSpace")?b:"4",indentWithTabs:!k.includes("indentWithSpace")}))).setSize(null,t),O.refresh(),O.getWrapperElement().id="Wikiplus-CodeMirror",j(O,o),$("#Wikiplus-Quickedit-Jump").children("a").attr("href","#Wikiplus-CodeMirror"),!i){const s="object"==typeof window.Wikiplus?window.Wikiplus:{getSetting(e){var i=d.getObject("Wikiplus_Settings");return i&&i[e]}},r=()=>{$("#Wikiplus-Quickedit-Submit").triggerHandler("click")},l=()=>{$("#Wikiplus-Quickedit-MinorEdit").click(),$("#Wikiplus-Quickedit-Submit").triggerHandler("click")};O.addKeyMap($.extend(C(CodeMirror)?{"Ctrl-S":r,"Shift-Ctrl-S":l}:{"Cmd-S":r,"Shift-Cmd-S":l},[!0,"true"].includes(s.getSetting("esc_to_exit_quickedit"))?{Esc(){$("#Wikiplus-Quickedit-Back").triggerHandler("click")}}:{}))}mw.hook("wiki-codemirror").fire(O)},oe=new MutationObserver(e=>{const i=$(P(e.map(({addedNodes:e})=>[...e]))).find("#Wikiplus-Quickedit, #Wikiplus-Setting-Input");0!==i.length&&ne(i,"Wikiplus-Setting-Input"===i.attr("id"))}),ae=(oe.observe(document.body,{childList:!0}),document.getElementById("wphl-style")||mw.loader.addStyleTag("#Wikiplus-CodeMirror{border:1px solid #c8ccd1;line-height:1.3;clear:both;-moz-user-select:auto;-webkit-user-select:auto;user-select:auto}#Wikiplus-CodeMirror .CodeMirror-gutter-wrapper{-moz-user-select:none;-webkit-user-select:none;user-select:none}div.Wikiplus-InterBox{font-size:14px;z-index:100}.skin-minerva .Wikiplus-InterBox{font-size:16px}.cm-trailingspace{text-decoration:underline wavy red}div.CodeMirror span.CodeMirror-matchingbracket{box-shadow:0 0 0 2px #9aef98}div.CodeMirror span.CodeMirror-nonmatchingbracket{box-shadow:0 0 0 2px #eace64}#Wikiplus-highlight-dialog .oo-ui-messageDialog-title{margin-bottom:0.28571429em}#Wikiplus-highlight-dialog .oo-ui-flaggedElement-notice{font-weight:normal;margin:0}.CodeMirror-contextmenu .cm-mw-template-name{cursor:pointer}")),{get:se=function(e){return e.value},set:re=function(e,i){e.value=i}}=(ae.id="wphl-style",$.valHooks.textarea||{}),le=e=>["Wikiplus-Quickedit","Wikiplus-Setting-Input"].includes(e.id);$.valHooks.textarea={get(e){return le(e)&&O?O.getValue():se(e)},set(e,i){le(e)&&O?O.setValue(i):re(e,i)}},await t;let z,T,I,L,A;const de=(e=k)=>{A.toggle(e.includes("indentWithSpace"))};const ce=$(mw.util.addPortletLink({minerva:"page-actions-overflow",citizen:"p-actions"}[q]||"p-cactions","#",c("portlet"),"wphl-settings")).click(async e=>{if(e.preventDefault(),z)T.setValue(k),I.setValue(b);else{await mw.loader.using(["oojs-ui-windows","oojs-ui.styles.icons-content"]),z=new OO.ui.MessageDialog({id:"Wikiplus-highlight-dialog"});const i=new OO.ui.WindowManager;i.$element.appendTo(document.body),i.addWindows([z]),T=new OO.ui.CheckboxMultiselectInputWidget({options:[...f.map(({option:e,addon:i=e})=>{const t=Array.isArray(i)?i[0]:i;return{data:t,label:n("addon-"+t.toLowerCase())}}),...["escape","contextmenu","indentWithSpace","otherEditors"].map(e=>({data:e,label:n("addon-"+e.toLowerCase())}))],value:k}).on("change",de),I=new OO.ui.NumberInputWidget({min:0,value:b}),L=new OO.ui.FieldLayout(T,{label:c("addon-label"),notices:[c("addon-notice")],align:"top"}),A=new OO.ui.FieldLayout(I,{label:c("addon-indent")}),de()}e="object"==typeof window.Wikiplus||"object"==typeof window.Pages;T.$element.find(".oo-ui-checkboxInputWidget").first().toggleClass("oo-ui-widget-enabled",e).children("input").prop("disabled",!e),z.open({title:c("addon-title"),message:L.$element.add(A.$element).add($("<p>",{html:c("feedback")})),actions:[{action:"reject",label:mw.msg("ooui-dialog-message-reject")},{action:"accept",label:mw.msg("ooui-dialog-message-accept"),flags:"progressive"}],size:"en"===W?"medium":"small"}).closing.then(e=>{L.$element.detach(),A.$element.detach(),"object"==typeof e&&"accept"===e.action&&(k=T.getValue(),b=I.getValue(),d.setObject("Wikiplus-highlight-addons",k),d.setObject("Wikiplus-highlight-indent",b))})}),E=("minerva"===q&&ce.find("a").addClass("mw-ui-icon-minerva-settings"),"function"==typeof M&&M().find("#wphl-settings-notify").click(e=>{e.preventDefault(),$("#wphl-settings").triggerHandler("click")}),async i=>{if(k.includes("otherEditors")){let e=i.getOption("mode");e="text/mediawiki"===e?"mediawiki":e;var t=_(CodeMirror,!0),n=i.getOption("json");await S(t);for(const{option:a,addon:s=a,modes:r,complex:l=e=>!r||r.includes(e)}of f.filter(({only:e})=>!e)){var o=Array.isArray(s)?s[0]:s;void 0===i.getOption(a)&&k.includes(o)&&i.setOption(a,l(e,n))}"mediawiki"!==e&&k.includes("indentWithSpace")?(i.setOption("indentUnit",b),i.setOption("indentWithTabs",!1)):"mediawiki"===e&&k.includes("escape")&&i.addKeyMap(C(CodeMirror)?R:G,!0),j(i,e)}});mw.hook("InPageEdit.quickEdit.codemirror").add(({cm:e})=>E(e)),mw.hook("inspector").add(e=>E(e)),mw.libs.wphl={version:i,options:f,addons:k,i18n:v,i18nLang:W,wphlStyle:ae,$portlet:ce,USING_LOCAL:p,MODE_LIST:m,ADDON_LIST:u,msg:c,htmlMsg:n,escapeHTML:x,handleContextMenu:j,setI18N:e,getAddonScript:_,intersect:Z,updateCachedConfig:ie,getMwConfig:te,renderEditor:ne,handleOtherEditors:E}})();
8
8
  //# sourceMappingURL=main.min.js.map
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"../","sources":["main.js"],"names":["mw","libs","wphl","version","storage","getObject","key","json","localStorage","getItem","JSON","parse","e","setObject","value","stringify","setItem","fromEntries","Object","entries","obj","flatten","arr","flat","reduce","acc","cur","concat","getVersion","str","split","map","s","Number","cmpVersion","a","b","a0","a1","b0","b1","msg","args","htmlMsg","$","parseHTML","notify","$p","html","type","autoHideSeconds","tag","majorVersion","slice","join","CDN","CM_CDN","MW_CDN","REPO_CDN","wgPageName","page","wgNamespaceNumber","ns","wgPageContentModel","contentmodel","wgServerName","server","wgScriptPath","scriptPath","wgUserLanguage","userLang","skin","config","values","USING_LOCAL","loader","getState","ALL_SETTINGS_CACHE","SITE_ID","SITE_SETTINGS","EXPIRED","time","Date","now","CONTENTMODEL","css","sanitized-css","javascript","wikitext","MODE_LIST","lib","lua","mediawiki","htmlmixed","xml","ADDON_LIST","searchcursor","search","markSelection","activeLine","trailingspace","matchBrackets","closeBrackets","matchTags","fold","options","option","addon","download","only","complex","mode","bracketRegex","modes","let","addons","indent","entity","\"","'","<",">","&"," ","convert","func","doc","replaceSelection","getSelection","escapeHTML","c","code","charCodeAt","toString","isPc","keyMap","default","pcDefault","extraKeysPc","Ctrl-/","Ctrl-\\","encodeURIComponent","extraKeysMac","Cmd-/","Cmd-\\","handleContextMenu","async","includes","$wrapper","getWrapperElement","addClass","synonyms","get","functionSynonyms","invoke","调用","widget","小工具","getSysnonyms","keys","filter","startsWith","using","contextmenu","pageX","pageY","pos","coordsChar","left","top","line","ch","curType","getTokenTypeAt","test","tokens","getLineTokens","i","end","string","reverse","splice","index","findIndex","start","text","replace","trim","title","Title","namespace","open","getUrl","util","parserFunction","toLowerCase","action","i18n","welcome","i18nLang","zh","zh-hans","zh-cn","zh-my","zh-sg","zh-hant","zh-tw","zh-hk","zh-mo","I18N_CDN","isLatest","setI18N","ajax","dataType","cache","messages","set","i18nPromise","Promise","all","getScript","urls","local","length","resolve","cm","getAddonScript","CM","other","addonScript","Array","isArray","optionHandlers","intersect","push","arr1","arr2","some","ele","initMode","scripts","externalScript","loaded","window","CodeMirror","prototype","commands","load","tags","getSearchCursor","findForward","lang","updateCachedConfig","getMwConfig","initModePromise","ref","tagModes","redirect","img","magicwords","extensiontags","functionhooks","variables","Api","meta","siprop","formatversion","query","otherMagicwords","getAliases","words","aliases","name","alias","getConfig","insensitive","subst","forEach","pre","nowiki","urlProtocols","realMagicwords","Set","allMagicwords","has","sensitive","word","doubleUnderscore","find","getPageMode","endsWith","pageMode","OO","ui","confirm","actions","label","renderEditor","$target","setting","mwConfig","mimeModes","defineMIME","noinclude","height","toTextArea","client","profile","fromTextArea","extend","inputStyle","lineNumbers","lineWrapping","mod","mainAddon","extraKeys","indentUnit","indentWithTabs","setSize","refresh","children","attr","Wikiplus","getSetting","settings","submit","triggerHandler","submitMinor","click","addKeyMap","Ctrl-S","Shift-Ctrl-S","Cmd-S","Shift-Cmd-S","Esc","hook","fire","observer","MutationObserver","records","$editArea","addedNodes","wphlStyle","observe","document","body","childList","getElementById","addStyleTag","elem","id","valHooks","textarea","isWikiplus","getValue","setValue","dialog","indentWidget","field","indentField","toggleIndent","toggle","$portlet","addPortletLink","minerva","citizen","preventDefault","MessageDialog","windowManager","WindowManager","$element","appendTo","addWindows","CheckboxMultiselectInputWidget","data","on","NumberInputWidget","min","FieldLayout","notices","align","wikiplusLoaded","first","toggleClass","prop","message","add","flags","size","closing","then","detach","handleOtherEditors","getOption","undefined","setOption","freeze"],"mappings":"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"}
1
+ {"version":3,"sourceRoot":"../","sources":["main.js"],"names":["mw","libs","wphl","version","storage","getObject","key","json","localStorage","getItem","JSON","parse","e","setObject","value","stringify","setItem","fromEntries","Object","entries","obj","flatten","arr","flat","reduce","acc","cur","concat","getVersion","str","split","map","s","Number","msg","args","htmlMsg","$","parseHTML","notify","$p","html","type","autoHideSeconds","tag","majorVersion","slice","join","CDN","CM_CDN","MW_CDN","REPO_CDN","wgPageName","page","wgNamespaceNumber","ns","wgPageContentModel","contentmodel","wgServerName","server","wgScriptPath","scriptPath","wgUserLanguage","userLang","skin","config","values","USING_LOCAL","loader","getState","ALL_SETTINGS_CACHE","SITE_ID","SITE_SETTINGS","EXPIRED","time","Date","now","CONTENTMODEL","css","sanitized-css","javascript","wikitext","MODE_LIST","lib","lua","mediawiki","htmlmixed","xml","ADDON_LIST","searchcursor","search","markSelection","activeLine","trailingspace","matchBrackets","closeBrackets","matchTags","fold","options","option","addon","download","only","complex","mode","bracketRegex","modes","let","addons","indent","entity","\"","'","<",">","&"," ","convert","func","doc","replaceSelection","getSelection","escapeHTML","c","code","charCodeAt","toString","isPc","keyMap","default","pcDefault","extraKeysPc","Ctrl-/","Ctrl-\\","encodeURIComponent","extraKeysMac","Cmd-/","Cmd-\\","handleContextMenu","async","includes","$wrapper","getWrapperElement","addClass","synonyms","get","functionSynonyms","invoke","调用","widget","小工具","getSysnonyms","keys","filter","startsWith","using","contextmenu","pageX","pageY","pos","coordsChar","left","top","line","ch","curType","getTokenTypeAt","test","tokens","getLineTokens","i","end","string","reverse","splice","index","findIndex","start","text","replace","trim","title","Title","namespace","open","getUrl","util","parserFunction","toLowerCase","action","i18n","welcome","a","b","a0","a1","b0","b1","cmpVersion","i18nLang","zh","zh-hans","zh-cn","zh-my","zh-sg","zh-hant","zh-tw","zh-hk","zh-mo","I18N_CDN","isLatest","setI18N","ajax","dataType","cache","messages","set","i18nPromise","Promise","all","getScript","urls","local","length","resolve","cm","getAddonScript","CM","other","addonScript","Array","isArray","optionHandlers","intersect","push","arr1","arr2","some","ele","initMode","scripts","externalScript","loaded","window","CodeMirror","prototype","commands","load","tags","getSearchCursor","findForward","lang","updateCachedConfig","getMwConfig","initModePromise","ref","tagModes","redirect","img","magicwords","extensiontags","functionhooks","variables","Api","meta","siprop","formatversion","query","otherMagicwords","getAliases","words","aliases","name","alias","getConfig","insensitive","subst","forEach","pre","nowiki","urlProtocols","realMagicwords","Set","allMagicwords","has","sensitive","word","doubleUnderscore","find","renderEditor","$target","setting","endsWith","pageMode","OO","ui","confirm","actions","label","getPageMode","mwConfig","mimeModes","defineMIME","noinclude","height","toTextArea","fromTextArea","extend","inputStyle","lineNumbers","navigator","userAgent","lineWrapping","mod","mainAddon","extraKeys","indentUnit","indentWithTabs","setSize","refresh","id","children","attr","Wikiplus","getSetting","settings","submit","triggerHandler","submitMinor","click","addKeyMap","Ctrl-S","Shift-Ctrl-S","Cmd-S","Shift-Cmd-S","Esc","hook","fire","observer","MutationObserver","records","$editArea","addedNodes","wphlStyle","observe","document","body","childList","getElementById","addStyleTag","elem","valHooks","textarea","isWikiplus","getValue","setValue","dialog","indentWidget","field","indentField","toggleIndent","toggle","$portlet","addPortletLink","minerva","citizen","preventDefault","MessageDialog","windowManager","WindowManager","$element","appendTo","addWindows","CheckboxMultiselectInputWidget","data","on","NumberInputWidget","min","FieldLayout","notices","align","wikiplusLoaded","Pages","first","toggleClass","prop","message","add","flags","size","closing","then","detach","handleOtherEditors","getOption","undefined","setOption"],"mappings":"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"}
package/fold.js CHANGED
@@ -9,7 +9,7 @@
9
9
  const {Pos, cmpPos} = CodeMirror;
10
10
 
11
11
  /**
12
- * 只用于title属性的消息,不存在时fallback到键名
12
+ * 只用于`title`属性的消息,不存在时fallback到键名
13
13
  * @param {string} key
14
14
  * @param {string|undefined} argKey
15
15
  * @returns {string}
@@ -85,7 +85,7 @@
85
85
  const end = dir > 0 ? length : -1;
86
86
  let pos = dir > 0 ? 0 : length - 1;
87
87
  if (line === where.line) {
88
- pos = where.ch - (dir > 0 ? 0 : 1); // dir = 1时不包含当前字符,dir = -1时包含当前字符
88
+ pos = where.ch - (dir > 0 ? 0 : 1); // `dir = 1`时不包含当前字符,`dir = -1`时包含当前字符
89
89
  }
90
90
  for (; pos !== end; pos += dir) {
91
91
  const ch = curLine.charAt(pos);
package/i18n/en.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "wphl-version": "2.15.2",
2
+ "wphl-version": "2.16",
3
3
  "wphl-lang": "en",
4
4
  "wphl-addon-search": "<span title=\"Search with a string or a regular expression\">Search</span>",
5
5
  "wphl-addon-activeline": "Show the active line",
package/i18n/zh-hans.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "wphl-version": "2.15.2",
2
+ "wphl-version": "2.16",
3
3
  "wphl-lang": "zh-hans",
4
4
  "wphl-addon-search": "<span title=\"搜索字符串或正则表达式\">搜索</span>",
5
5
  "wphl-addon-activeline": "高亮显示光标所在行",
package/i18n/zh-hant.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "wphl-version": "2.15.2",
2
+ "wphl-version": "2.16",
3
3
  "wphl-lang": "zh-hant",
4
4
  "wphl-addon-search": "<span title=\"搜尋字串或正規表示式\">搜尋</span>",
5
5
  "wphl-addon-activeline": "突出顯示游標所在行",
package/main.js CHANGED
@@ -13,7 +13,7 @@
13
13
  }
14
14
  mw.libs.wphl = true; // 开始加载
15
15
 
16
- const version = '2.15.2',
16
+ const version = '2.16',
17
17
  newAddon = 0;
18
18
 
19
19
  /** @type {typeof mw.storage} */
@@ -41,7 +41,7 @@
41
41
  },
42
42
  };
43
43
  /**
44
- * polyfill for Object.fromEntries
44
+ * polyfill for `Object.fromEntries`
45
45
  * @type {(entries: Iterable<[string, T]>) => Record<string, T>}
46
46
  * @template T
47
47
  */
@@ -53,7 +53,7 @@
53
53
  return obj;
54
54
  });
55
55
  /**
56
- * polyfill for Array.prototype.flat
56
+ * polyfill for `Array.prototype.flat`
57
57
  * @type {(arr: T[][]) => T[]}
58
58
  * @template T
59
59
  */
@@ -70,7 +70,7 @@
70
70
  * 比较版本号
71
71
  * @param {string} a
72
72
  * @param {string} b
73
- * @returns a的版本号是否小于b的版本号
73
+ * @returns `a`的版本号是否小于`b`的版本号
74
74
  */
75
75
  const cmpVersion = (a, b) => {
76
76
  const [a0, a1] = getVersion(a),
@@ -79,7 +79,7 @@
79
79
  };
80
80
  /**
81
81
  * 获取I18N消息
82
- * @param {string} key 消息键,省略'wphl-'前缀
82
+ * @param {string} key 消息键,省略`wphl-`前缀
83
83
  * @param {string[]} args
84
84
  */
85
85
  const msg = (key, ...args) => mw.msg(`wphl-${key}`, ...args);
@@ -366,7 +366,7 @@
366
366
  loaded = typeof window.CodeMirror === 'function';
367
367
 
368
368
  /**
369
- * 代替CodeMirror的局部变量
369
+ * 代替`CodeMirror`的局部变量
370
370
  * @type {typeof CodeMirror}
371
371
  */
372
372
  const CM = loaded
@@ -470,7 +470,7 @@
470
470
  }
471
471
  if (config && config.redirect && config.img) { // 情形1:config已更新,可能来自localStorage
472
472
  return config;
473
- } else if (config) { /** @todo 暂不需要redirectimg相关设置 */
473
+ } else if (config) { /** @todo 暂不需要`redirect`和`img`相关设置 */
474
474
  return config;
475
475
  }
476
476
 
@@ -478,7 +478,7 @@
478
478
  * 以下情形均需要发送API请求
479
479
  * 情形2:localStorage未过期但不包含新设置
480
480
  * 情形3:新加载的 ext.CodeMirror.data
481
- * 情形4config === null
481
+ * 情形4:`config === null`
482
482
  */
483
483
  const {query: {magicwords, extensiontags, functionhooks, variables}} = await new mw.Api().get({
484
484
  meta: 'siteinfo',
@@ -502,7 +502,7 @@
502
502
  aliases.map(({alias, name}) => [alias.replace(/:$/, ''), name]),
503
503
  );
504
504
 
505
- if (!config) { // 情形4config === null\
505
+ if (!config) { // 情形4:`config === null`
506
506
  config = {
507
507
  tagModes: {
508
508
  pre: 'mw-tag-pre',
@@ -584,7 +584,7 @@
584
584
 
585
585
  if (mode === 'mediawiki' && mwConfig.tags.html) {
586
586
  mwConfig.tagModes.html = 'htmlmixed';
587
- await initMode('html'); // 如果已经缓存过mwConfig,这一步什么都不会发生
587
+ await initMode('html'); // 如果已经缓存过`mwConfig`,这一步什么都不会发生
588
588
  } else if (mode === 'widget' && !CodeMirror.mimeModes.widget) { // 到这里CodeMirror已确定加载完毕
589
589
  CodeMirror.defineMIME('widget', {
590
590
  name: 'htmlmixed',
@@ -601,11 +601,10 @@
601
601
  cm.toTextArea();
602
602
  }
603
603
 
604
- const json = setting || contentmodel === 'json',
605
- {name} = $.client.profile();
604
+ const json = setting || contentmodel === 'json';
606
605
  cm = CodeMirror.fromTextArea($target[0], $.extend({
607
- inputStyle: name === 'safari' ? 'textarea' : 'contenteditable',
608
- lineNumbers: true,
606
+ inputStyle: 'contenteditable',
607
+ lineNumbers: !/Android\b/.test(navigator.userAgent),
609
608
  lineWrapping: true,
610
609
  mode,
611
610
  mwConfig,
@@ -626,6 +625,7 @@
626
625
  ));
627
626
  cm.setSize(null, height);
628
627
  cm.refresh();
628
+ cm.getWrapperElement().id = 'Wikiplus-CodeMirror';
629
629
 
630
630
  handleContextMenu(cm, mode);
631
631
 
@@ -678,8 +678,10 @@
678
678
 
679
679
  // 添加样式
680
680
  const wphlStyle = document.getElementById('wphl-style') || mw.loader.addStyleTag(
681
- '#Wikiplus-Quickedit+.CodeMirror,#Wikiplus-Setting-Input+.CodeMirror'
682
- + '{border:1px solid #c8ccd1;line-height:1.3;clear:both}'
681
+ '#Wikiplus-CodeMirror{border:1px solid #c8ccd1;line-height:1.3;clear:both;'
682
+ + '-moz-user-select:auto;-webkit-user-select:auto;user-select:auto}' // fix mobile select
683
+ + '#Wikiplus-CodeMirror .CodeMirror-gutter-wrapper{'
684
+ + '-moz-user-select:none;-webkit-user-select:none;user-select:none}' // fix iOS select-all
683
685
  + 'div.Wikiplus-InterBox{font-size:14px;z-index:100}'
684
686
  + '.skin-minerva .Wikiplus-InterBox{font-size:16px}'
685
687
  + '.cm-trailingspace{text-decoration:underline wavy red}'
@@ -767,7 +769,7 @@
767
769
  widget.setValue(addons);
768
770
  indentWidget.setValue(indent);
769
771
  }
770
- const wikiplusLoaded = typeof window.Wikiplus === 'object';
772
+ const wikiplusLoaded = typeof window.Wikiplus === 'object' || typeof window.Pages === 'object';
771
773
  widget.$element.find('.oo-ui-checkboxInputWidget').first().toggleClass('oo-ui-widget-enabled', wikiplusLoaded)
772
774
  .children('input').prop('disabled', !wikiplusLoaded);
773
775
  dialog.open({
@@ -836,10 +838,8 @@
836
838
  mw.hook('inspector').add(/** @param {CodeMirror.Editor} doc */ doc => handleOtherEditors(doc));
837
839
 
838
840
  mw.libs.wphl = {
839
- version, majorVersion, options, addons, indent, i18n, i18nLang, wphlStyle, $portlet,
840
- CDN, CM_CDN, MW_CDN, REPO_CDN, USING_LOCAL, MODE_LIST, ADDON_LIST, I18N_CDN,
841
- getVersion, cmpVersion, msg, htmlMsg, escapeHTML, handleContextMenu, setI18N, getScript, getAddonScript,
842
- intersect, initMode, updateCachedConfig, getMwConfig, getPageMode, renderEditor, handleOtherEditors,
841
+ version, options, addons, i18n, i18nLang, wphlStyle, $portlet, USING_LOCAL, MODE_LIST, ADDON_LIST,
842
+ msg, htmlMsg, escapeHTML, handleContextMenu, setI18N, getAddonScript,
843
+ intersect, updateCachedConfig, getMwConfig, renderEditor, handleOtherEditors,
843
844
  }; // 加载完毕
844
- Object.freeze(mw.libs.wphl);
845
845
  })();
package/matchtags.js CHANGED
@@ -59,7 +59,7 @@
59
59
  return true;
60
60
  }
61
61
 
62
- /** Jump to the letter after a '>' towards the line end */
62
+ /** Jump to the letter after a `>` towards the line end */
63
63
  toTagEnd() {
64
64
  for (;;) {
65
65
  const gt = this.text.indexOf('>', this.ch);
@@ -74,7 +74,7 @@
74
74
  }
75
75
  }
76
76
 
77
- /** Jump to a '<' towards the line start */
77
+ /** Jump to a `<` towards the line start */
78
78
  toTagStart() {
79
79
  for (;;) {
80
80
  const lt = this.ch ? this.text.lastIndexOf('<', this.ch - 1) : -1;
@@ -94,7 +94,7 @@
94
94
  }
95
95
  }
96
96
 
97
- /** Jump to the start of the last line, or the letter after a ${tagStart} */
97
+ /** Jump to the start of the last line, or the letter after a `tagStart` */
98
98
  toNextTag() {
99
99
  for (;;) {
100
100
  tagStart.lastIndex = this.ch;
@@ -115,7 +115,7 @@
115
115
  }
116
116
  }
117
117
 
118
- /** Jump to the end of the first line, or a non-bracket '>', or the letter after a tag bracket '>' */
118
+ /** Jump to the end of the first line, or a non-bracket `>`, or the letter after a tag bracket `>` */
119
119
  toPrevTag() {
120
120
  for (;;) {
121
121
  const gt = this.ch ? this.text.lastIndexOf('>', this.ch - 1) : -1;
@@ -265,7 +265,7 @@
265
265
  },
266
266
  );
267
267
 
268
- // Used by addon/edit/closetag.js
268
+ /** Used by addon/edit/closetag.js */
269
269
  CodeMirror.scanForClosingTag = function(cm, pos, name) {
270
270
  const iter = new Iter(cm, pos);
271
271
  return iter.findMatchingClose(name);
package/package.json CHANGED
@@ -1,27 +1,27 @@
1
1
  {
2
2
  "name": "wikiplus-highlight",
3
- "version": "2.15.2",
3
+ "version": "2.16.0",
4
4
  "description": "A plugin for the MediaWiki front-end add-on \"Wikiplus\"",
5
- "main": "main.js",
6
- "scripts": {
7
- "test": "http-server -c-1 --cors",
8
- "ssl": "http-server -c-1 -S -C cert.pem"
9
- },
10
- "repository": {
11
- "type": "git",
12
- "url": "git+https://github.com/bhsd-harry/Wikiplus-highlight.git"
13
- },
14
5
  "keywords": [
15
6
  "mediawiki",
16
7
  "codemirror",
17
8
  "wikiplus"
18
9
  ],
19
- "author": "Bhsd",
20
- "license": "GPL-3.0",
10
+ "homepage": "https://github.com/bhsd-harry/Wikiplus-highlight#readme",
21
11
  "bugs": {
22
12
  "url": "https://github.com/bhsd-harry/Wikiplus-highlight/issues"
23
13
  },
24
- "homepage": "https://github.com/bhsd-harry/Wikiplus-highlight#readme",
14
+ "license": "GPL-3.0",
15
+ "author": "Bhsd",
16
+ "browser": "main.js",
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "git+https://github.com/bhsd-harry/Wikiplus-highlight.git"
20
+ },
21
+ "scripts": {
22
+ "test": "http-server -c-1 --cors",
23
+ "ssl": "http-server -c-1 -S -C cert.pem"
24
+ },
25
25
  "devDependencies": {
26
26
  "eslint": "^8.8.0",
27
27
  "http-server": "^14.1.0",
package/search.js CHANGED
@@ -63,15 +63,15 @@
63
63
  };
64
64
  };
65
65
 
66
- // input event handler of $search
66
+ /** input event handler of `$search` */
67
67
  const onInput = () => {
68
68
  $search.css('background-color', '').off('input', onInput);
69
69
  };
70
70
 
71
- // keyboard event handler of $search
72
71
  let /** @type {string|RegExp} */ lastPtn,
73
72
  /** @type {CodeMirror.SearchCursor} */ cursor;
74
73
  /**
74
+ * keyboard event handler of `$search`
75
75
  * @param {CodeMirror.Editor} cm
76
76
  * @param {boolean} dir
77
77
  */
@@ -93,7 +93,7 @@
93
93
  lastPtn = ptn;
94
94
  cursor = cm.getSearchCursor(ptn, cm.getCursor(), {caseFold: true});
95
95
  }
96
- let result = dir ? cursor.findNext() : cursor.findPreviouse();
96
+ let result = dir ? cursor.findNext() : cursor.findPrevious();
97
97
  if (!result) {
98
98
  if (dir) {
99
99
  cursor = cm.getSearchCursor(ptn, {line: 0, ch: 0}, {caseFold: true});
@@ -102,7 +102,7 @@
102
102
  lastCh = cm.getLine(lastLine).length;
103
103
  cursor = cm.getSearchCursor(ptn, {line: lastLine, ch: lastCh}, {caseFold: true});
104
104
  }
105
- result = dir ? cursor.findNext() : cursor.findPreviouse();
105
+ result = dir ? cursor.findNext() : cursor.findPrevious();
106
106
  }
107
107
  if (result) {
108
108
  const from = cursor.from(),
@@ -115,7 +115,7 @@
115
115
  }
116
116
  };
117
117
 
118
- // click event handler of $searchBtn
118
+ /** click event handler of `$searchBtn` */
119
119
  const findNew = () => {
120
120
  $searchContainer.show();
121
121
  $search.select().focus()[0]
@@ -123,7 +123,7 @@
123
123
  };
124
124
 
125
125
  /**
126
- * click event handler of $searchClose
126
+ * click event handler of `$searchClose`
127
127
  * @param {CodeMirror.Editor} cm
128
128
  */
129
129
  const reset = cm => {
@@ -139,12 +139,6 @@
139
139
  findNext(doc, false);
140
140
  };
141
141
 
142
- const {name} = $.client.profile(),
143
- focus = name === 'safari'
144
- ? /** @param {CodeMirror.Editor} cm */ cm => {
145
- cm.focus();
146
- }
147
- : () => {};
148
142
  mw.hook('wiki-codemirror').add(/** @param {CodeMirror.Editor} cm */ cm => {
149
143
  if (!cm.getOption('styleSelectedText')) {
150
144
  return;
@@ -160,17 +154,14 @@
160
154
  });
161
155
  $searchNext.click(() => {
162
156
  findNext(cm, true);
163
- focus(cm);
164
157
  });
165
158
  $searchPrev.click(() => {
166
159
  findNext(cm, false);
167
- focus(cm);
168
160
  });
169
161
  $search.val('').keydown(e => {
170
162
  if (e.key === 'Enter') {
171
163
  e.preventDefault();
172
164
  findNext(cm, true);
173
- focus(cm);
174
165
  } else if (e.key === 'Escape') {
175
166
  e.stopPropagation();
176
167
  reset(cm);
@@ -187,6 +178,7 @@
187
178
  + '#Wikiplus-Quickedit-Search-Div{margin:7px 0 5px;}'
188
179
  + '.Wikiplus-Symbol-Btn{font-size:20px;margin:7px;vertical-align:middle;cursor:pointer;}'
189
180
  + '#Wikiplus-Quickedit-Search{width:50%;}'
190
- + 'span.cm-search{background-color:#ffc0cb83;}',
181
+ + '.cm-search{background-color:#ffc0cb83;}'
182
+ + 'span.CodeMirror-selectedtext{background:#d7d4f0}',
191
183
  );
192
184
  })();