wikiplus-highlight 2.25.4 → 2.37.2
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 +2 -2
- package/dist/main.min.js +1 -1
- package/dist/main.min.js.map +1 -1
- package/fold.js +3 -1
- package/i18n/en.json +5 -2
- package/i18n/ka.json +1 -1
- package/i18n/zh-hans.json +5 -2
- package/i18n/zh-hant.json +2 -2
- package/lint.js +40 -23
- package/main.js +35 -42
- package/matchtags.js +10 -11
- package/package.json +1 -1
- package/search.js +88 -15
package/README.md
CHANGED
|
@@ -11,13 +11,13 @@
|
|
|
11
11
|
在*个人 JS 页*添加以下代码:
|
|
12
12
|
|
|
13
13
|
```javascript
|
|
14
|
-
mw.loader.load('//cdn.jsdelivr.net/npm/wikiplus-highlight@2.
|
|
14
|
+
mw.loader.load('//cdn.jsdelivr.net/npm/wikiplus-highlight@2.37.2');
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
或
|
|
18
18
|
|
|
19
19
|
```javascript
|
|
20
|
-
mw.loader.load('//unpkg.com/wikiplus-highlight@2.
|
|
20
|
+
mw.loader.load('//unpkg.com/wikiplus-highlight@2.37.2/dist/main.min.js');
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
### 稳定版本
|
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={};const i="2.25.4",w="object"==typeof mw.storage&&"function"==typeof mw.storage.getObject?mw.storage:{getObject(e){var i=localStorage.getItem(e);if(!1===i)return!1;try{return JSON.parse(i)}catch(e){return null}},setObject(e,i){try{return localStorage.setItem(e,JSON.stringify(i))}catch(e){return!1}}},P=(Object.fromEntries=Object.fromEntries||(e=>{const i={};for(var[t,o]of e)i[t]=o;return i}),e=>"function"==typeof e.flat?e.flat():e.reduce((e,i)=>e.concat(i),[])),r=(e=i)=>e.split(".").map(Number);const h=(e,...i)=>mw.msg("wphl-"+e,...i),n=(...e)=>$($.parseHTML(h(...e)));var e=(...i)=>()=>{var e=$("<p>",{html:h(...i)});return mw.notify(e,{type:"success",autoHideSeconds:"long",tag:"wikiplus-highlight"}),e},t=r().slice(0,2).join(".");const s="//fastly.jsdelivr.net",l="npm/codemirror@5.65.3",D="gh/bhsd-harry/codemirror-mediawiki@1.1.6",o="npm/wikiplus-highlight@"+t,{wgPageName:N,wgNamespaceNumber:k,wgPageContentModel:F,wgServerName:H,wgScriptPath:U,wgUserLanguage:V,skin:d}=mw["config"]["values"],u=null!==mw.loader.getState("ext.CodeMirror"),a=w.getObject("InPageEditMwConfig")||{},B=""+H+U,f=a[B]||{},b=!(f.time>Date.now()-2592e6),Q={css:"css","sanitized-css":"css",javascript:"javascript",json:"javascript",wikitext:"mediawiki"},c=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:b?"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"},m={searchcursor:l+"/addon/search/searchcursor.min.js",search:o+"/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:o+"/matchtags.min.js",fold:o+"/fold.min.js",wikiEditor:"ext.wikiEditor",contextmenu:"mediawiki.Title",lint:l+"/addon/lint/lint.min.js",annotateScrollbar:l+"/addon/scroll/annotatescrollbar.min.js",parser:"gh/bhsd-harry/wikiparser-node@0.6.0-b/bundle/bundle.min.js",lintWikitext:o+"/lint.min.js"},x=[{option:"styleSelectedText",addon:"search",download:"markSelection",only:!0,complex:()=>!y.has("wikiEditor")},{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"]}],y=new Set(w.getObject("Wikiplus-highlight-addons")||["search"]);let v=w.getObject("Wikiplus-highlight-indent")||4;const q={'"':"quot","'":"apos","<":"lt",">":"gt","&":"amp"," ":"nbsp"},g=i=>e=>{e.replaceSelection(e.getSelection().split("\n").map(i).join("\n"),"around")},p=g(e=>[...e].map(e=>{if(e in q)return`&${q[e]};`;const i=e.codePointAt();return i<256?`&#${i};`:`&#x${i.toString(16)};`}).join("")),C=({keyMap:e})=>e.default===e.pcDefault,K={"Ctrl-/":p,"Ctrl-\\":g(encodeURIComponent)},J={"Cmd-/":p,"Cmd-\\":g(encodeURIComponent)},j=(u,e)=>{if(("mediawiki"===e||"widget"===e)&&y.has("contextmenu")){const t=$(u.getWrapperElement()).addClass("CodeMirror-contextmenu"),[o]=(mw.config.get("extCodeMirrorConfig")||{functionSynonyms:[{invoke:"invoke","调用":"invoke",widget:"widget","小工具":"widget"}]})["functionSynonyms"];var i=i=>Object.keys(o).filter(e=>o[e]===i).map(e=>e.startsWith("#")?e:"#"+e);const w=i("invoke"),h=i("widget");t.contextmenu(({pageX:e,pageY:i})=>{const t=u.coordsChar({left:e,top:i}),{line:o,ch:a}=t,n=u.getTokenTypeAt(t);if(/\bmw-(?:template-name|parserfunction)\b/.test(n)){const c=u.getLineTokens(o);for(let e=c.length-1;0<e;e--){var{type:r,end:s,string:l}=c[e];c[e-1].type===r&&(c[e-1].end=s,c[e-1].string+=l,c.splice(e,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(n)){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)){var d=c[m-2].string.trim().toLowerCase();if(w.includes(d))open(mw.util.getUrl("Module:"+g),"_blank");else{if(!h.includes(d))return;open(mw.util.getUrl("Widget:"+g,{action:"edit"}),"_blank")}return!1}}})}},S=w.getObject("Wikiplus-highlight-i18n")||{};let M;S["wphl-version"]?((e,i)=>{var[t,o]=r(e),[a,n]=r(i);return t<a||t===a&&o<n})(S["wphl-version"],i)&&(M=e("welcome-new-addon",i,1)):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",ka:"ka"}[V]||"en",R=`${s}/${o}/i18n/${W}.json`,G=S["wphl-version"]===t;e=async()=>{G&&S["wphl-lang"]===W||(Object.assign(S,await $.ajax(R,{dataType:"json",cache:!0})),w.setObject("Wikiplus-highlight-i18n",S)),mw.messages.set(S)},t=Promise.all([mw.loader.using("mediawiki.util"),e()]);const X=e=>0<e.length?mw.loader.using(e):Promise.resolve(),Y=e=>0<e.length?$.ajax(s+"/"+(1<e.length?"combine/":"")+e.join(),{dataType:"script",cache:!0}):Promise.resolve(),Z=async(e,i)=>{var t=e.filter(e=>!e.includes("/")),o=e.filter(e=>e.includes("/"));return!0===i?(await X(t),Y(o)):!1===i?(await Y(o),X(t)):Promise.all([X(t),Y(o)])};let O;const ee=(e,i=!1)=>{const t=[];for(var{option:o,addon:a=o,download:n=Array.isArray(a)?o:a,only:r}of x)r&&i||o in e.optionHandlers||!ie(a,y)||t.push(m[n]);return t},ie=(e,i)=>Array.isArray(e)?e.some(e=>i.has(e)):i.has(e),te=e=>{let i=[];var t,o="function"==typeof window.CodeMirror,a=o?window.CodeMirror:{modes:{},prototype:{},commands:{},optionHandlers:{},helpers:{}};if(o||(i.push(c.lib),u||mw.loader.load(`${s}/${l}/lib/codemirror.min.css`,"text/css")),"mediawiki"!==(e="mediawiki"===e&&f.config&&f.config.tags.html?"html":e)&&"widget"!==e||a.modes.mediawiki||(mw.loader.load(`${s}/${D}/mediawiki.min.css`,"text/css"),i.push(D+"/mediawiki.min.js")),"widget"===e||"html"===e)for(const n of["css","javascript","mediawiki","htmlmixed","xml"])a.modes[n]||(i=i.concat(c[n]));else i=i.concat(c[e]);return a.prototype.getSearchCursor||!y.has("search")||y.has("wikiEditor")||i.push(m.searchcursor),!a.prototype.annotateScrollbar&&"mediawiki"===e&&y.has("lint")&&i.push(m.annotateScrollbar),a.commands.findForward||!y.has("search")||y.has("wikiEditor")||i.push(m.search),!window.Parser&&"mediawiki"===e&&y.has("lint")&&i.push(m.parser),!a.optionHandlers.lint&&"mediawiki"===e&&y.has("lint")&&(mw.loader.load(`${s}/${l}/addon/lint/lint.min.css`,"text/css"),i.push(m.lint)),a.helpers.lint&&a.helpers.lint.mediawiki||"mediawiki"!==e||!y.has("lint")||i.push(m.lintWikitext),y.has("wikiEditor")&&((t=mw.loader.getState("ext.wikiEditor"))?"ready"!==t&&i.push(m.wikiEditor):y.delete("wikiEditor")),"ready"!==mw.loader.getState("mediawiki.Title")&&y.has("contextmenu")&&i.push(m.contextmenu),i.push(...ee(a)),Z(i,o?void 0:u)},oe=e=>{a[B]={config:e,time:Date.now()},w.setObject("InPageEditMwConfig",a)},E=e=>P(e.map(({aliases:e,name:i})=>e.map(e=>({alias:e,name:i})))),_=e=>Object.fromEntries(e.map(({alias:e,name:i})=>[e.replace(/:$/,""),i])),ae=async(e,i)=>{if("mediawiki"===e||"widget"===e){u&&b&&await i;let e=mw.config.get("extCodeMirrorConfig");if(e||b||!G||({config:e}=f,e.tags.ref&&(e.tagModes.ref="text/mediawiki"),mw.config.set("extCodeMirrorConfig",e)),e&&e.redirect&&e.img)return e;const{magicwords:a,extensiontags:n,functionhooks:r,variables:s}=(await(new mw.Api).get({meta:"siteinfo",siprop:e?"magicwords":"magicwords|extensiontags|functionhooks|variables",formatversion:2}))["query"],l=["msg","raw","msgnw","subst","safesubst"];if(e){const[d]=e["functionSynonyms"];var t,o;if(!d.subst)for({alias:t,name:o}of E(a.filter(({name:e})=>l.includes(e))))d[t.replace(/:$/,"")]=o}else{e={tagModes:{pre:"mw-tag-pre",nowiki:"mw-tag-nowiki",ref:"text/mediawiki"},tags:Object.fromEntries(n.map(e=>[e.slice(1,-1),!0])),urlProtocols:mw.config.get("wgUrlProtocols")};const c=new Set([...r,...s,...l]),m=a.filter(({name:e,aliases:i})=>i.some(e=>/^__.+__$/.test(e))||c.has(e)),g=E(m.filter(e=>e["case-sensitive"])),p=E(m.filter(e=>!e["case-sensitive"])).map(({alias:e,name:i})=>({alias:e.toLowerCase(),name:i}));e.doubleUnderscore=[_(p.filter(({alias:e})=>/^__.+__$/.test(e))),_(g.filter(({alias:e})=>/^__.+__$/.test(e)))],e.functionSynonyms=[_(p.filter(({alias:e})=>!/^__.+__|^#$/.test(e))),_(g.filter(({alias:e})=>!/^__.+__|^#$/.test(e)))]}return e.redirect=a.find(({name:e})=>"redirect"===e).aliases,e.img=_(E(a.filter(({name:e})=>e.startsWith("img_")))),mw.config.set("extCodeMirrorConfig",e),oe(e),e}},ne={getContents(){return O.getValue()},setContents(e){return O.setValue(e),this},getSelection(){return O.getSelection()},setSelection(e){return O.setSelection(O.posFromIndex(e.start),"end"in e?O.posFromIndex(e.end):void 0),O.focus(),this},replaceSelection(e){return O.replaceSelection(e),this},getCaretPosition(e){var i=O.indexFromPos(O.getCursor("from")),t=O.indexFromPos(O.getCursor("to"));return e.startAndEnd?[i,t]:i},scrollToCaretPosition(){return O.scrollIntoView(),this}},re=async(e,i)=>{const n=i?"javascript":await(async()=>{if(N.endsWith("/doc"))return"mediawiki";if(274!==k&&828!==k)return Q[F];const e=274===k?"Widget":"Lua";return await mw.loader.using(["oojs-ui-windows","oojs-ui.styles.icons-content"]),await OO.ui.confirm(h("contentmodel"),{actions:[{label:e},{label:"Wikitext",action:"accept"}]})?"mediawiki":e.toLowerCase()})(),t=te(n),[o]=await Promise.all([ae(n,t),t]);if(!i&&y.has("wikiEditor"))try{if("function"==typeof mw.addWikiEditor)mw.addWikiEditor(e);else{const{modules:{dialogs:{config:s}}}=$["wikiEditor"];e.wikiEditor("addModule",{...$.wikiEditor.modules.toolbar.config.getDefaultConfig(),...s.getDefaultConfig()}),s.replaceIcons(e)}}catch(e){y.delete("wikiEditor"),mw.notify("WikiEditor工具栏加载失败。",{type:"error"}),console.error(e)}"mediawiki"===n&&o.tags.html?(o.tagModes.html="htmlmixed",await te("html")):"widget"!==n||CodeMirror.mimeModes.widget||CodeMirror.defineMIME("widget",{name:"htmlmixed",tags:{noinclude:[[null,null,"mediawiki"]]}});var a=e.height();O&&O.toTextArea();const r=i||"json"===F;if((O=CodeMirror.fromTextArea(e[0],$.extend({inputStyle:"contenteditable",lineNumbers:!/Android\b/.test(navigator.userAgent),lineWrapping:!0,mode:n,mwConfig:o,json:r},Object.fromEntries(x.map(({option:e,addon:i=e,modes:t,complex:o=e=>!t||t.includes(e)})=>{var a=Array.isArray(i)?i[0]:i;return[e,y.has(a)&&o(n,r)]})),"mediawiki"===n?{extraKeys:y.has("escape")&&(C(CodeMirror)?K:J)}:{indentUnit:y.has("indentWithSpace")?v:4,indentWithTabs:!y.has("indentWithSpace")}))).setSize(null,a),O.getWrapperElement().id="Wikiplus-CodeMirror",$.fn.textSelection&&e.textSelection("register",ne),y.has("wikiEditor")){const l=e.data("wikiEditorContext"),d=CodeMirror["keyMap"],c=()=>{$.wikiEditor.modules.dialogs.api.openDialog(l,"search-and-replace")};O.addKeyMap(d.default===d.pcDefault?{"Ctrl-F":c}:{"Cmd-F":c})}if(j(O,n),$("#Wikiplus-Quickedit-Jump").children("a").attr("href","#Wikiplus-CodeMirror"),!i){const m="object"==typeof window.Wikiplus?window.Wikiplus:{getSetting(e){var i=w.getObject("Wikiplus_Settings");return i&&i[e]}},g=m.getSetting("esc_to_exit_quickedit"),p=()=>{$("#Wikiplus-Quickedit-Submit").triggerHandler("click")},u=()=>{$("#Wikiplus-Quickedit-MinorEdit").click(),$("#Wikiplus-Quickedit-Submit").triggerHandler("click")};O.addKeyMap($.extend(C(CodeMirror)?{"Ctrl-S":p,"Shift-Ctrl-S":u}:{"Cmd-S":p,"Shift-Cmd-S":u},!0===g||"true"===g?{Esc(){$("#Wikiplus-Quickedit-Back").triggerHandler("click")}}:{}))}O.refresh(),mw.hook("wiki-codemirror").fire(O)},se=document["body"],le=new MutationObserver(e=>{const i=$(P(e.map(({addedNodes:e})=>[...e]))).find("#Wikiplus-Quickedit, #Wikiplus-Setting-Input");0!==i.length&&re(i,"Wikiplus-Setting-Input"===i.attr("id"))}),de=(le.observe(se,{childList:!0}),$(se).on("keydown.wphl",".ui-dialog",function(e){if("Escape"===e.key){const i=$(this).children(".ui-dialog-content").data("context");i&&i.$textarea&&"Wikiplus-Quickedit"===i.$textarea.attr("id")&&e.stopPropagation()}}),document.querySelector("#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}.skin-moeskin #ca-more-actions li>a{display:inline-block;padding:0.4rem 0.8rem;line-height:1.5}")),{get:ce=e=>e.value,set:me=(e,i)=>{e.value=i}}=(de.id="wphl-style",$.valHooks.textarea||{}),ge=e=>"Wikiplus-Quickedit"===e.id||"Wikiplus-Setting-Input"===e.id;$.valHooks.textarea={get(e){return ge(e)&&O?O.getValue():ce(e)},set(e,i){ge(e)&&O?O.setValue(i):me(e,i)}},await t;let z,I,pe,ue,we,T,he,A;const ke=(e=[...y])=>{A.toggle(e.includes("indentWithSpace"))};const fe=$(mw.util.addPortletLink({minerva:"page-actions-overflow",citizen:"p-actions",moeskin:"ca-more-actions"}[d]||"p-cactions","#",h("portlet"),"wphl-settings")).click(async e=>{if(e.preventDefault(),z)I.setValue([...y]),T.setValue(v);else{await mw.loader.using(["oojs-ui-windows","oojs-ui.styles.icons-content"]),z=new OO.ui.MessageDialog({id:"Wikiplus-highlight-dialog"});const t=new OO.ui.WindowManager,o=(t.$element.appendTo(se),t.addWindows([z]),I=new OO.ui.CheckboxMultiselectInputWidget({options:[...x.map(({option:e,addon:i=e})=>{const t=Array.isArray(i)?i[0]:i;return{data:t,label:n("addon-"+t.toLowerCase())}}),...["wikiEditor","escape","contextmenu","lint","indentWithSpace","otherEditors"].map(e=>({data:e,label:n("addon-"+e.toLowerCase())}))],value:[...y]}).on("change",ke))["checkboxMultiselectWidget"];pe=o.findItemFromData("search"),ue=o.findItemFromData("wikiEditor"),we=o.findItemFromData("lint"),T=new OO.ui.NumberInputWidget({min:0,value:v}),he=new OO.ui.FieldLayout(I,{label:h("addon-label"),notices:[h("addon-notice")],align:"top"}),A=new OO.ui.FieldLayout(T,{label:h("addon-indent")}),ke(),Object.assign(mw.libs.wphl,{widget:I,indentWidget:T})}var i="object"==typeof window.Wikiplus||"object"==typeof window.Pages,i=(pe.setDisabled(!i),ue.setDisabled(!i||!mw.loader.getState("ext.wikiEditor")),we.setDisabled(!i),await z.open({title:h("addon-title"),message:he.$element.add(A.$element).add($("<p>",{html:h("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||"minerva"===d?"medium":"small"}).closing);if(he.$element.detach(),A.$element.detach(),"object"==typeof i&&"accept"===i.action){i=I.getValue();y.clear();for(const a of i)y.add(a);v=Number(T.getValue()),w.setObject("Wikiplus-highlight-addons",i),w.setObject("Wikiplus-highlight-indent",v)}}),L=("minerva"===d&&fe.find(".mw-ui-icon").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(y.has("otherEditors")){let e=i.getOption("mode");e="text/mediawiki"===e?"mediawiki":e;var t=ee(CodeMirror,!0),o=i.getOption("json");await Z(t);for(const{option:n,addon:r=n,modes:s,complex:l=e=>!s||s.includes(e)}of x.filter(({only:e})=>!e)){var a=Array.isArray(r)?r[0]:r;void 0===i.getOption(n)&&y.has(a)&&i.setOption(n,l(e,o))}"mediawiki"===e&&y.has("escape")?i.addKeyMap(C(CodeMirror)?K:J,!0):"mediawiki"!==e&&y.has("indentWithSpace")&&(i.setOption("indentUnit",v),i.setOption("indentWithTabs",!1)),j(i,e)}});mw.hook("InPageEdit.quickEdit.codemirror").add(({cm:e})=>L(e)),mw.hook("inspector").add(e=>L(e)),mw.hook("wiki-codemirror").add(e=>{e.getTextArea&&ge(e.getTextArea())||L(e)}),mw.libs.wphl={version:i,options:x,addons:y,i18n:S,i18nLang:W,wphlStyle:de,$portlet:fe,USING_LOCAL:u,MODE_LIST:c,ADDON_LIST:m,msg:h,htmlMsg:n,escapeHTML:p,handleContextMenu:j,setI18N:e,getAddonScript:ee,updateCachedConfig:oe,getMwConfig:ae,renderEditor:re,handleOtherEditors:L}})();
|
|
7
|
+
(async()=>{"use strict";if(mw.libs.wphl)return;mw.libs.wphl={};const i="2.37.2",w="object"==typeof mw.storage&&"function"==typeof mw.storage.getObject?mw.storage:{getObject(e){var i=localStorage.getItem(e);if(!1===i)return!1;try{return JSON.parse(i)}catch(e){return null}},setObject(e,i){try{return localStorage.setItem(e,JSON.stringify(i))}catch(e){return!1}}},r=(Object.fromEntries=Object.fromEntries||(e=>{const i={};for(var[t,o]of e)i[t]=o;return i}),(e=i)=>e.split(".").map(Number));const h=(e,...i)=>mw.msg("wphl-"+e,...i),n=(...e)=>$($.parseHTML(h(...e)));var e=(...i)=>()=>{var e=$("<p>",{html:h(...i)});return mw.notify(e,{type:"success",autoHideSeconds:"long",tag:"wikiplus-highlight"}),e},t=r().slice(0,2).join(".");const s="//fastly.jsdelivr.net",l="npm/codemirror@5.65.3",L="gh/bhsd-harry/codemirror-mediawiki@1.1.6",o="npm/wikiplus-highlight@"+t,{wgPageName:D,wgNamespaceNumber:k,wgPageContentModel:N,wgServerName:F,wgScriptPath:H,wgUserLanguage:U,skin:d}=mw["config"]["values"],u=null!==mw.loader.getState("ext.CodeMirror"),a=w.getObject("InPageEditMwConfig")||{},V=""+F+H,f=a[V]||{},b=!(f.time>Date.now()-2592e6),B={css:"css","sanitized-css":"css",javascript:"javascript",json:"javascript",wikitext:"mediawiki"},c=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:b?"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"},m={searchcursor:l+"/addon/search/searchcursor.min.js",search:o+"/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:o+"/matchtags.min.js",fold:o+"/fold.min.js",wikiEditor:"ext.wikiEditor",contextmenu:"mediawiki.Title",lint:l+"/addon/lint/lint.min.js",annotateScrollbar:l+"/addon/scroll/annotatescrollbar.min.js",parser:"gh/bhsd-harry/wikiparser-node@0.6.18-b/bundle/bundle.min.js",lintWikitext:o+"/lint.min.js"},x=[{option:"styleSelectedText",addon:"search",download:"markSelection",only:!0,complex:()=>!y.has("wikiEditor")},{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:new Set(["mediawiki","widget"])},{option:"fold",modes:new Set(["mediawiki","widget"])}],y=new Set(w.getObject("Wikiplus-highlight-addons")||["search"]);let v=w.getObject("Wikiplus-highlight-indent")||4;const Q={'"':"quot","'":"apos","<":"lt",">":"gt","&":"amp"," ":"nbsp"},g=i=>e=>{e.replaceSelection(e.getSelection().split("\n").map(i).join("\n"),"around")},p=g(e=>[...e].map(e=>{if(e in Q)return`&${Q[e]};`;const i=e.codePointAt();return i<256?`&#${i};`:`&#x${i.toString(16)};`}).join("")),C=({keyMap:e})=>e.default===e.pcDefault,q={"Ctrl-/":p,"Ctrl-\\":g(encodeURIComponent)},K={"Cmd-/":p,"Cmd-\\":g(encodeURIComponent)},j=(u,e)=>{if(("mediawiki"===e||"widget"===e)&&y.has("contextmenu")){const t=$(u.getWrapperElement()).addClass("CodeMirror-contextmenu"),[o]=(mw.config.get("extCodeMirrorConfig")||{functionSynonyms:[{invoke:"invoke","调用":"invoke",widget:"widget","小工具":"widget"}]})["functionSynonyms"];var i=i=>new Set(Object.keys(o).filter(e=>o[e]===i).map(e=>e.startsWith("#")?e:"#"+e));const w=i("invoke"),h=i("widget");t.contextmenu(({pageX:e,pageY:i})=>{const t=u.coordsChar({left:e,top:i}),{line:o,ch:a}=t,n=u.getTokenTypeAt(t);if(/\bmw-(?:template-name|parserfunction)\b/.test(n)){const c=u.getLineTokens(o);for(let e=c.length-1;0<e;e--){var{type:r,end:s,string:l}=c[e];c[e-1].type===r&&(c[e-1].end=s,c[e-1].string+=l,c.splice(e,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(n)){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)){var d=c[m-2].string.trim().toLowerCase();if(w.has(d))open(mw.util.getUrl("Module:"+g),"_blank");else{if(!h.has(d))return;open(mw.util.getUrl("Widget:"+g,{action:"edit"}),"_blank")}return!1}}})}},S=w.getObject("Wikiplus-highlight-i18n")||{};let M;S["wphl-version"]?((e,i)=>{var[t,o]=r(e),[a,n]=r(i);return t<a||t===a&&o<n})(S["wphl-version"],i)&&(M=e("welcome-upgrade",i,0)):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",ka:"ka"}[U]||"en",J=`${s}/${o}/i18n/${W}.json`,R=S["wphl-version"]===t;e=async()=>{R&&S["wphl-lang"]===W||(Object.assign(S,await $.ajax(J,{dataType:"json",cache:!0})),w.setObject("Wikiplus-highlight-i18n",S)),mw.messages.set(S)},t=Promise.all([mw.loader.using("mediawiki.util"),e()]);const G=e=>0<e.length?mw.loader.using(e):Promise.resolve(),X=e=>0<e.length?$.ajax(s+"/"+(1<e.length?"combine/":"")+e.join(),{dataType:"script",cache:!0}):Promise.resolve(),Y=async(e,i)=>{var t=e.filter(e=>!e.includes("/")),o=e.filter(e=>e.includes("/"));return!0===i?(await G(t),X(o)):!1===i?(await X(o),G(t)):Promise.all([G(t),X(o)])};let O;const Z=(e,i=!1)=>{const t=[];for(var{option:o,addon:a=o,download:n=Array.isArray(a)?o:a,only:r}of x)r&&i||o in e.optionHandlers||!ee(a,y)||t.push(m[n]);return t},ee=(e,i)=>Array.isArray(e)?e.some(e=>i.has(e)):i.has(e),ie=e=>{let i=[];var t,o="function"==typeof window.CodeMirror,a=o?window.CodeMirror:{modes:{},prototype:{},commands:{},optionHandlers:{},helpers:{}};if(o||(i.push(c.lib),u||mw.loader.load(`${s}/${l}/lib/codemirror.min.css`,"text/css")),"mediawiki"!==(e="mediawiki"===e&&f.config&&f.config.tags.html?"html":e)&&"widget"!==e||a.modes.mediawiki||(mw.loader.load(`${s}/${L}/mediawiki.min.css`,"text/css"),i.push(L+"/mediawiki.min.js")),"widget"===e||"html"===e)for(const n of["css","javascript","mediawiki","htmlmixed","xml"])a.modes[n]||(i=i.concat(c[n]));else i=i.concat(c[e]);return a.prototype.getSearchCursor||!y.has("search")||y.has("wikiEditor")||i.push(m.searchcursor),!a.prototype.annotateScrollbar&&"mediawiki"===e&&y.has("lint")&&i.push(m.annotateScrollbar),a.commands.findForward||!y.has("search")||y.has("wikiEditor")||i.push(m.search),!window.Parser&&"mediawiki"===e&&y.has("lint")&&i.push(m.parser),!a.optionHandlers.lint&&"mediawiki"===e&&y.has("lint")&&(mw.loader.load(`${s}/${l}/addon/lint/lint.min.css`,"text/css"),i.push(m.lint)),a.helpers.lint&&a.helpers.lint.mediawiki||"mediawiki"!==e||!y.has("lint")||i.push(m.lintWikitext),y.has("wikiEditor")&&((t=mw.loader.getState("ext.wikiEditor"))?"ready"!==t&&i.push(m.wikiEditor):y.delete("wikiEditor")),"ready"!==mw.loader.getState("mediawiki.Title")&&y.has("contextmenu")&&i.push(m.contextmenu),i.push(...Z(a)),Y(i,o?void 0:u)},te=e=>{a[V]={config:e,time:Date.now()},w.setObject("InPageEditMwConfig",a)},E=e=>e.flatMap(({aliases:e,name:i})=>e.map(e=>({alias:e,name:i}))),_=e=>Object.fromEntries(e.map(({alias:e,name:i})=>[e.replace(/:$/,""),i])),oe=e=>{for(const i of["indicator","poem","ref","tabs","tab","poll"])e.tags[i]&&(e.tagModes[i]="text/mediawiki")},ae=async(e,i)=>{if("mediawiki"===e||"widget"===e){u&&b&&await i;let e=mw.config.get("extCodeMirrorConfig");if(e||b||!R||({config:e}=f,oe(e),mw.config.set("extCodeMirrorConfig",e)),e&&e.redirect&&e.img)return e;const{magicwords:a,extensiontags:n,functionhooks:r,variables:s}=(await(new mw.Api).get({meta:"siteinfo",siprop:e?"magicwords":"magicwords|extensiontags|functionhooks|variables",formatversion:2}))["query"],l=new Set(["msg","raw","msgnw","subst","safesubst"]);if(e){const[d]=e["functionSynonyms"];var t,o;if(!d.subst)for({alias:t,name:o}of E(a.filter(({name:e})=>l.has(e))))d[t.replace(/:$/,"")]=o}else{e={tagModes:{pre:"mw-tag-pre",nowiki:"mw-tag-nowiki",ref:"text/mediawiki"},tags:Object.fromEntries(n.map(e=>[e.slice(1,-1),!0])),urlProtocols:mw.config.get("wgUrlProtocols")};const c=new Set([...r,...s,...l]),m=a.filter(({name:e,aliases:i})=>i.some(e=>/^__.+__$/.test(e))||c.has(e)),g=E(m.filter(e=>e["case-sensitive"])),p=E(m.filter(e=>!e["case-sensitive"])).map(({alias:e,name:i})=>({alias:e.toLowerCase(),name:i}));e.doubleUnderscore=[_(p.filter(({alias:e})=>/^__.+__$/.test(e))),_(g.filter(({alias:e})=>/^__.+__$/.test(e)))],e.functionSynonyms=[_(p.filter(({alias:e})=>!/^__.+__|^#$/.test(e))),_(g.filter(({alias:e})=>!/^__.+__|^#$/.test(e)))]}return e.redirect=a.find(({name:e})=>"redirect"===e).aliases,e.img=_(E(a.filter(({name:e})=>e.startsWith("img_")))),oe(e),mw.config.set("extCodeMirrorConfig",e),te(e),e}},ne={getContents(){return O.getValue()},setContents(e){return O.setValue(e),this},getSelection(){return O.getSelection()},setSelection(e){return O.setSelection(O.posFromIndex(e.start),"end"in e?O.posFromIndex(e.end):void 0),O.focus(),this},replaceSelection(e){return O.replaceSelection(e),this},getCaretPosition(e){var i=O.indexFromPos(O.getCursor("from")),t=O.indexFromPos(O.getCursor("to"));return e.startAndEnd?[i,t]:i},scrollToCaretPosition(){return O.scrollIntoView(),this}},re=async(e,i)=>{const n=i?"javascript":await(async()=>{if(D.endsWith("/doc"))return"mediawiki";if(274!==k&&828!==k)return B[N];const e=274===k?"Widget":"Lua";return await mw.loader.using(["oojs-ui-windows","oojs-ui.styles.icons-content"]),await OO.ui.confirm(h("contentmodel"),{actions:[{label:e},{label:"Wikitext",action:"accept"}]})?"mediawiki":e.toLowerCase()})(),t=ie(n),[o]=await Promise.all([ae(n,t),t]);if(!i&&y.has("wikiEditor"))try{if("function"==typeof mw.addWikiEditor)mw.addWikiEditor(e);else{const{modules:{dialogs:{config:s}}}=$["wikiEditor"];e.wikiEditor("addModule",{...$.wikiEditor.modules.toolbar.config.getDefaultConfig(),...s.getDefaultConfig()}),s.replaceIcons(e)}}catch(e){y.delete("wikiEditor"),mw.notify("WikiEditor工具栏加载失败。",{type:"error"}),console.error(e)}"mediawiki"===n&&o.tags.html?(o.tagModes.html="htmlmixed",await ie("html")):"widget"!==n||CodeMirror.mimeModes.widget||CodeMirror.defineMIME("widget",{name:"htmlmixed",tags:{noinclude:[[null,null,"mediawiki"]]}});var a=e.height();O&&O.toTextArea();const r=i||"json"===N;if((O=CodeMirror.fromTextArea(e[0],$.extend({inputStyle:"contenteditable",lineNumbers:!/Android\b/.test(navigator.userAgent),lineWrapping:!0,mode:n,mwConfig:o,json:r},Object.fromEntries(x.map(({option:e,addon:i=e,modes:t,complex:o=e=>!t||t.has(e)})=>{var a=Array.isArray(i)?i[0]:i;return[e,y.has(a)&&o(n,r)]})),"mediawiki"===n?{extraKeys:y.has("escape")&&(C(CodeMirror)?q:K)}:{indentUnit:y.has("indentWithSpace")?v:4,indentWithTabs:!y.has("indentWithSpace")}))).setSize(null,a),O.getWrapperElement().id="Wikiplus-CodeMirror",$.fn.textSelection&&e.textSelection("register",ne),y.has("wikiEditor")){const l=e.data("wikiEditorContext"),d=CodeMirror["keyMap"],c=()=>{$.wikiEditor.modules.dialogs.api.openDialog(l,"search-and-replace")};O.addKeyMap(d.default===d.pcDefault?{"Ctrl-F":c}:{"Cmd-F":c})}if(j(O,n),$("#Wikiplus-Quickedit-Jump").children("a").attr("href","#Wikiplus-CodeMirror"),!i){const m="object"==typeof window.Wikiplus?window.Wikiplus:{getSetting(e){var i=w.getObject("Wikiplus_Settings");return i&&i[e]}},g=m.getSetting("esc_to_exit_quickedit"),p=()=>{$("#Wikiplus-Quickedit-Submit").triggerHandler("click")},u=()=>{$("#Wikiplus-Quickedit-MinorEdit").click(),$("#Wikiplus-Quickedit-Submit").triggerHandler("click")};O.addKeyMap($.extend(C(CodeMirror)?{"Ctrl-S":p,"Shift-Ctrl-S":u}:{"Cmd-S":p,"Shift-Cmd-S":u},!0===g||"true"===g?{Esc(){$("#Wikiplus-Quickedit-Back").triggerHandler("click")}}:{}))}O.refresh(),mw.hook("wiki-codemirror").fire(O)},se=document["body"],le=new MutationObserver(e=>{const i=$(e.flatMap(({addedNodes:e})=>[...e])).find("#Wikiplus-Quickedit, #Wikiplus-Setting-Input");0<i.length&&re(i,"Wikiplus-Setting-Input"===i.attr("id"))}),de=(le.observe(se,{childList:!0}),$(se).on("keydown.wphl",".ui-dialog",function(e){if("Escape"===e.key){const i=$(this).children(".ui-dialog-content").data("context");i&&i.$textarea&&"Wikiplus-Quickedit"===i.$textarea.attr("id")&&e.stopPropagation()}}),document.querySelector("#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}.skin-moeskin #ca-more-actions li>a{display:inline-block;padding:0.4rem 0.8rem;line-height:1.5}.skin-moeskin .oo-ui-windowManager-modal>.oo-ui-dialog{z-index:101}")),{get:ce=e=>e.value,set:me=(e,i)=>{e.value=i}}=(de.id="wphl-style",$.valHooks.textarea||{}),ge=e=>"Wikiplus-Quickedit"===e.id||"Wikiplus-Setting-Input"===e.id;$.valHooks.textarea={get(e){return ge(e)&&O?O.getValue():ce(e)},set(e,i){ge(e)&&O?O.setValue(i):me(e,i)}},await t;let z,I,pe,ue,we,T,he,A;const ke=(e=[...y])=>{A.toggle(e.includes("indentWithSpace"))};const fe=$(mw.util.addPortletLink({minerva:"page-actions-overflow",citizen:"p-actions",moeskin:"ca-more-actions"}[d]||"p-cactions","#",h("portlet"),"wphl-settings")).click(async e=>{if(e.preventDefault(),z)I.setValue([...y]),T.setValue(v);else{await mw.loader.using(["oojs-ui-windows","oojs-ui.styles.icons-content"]),z=new OO.ui.MessageDialog({id:"Wikiplus-highlight-dialog"});const t=new OO.ui.WindowManager,o=(t.$element.appendTo(se),t.addWindows([z]),I=new OO.ui.CheckboxMultiselectInputWidget({options:[...x.map(({option:e,addon:i=e})=>{const t=Array.isArray(i)?i[0]:i;return{data:t,label:n("addon-"+t.toLowerCase())}}),...["wikiEditor","escape","contextmenu","lint","indentWithSpace","otherEditors"].map(e=>({data:e,label:n("addon-"+e.toLowerCase())}))],value:[...y]}).on("change",ke))["checkboxMultiselectWidget"];pe=o.findItemFromData("search"),ue=o.findItemFromData("wikiEditor"),we=o.findItemFromData("lint"),T=new OO.ui.NumberInputWidget({min:0,value:v}),he=new OO.ui.FieldLayout(I,{label:h("addon-label"),notices:[h("addon-notice")],align:"top"}),A=new OO.ui.FieldLayout(T,{label:h("addon-indent")}),ke(),Object.assign(mw.libs.wphl,{widget:I,indentWidget:T})}var i="object"==typeof window.Wikiplus||"object"==typeof window.Pages,i=(pe.setDisabled(!i),ue.setDisabled(!i||!mw.loader.getState("ext.wikiEditor")),we.setDisabled(!i),await z.open({title:h("addon-title"),message:he.$element.add(A.$element).add($("<p>",{html:h("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||"minerva"===d?"medium":"small"}).closing);if(he.$element.detach(),A.$element.detach(),"object"==typeof i&&"accept"===i.action){i=I.getValue();y.clear();for(const a of i)y.add(a);v=Number(T.getValue()),w.setObject("Wikiplus-highlight-addons",i),w.setObject("Wikiplus-highlight-indent",v)}}),P=("minerva"===d&&fe.find(".mw-ui-icon").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(y.has("otherEditors")){let e=i.getOption("mode");e="text/mediawiki"===e?"mediawiki":e;var t=Z(CodeMirror,!0),o=i.getOption("json");await Y(t);for(const{option:n,addon:r=n,modes:s,complex:l=e=>!s||s.has(e)}of x.filter(({only:e})=>!e)){var a=Array.isArray(r)?r[0]:r;void 0===i.getOption(n)&&y.has(a)&&i.setOption(n,l(e,o))}"mediawiki"===e&&y.has("escape")?i.addKeyMap(C(CodeMirror)?q:K,!0):"mediawiki"!==e&&y.has("indentWithSpace")&&(i.setOption("indentUnit",v),i.setOption("indentWithTabs",!1)),j(i,e)}});mw.hook("InPageEdit.quickEdit.codemirror").add(({cm:e})=>P(e)),mw.hook("inspector").add(e=>P(e)),mw.hook("wiki-codemirror").add(e=>{e.getTextArea&&ge(e.getTextArea())||P(e)}),mw.libs.wphl={version:i,options:x,addons:y,i18n:S,i18nLang:W,wphlStyle:de,$portlet:fe,USING_LOCAL:u,MODE_LIST:c,ADDON_LIST:m,msg:h,htmlMsg:n,escapeHTML:p,handleContextMenu:j,setI18N:e,getAddonScript:Z,updateCachedConfig:te,getMwConfig:ae,renderEditor:re,handleOtherEditors:P,isPc:C}})();
|
|
8
8
|
//# sourceMappingURL=main.min.js.map
|
package/dist/main.min.js.map
CHANGED
|
@@ -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","setItem","stringify","flatten","Object","fromEntries","entries","obj","arr","flat","reduce","acc","cur","concat","getVersion","str","split","map","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","wikiEditor","contextmenu","lint","annotateScrollbar","parser","lintWikitext","options","option","addon","download","only","complex","addons","has","mode","bracketRegex","modes","Set","let","indent","entity","\"","'","<",">","&"," ","convert","func","doc","replaceSelection","getSelection","escapeHTML","c","code","codePointAt","toString","isPc","keyMap","default","pcDefault","extraKeysPc","Ctrl-/","Ctrl-\\","encodeURIComponent","extraKeysMac","Cmd-/","Cmd-\\","handleContextMenu","$wrapper","getWrapperElement","addClass","synonyms","get","functionSynonyms","invoke","调用","widget","小工具","getSysnonyms","keys","filter","startsWith","pageX","pageY","pos","coordsChar","left","top","line","ch","curType","getTokenTypeAt","test","tokens","getLineTokens","i","length","end","string","splice","index","findIndex","start","text","replace","trim","title","Title","namespace","open","getUrl","util","parserFunction","toLowerCase","includes","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","ka","I18N_CDN","isLatest","setI18N","async","assign","ajax","dataType","cache","messages","set","i18nPromise","Promise","all","using","getInternalScript","exts","resolve","getExternalScript","urls","getScript","local","internal","url","external","cm","getAddonScript","CM","other","addonScript","Array","isArray","optionHandlers","intersect","push","some","ele","initMode","scripts","state","loaded","window","CodeMirror","prototype","commands","helpers","load","tags","lang","getSearchCursor","findForward","Parser","delete","undefined","updateCachedConfig","getAliases","words","aliases","name","alias","getConfig","getMwConfig","initModePromise","ref","tagModes","redirect","img","magicwords","extensiontags","functionhooks","variables","Api","meta","siprop","formatversion","query","otherMagicwords","insensitive","subst","pre","nowiki","urlProtocols","realMagicwords","allMagicwords","sensitive","word","doubleUnderscore","find","cmTextSelection","getContents","getValue","setContents","content","setValue","this","setSelection","posFromIndex","focus","getCaretPosition","caretPos","indexFromPos","getCursor","endPos","startAndEnd","scrollToCaretPosition","scrollIntoView","renderEditor","$target","setting","endsWith","pageMode","OO","ui","confirm","actions","label","getPageMode","mwConfig","addWikiEditor","modules","dialogs","toolbar","getDefaultConfig","replaceIcons","console","error","mimeModes","defineMIME","noinclude","height","toTextArea","fromTextArea","extend","inputStyle","lineNumbers","navigator","userAgent","lineWrapping","mod","mainAddon","extraKeys","indentUnit","indentWithTabs","setSize","id","fn","textSelection","context","data","callback","api","openDialog","addKeyMap","Ctrl-F","Cmd-F","children","attr","Wikiplus","getSetting","settings","escToExitQuickEdit","submit","triggerHandler","submitMinor","click","Ctrl-S","Shift-Ctrl-S","Cmd-S","Shift-Cmd-S","Esc","refresh","hook","fire","body","document","observer","MutationObserver","records","$editArea","addedNodes","wphlStyle","observe","childList","on","$textarea","stopPropagation","querySelector","addStyleTag","elem","valHooks","textarea","isWikiplus","dialog","searchWidget","wikiEditorWidget","lintWidget","indentWidget","field","indentField","toggleIndent","toggle","$portlet","addPortletLink","minerva","citizen","moeskin","preventDefault","MessageDialog","windowManager","WindowManager","checkboxMultiselectWidget","$element","appendTo","addWindows","CheckboxMultiselectInputWidget","findItemFromData","NumberInputWidget","min","FieldLayout","notices","align","wikiplusLoaded","Pages","setDisabled","message","add","flags","size","closing","detach","clear","handleOtherEditors","getOption","setOption","getTextArea"],"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","setItem","stringify","getVersion","Object","fromEntries","entries","obj","str","split","map","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","wikiEditor","contextmenu","lint","annotateScrollbar","parser","lintWikitext","options","option","addon","download","only","complex","addons","has","mode","bracketRegex","modes","Set","let","indent","entity","\"","'","<",">","&"," ","convert","func","doc","replaceSelection","getSelection","escapeHTML","c","code","codePointAt","toString","isPc","keyMap","default","pcDefault","extraKeysPc","Ctrl-/","Ctrl-\\","encodeURIComponent","extraKeysMac","Cmd-/","Cmd-\\","handleContextMenu","$wrapper","getWrapperElement","addClass","synonyms","get","functionSynonyms","invoke","调用","widget","小工具","getSysnonyms","keys","filter","startsWith","pageX","pageY","pos","coordsChar","left","top","line","ch","curType","getTokenTypeAt","test","tokens","getLineTokens","i","length","end","string","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","ka","I18N_CDN","isLatest","setI18N","async","assign","ajax","dataType","cache","messages","set","i18nPromise","Promise","all","using","getInternalScript","exts","resolve","getExternalScript","urls","getScript","local","internal","url","includes","external","cm","getAddonScript","CM","other","addonScript","Array","isArray","optionHandlers","intersect","push","arr","some","ele","initMode","scripts","state","loaded","window","CodeMirror","prototype","commands","helpers","load","tags","lang","concat","getSearchCursor","findForward","Parser","delete","undefined","updateCachedConfig","getAliases","words","flatMap","aliases","name","alias","getConfig","setPlainMode","tagModes","getMwConfig","initModePromise","redirect","img","magicwords","extensiontags","functionhooks","variables","Api","meta","siprop","formatversion","query","otherMagicwords","insensitive","subst","pre","nowiki","ref","urlProtocols","realMagicwords","allMagicwords","sensitive","word","doubleUnderscore","find","cmTextSelection","getContents","getValue","setContents","content","setValue","this","setSelection","posFromIndex","focus","getCaretPosition","caretPos","indexFromPos","getCursor","endPos","startAndEnd","scrollToCaretPosition","scrollIntoView","renderEditor","$target","setting","endsWith","pageMode","OO","ui","confirm","actions","label","getPageMode","mwConfig","addWikiEditor","modules","dialogs","toolbar","getDefaultConfig","replaceIcons","console","error","mimeModes","defineMIME","noinclude","height","toTextArea","fromTextArea","extend","inputStyle","lineNumbers","navigator","userAgent","lineWrapping","mod","mainAddon","extraKeys","indentUnit","indentWithTabs","setSize","id","fn","textSelection","context","data","callback","api","openDialog","addKeyMap","Ctrl-F","Cmd-F","children","attr","Wikiplus","getSetting","settings","escToExitQuickEdit","submit","triggerHandler","submitMinor","click","Ctrl-S","Shift-Ctrl-S","Cmd-S","Shift-Cmd-S","Esc","refresh","hook","fire","body","document","observer","MutationObserver","records","$editArea","addedNodes","wphlStyle","observe","childList","on","$textarea","stopPropagation","querySelector","addStyleTag","elem","valHooks","textarea","isWikiplus","dialog","searchWidget","wikiEditorWidget","lintWidget","indentWidget","field","indentField","toggleIndent","toggle","$portlet","addPortletLink","minerva","citizen","moeskin","preventDefault","MessageDialog","windowManager","WindowManager","checkboxMultiselectWidget","$element","appendTo","addWindows","CheckboxMultiselectInputWidget","findItemFromData","NumberInputWidget","min","FieldLayout","notices","align","wikiplusLoaded","Pages","setDisabled","message","add","flags","size","closing","detach","clear","handleOtherEditors","getOption","setOption","getTextArea"],"mappings":"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"}
|
package/fold.js
CHANGED
|
@@ -128,7 +128,9 @@
|
|
|
128
128
|
*/
|
|
129
129
|
const findEnclosingTemplate = (cm, cursor) => {
|
|
130
130
|
const type = cm.getTokenTypeAt(cursor) || '';
|
|
131
|
-
if (!/\bmw-template\d
|
|
131
|
+
if (!/\bmw-template\d*(?:-ext\d*)?(?:-link\d*)?-ground\b/u.test(type)
|
|
132
|
+
|| /\bmw-template-(?:bracket|name)\b/u.test(type)
|
|
133
|
+
) {
|
|
132
134
|
return undefined;
|
|
133
135
|
}
|
|
134
136
|
const {to: bracket} = scanForDelimiterAndBracket(cm, cursor, -1);
|
package/i18n/en.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"wphl-version": "2.
|
|
2
|
+
"wphl-version": "2.37.2",
|
|
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",
|
|
@@ -14,11 +14,14 @@
|
|
|
14
14
|
"wphl-addon-indentwithspace": "Indent JavaScript/CSS/Lua codes with spaces instead of tabs",
|
|
15
15
|
"wphl-addon-indent": "Indent",
|
|
16
16
|
"wphl-addon-othereditors": "Apply selected addons to other editors",
|
|
17
|
-
"wphl-addon-lint": "Wikitext linter (
|
|
17
|
+
"wphl-addon-lint": "Wikitext linter (Switch on/off by <code>Ctrl/Cmd + L</code>)",
|
|
18
18
|
"wphl-addon-label": "Please select the addons you wish to load",
|
|
19
19
|
"wphl-addon-notice": "Changes will apply when opening a new Wikiplus dialog.",
|
|
20
20
|
"wphl-addon-title": "Wikiplus Highlight Addons",
|
|
21
21
|
"wphl-search-placeholder": "Search using a string or a regex pattern",
|
|
22
|
+
"wphl-replace-placeholder": "string used in replaceAll",
|
|
23
|
+
"wphl-search-replace": "replaceAll",
|
|
24
|
+
"wphl-replace-count": "The pattern occurs $1 time(s). Do you want to replace them all?",
|
|
22
25
|
"wphl-unfold": "Click here to unfold $1",
|
|
23
26
|
"wphl-fold": "Click here to fold $1",
|
|
24
27
|
"wphl-fold-template": "template arguments",
|
package/i18n/ka.json
CHANGED
package/i18n/zh-hans.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"wphl-version": "2.
|
|
2
|
+
"wphl-version": "2.37.2",
|
|
3
3
|
"wphl-lang": "zh-hans",
|
|
4
4
|
"wphl-addon-search": "<span title=\"搜索字符串或正则表达式\">搜索</span>",
|
|
5
5
|
"wphl-addon-activeline": "高亮显示光标所在行",
|
|
@@ -14,11 +14,14 @@
|
|
|
14
14
|
"wphl-addon-indentwithspace": "代码缩进使用空格而非Tab",
|
|
15
15
|
"wphl-addon-indent": "缩进",
|
|
16
16
|
"wphl-addon-othereditors": "将选中的插件用于其他编辑器",
|
|
17
|
-
"wphl-addon-lint": "
|
|
17
|
+
"wphl-addon-lint": "维基语法检查(使用 <code>Ctrl/Cmd + L</code> 开关)",
|
|
18
18
|
"wphl-addon-label": "请选择您希望加载的插件",
|
|
19
19
|
"wphl-addon-notice": "更改将于打开新的Wikiplus编辑区时生效。",
|
|
20
20
|
"wphl-addon-title": "Wikiplus高亮插件",
|
|
21
21
|
"wphl-search-placeholder": "使用字符串或正则表达式搜索",
|
|
22
|
+
"wphl-replace-placeholder": "用于全文替换的字符串",
|
|
23
|
+
"wphl-search-replace": "全文替换",
|
|
24
|
+
"wphl-replace-count": "全文共有 $1 处待替换,确认替换吗?",
|
|
22
25
|
"wphl-unfold": "点击以展开$1",
|
|
23
26
|
"wphl-fold": "点击以折叠$1",
|
|
24
27
|
"wphl-fold-template": "模板参数",
|
package/i18n/zh-hant.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"wphl-version": "2.
|
|
2
|
+
"wphl-version": "2.37.2",
|
|
3
3
|
"wphl-lang": "zh-hant",
|
|
4
4
|
"wphl-addon-search": "<span title=\"搜尋字串或正規表示式\">搜尋</span>",
|
|
5
5
|
"wphl-addon-activeline": "突出顯示游標所在行",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"wphl-addon-indentwithspace": "代碼縮排使用空格而非Tab",
|
|
15
15
|
"wphl-addon-indent": "縮排",
|
|
16
16
|
"wphl-addon-othereditors": "將選中的外掛程式用於其他編輯器",
|
|
17
|
-
"wphl-addon-lint": "
|
|
17
|
+
"wphl-addon-lint": "維基語法檢查(使用 <code>Ctrl/Cmd + L</code> 開關)",
|
|
18
18
|
"wphl-addon-label": "請選擇您希望載入的外掛程式",
|
|
19
19
|
"wphl-addon-notice": "更改將於打開新的Wikiplus編輯區時生效。",
|
|
20
20
|
"wphl-addon-title": "Wikiplus突顯外掛程式",
|
package/lint.js
CHANGED
|
@@ -7,13 +7,15 @@
|
|
|
7
7
|
/* global Parser */
|
|
8
8
|
'use strict';
|
|
9
9
|
|
|
10
|
+
const include = mw.config.get('wgNamespaceNumber') === 10 && !mw.config.get('wgPageName').endsWith('/doc');
|
|
11
|
+
|
|
10
12
|
/**
|
|
11
13
|
* annotationSource
|
|
12
14
|
* @param {string} str wikitext
|
|
13
15
|
* @returns {CodeMirror.LintAnnotation}
|
|
14
16
|
*/
|
|
15
17
|
const annotate = str => {
|
|
16
|
-
const errors = Parser.parse(str).lint();
|
|
18
|
+
const errors = Parser.parse(str, include).lint();
|
|
17
19
|
return errors.map(error => {
|
|
18
20
|
const {startLine, startCol, endLine, endCol, message, severity} = error,
|
|
19
21
|
lineErrors = errors.filter(({startLine: line}) => line === startLine);
|
|
@@ -43,53 +45,68 @@
|
|
|
43
45
|
* @param {CodeMirror.Editor} cm
|
|
44
46
|
*/
|
|
45
47
|
const lint = cm => {
|
|
46
|
-
|
|
48
|
+
const mode = cm.getOption('mode');
|
|
49
|
+
if (mode !== 'mediawiki' && mode !== 'text/mediawiki') {
|
|
47
50
|
return;
|
|
48
51
|
} else if (!Parser.config) {
|
|
49
52
|
const {config: {values: {wgFormattedNamespaces, wgNamespaceIds}}} = mw,
|
|
50
|
-
{minConfig: {parserFunction}} = Parser,
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
53
|
+
{minConfig: {parserFunction: [withPound,, ...modifiers]}} = Parser,
|
|
54
|
+
valuesWithPound = new Set(Object.values(withPound)),
|
|
55
|
+
{tags, functionSynonyms: [insensitive, sensitive], doubleUnderscore, img} = cm.getOption('mwConfig');
|
|
56
|
+
for (const [k, v] of Object.entries(insensitive)) {
|
|
57
|
+
if (valuesWithPound.has(v) && !k.startsWith('#')) {
|
|
58
|
+
delete insensitive[k];
|
|
59
|
+
insensitive[`#${k}`] = v;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
54
62
|
Parser.config = {
|
|
55
63
|
ext: Object.keys(tags),
|
|
56
64
|
namespaces: wgFormattedNamespaces,
|
|
57
65
|
nsid: wgNamespaceIds,
|
|
58
66
|
parserFunction: [
|
|
59
|
-
|
|
60
|
-
? Object.keys(insensitive)
|
|
61
|
-
: parserFunction[0],
|
|
67
|
+
insensitive,
|
|
62
68
|
Object.keys(sensitive),
|
|
63
|
-
...
|
|
69
|
+
...modifiers,
|
|
64
70
|
],
|
|
65
71
|
doubleUnderscore: doubleUnderscore.map(Object.keys),
|
|
66
|
-
protocol: urlProtocols.replaceAll('\\:', ':'),
|
|
67
72
|
img: Object.fromEntries(Object.entries(img).map(([k, v]) => [k, v.slice(4)])),
|
|
68
73
|
};
|
|
69
74
|
}
|
|
70
75
|
cm.setOption('scrollButtonHeight', 0);
|
|
71
|
-
const
|
|
72
|
-
|
|
76
|
+
const annotateScrollWarn = cm.annotateScrollbar('CodeMirror-lint-scroll-warn'),
|
|
77
|
+
annotateScrollError = cm.annotateScrollbar('CodeMirror-lint-scroll-error');
|
|
73
78
|
|
|
74
79
|
/**
|
|
75
80
|
* update linting
|
|
76
81
|
* @param {CodeMirror.LintAnnotation[]} annotations all annotations
|
|
77
82
|
*/
|
|
78
83
|
const onUpdateLinting = annotations => {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
84
|
+
annotateScrollWarn.update(annotations.filter(({severity}) => severity === 'warning'));
|
|
85
|
+
annotateScrollError.update(annotations.filter(({severity}) => severity !== 'warning'));
|
|
86
|
+
},
|
|
87
|
+
performLint = () => {
|
|
88
|
+
cm.performLint();
|
|
89
|
+
},
|
|
90
|
+
option = {delay: 5000, selfContain: true, onUpdateLinting},
|
|
91
|
+
switchOption = () => {
|
|
92
|
+
if (cm.state.lint) {
|
|
93
|
+
cm.setOption('lint', false);
|
|
94
|
+
annotateScrollWarn.update([]);
|
|
95
|
+
annotateScrollError.update([]);
|
|
96
|
+
} else {
|
|
97
|
+
cm.setOption('lint', option);
|
|
98
|
+
performLint();
|
|
99
|
+
}
|
|
100
|
+
};
|
|
82
101
|
cm.setOption('gutters', ['CodeMirror-lint-markers']);
|
|
83
|
-
cm.setOption('lint',
|
|
84
|
-
cm.addKeyMap(
|
|
85
|
-
|
|
86
|
-
|
|
102
|
+
cm.setOption('lint', option);
|
|
103
|
+
cm.addKeyMap(mw.libs.wphl.isPc(CodeMirror)
|
|
104
|
+
? {'Ctrl-K': performLint, 'Ctrl-L': switchOption}
|
|
105
|
+
: {'Cmd-K': performLint, 'Cmd-L': switchOption});
|
|
87
106
|
cm.on('viewportChange', () => {
|
|
88
107
|
if (cm.state.lint) {
|
|
89
108
|
clearTimeout(cm.state.lint.timeout);
|
|
90
|
-
cm.state.lint.timeout = setTimeout(
|
|
91
|
-
cm.performLint();
|
|
92
|
-
}, cm.state.lint.options.delay);
|
|
109
|
+
cm.state.lint.timeout = setTimeout(performLint, cm.state.lint.options.delay);
|
|
93
110
|
}
|
|
94
111
|
});
|
|
95
112
|
};
|
package/main.js
CHANGED
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
}
|
|
15
15
|
mw.libs.wphl = {}; // 开始加载
|
|
16
16
|
|
|
17
|
-
const version = '2.
|
|
18
|
-
newAddon =
|
|
17
|
+
const version = '2.37.2',
|
|
18
|
+
newAddon = 0;
|
|
19
19
|
|
|
20
20
|
/** @type {typeof mw.storage} */
|
|
21
21
|
const storage = typeof mw.storage === 'object' && typeof mw.storage.getObject === 'function'
|
|
@@ -51,16 +51,6 @@
|
|
|
51
51
|
return obj;
|
|
52
52
|
});
|
|
53
53
|
|
|
54
|
-
/**
|
|
55
|
-
* polyfill for `Array.prototype.flat`
|
|
56
|
-
* @template {*} T
|
|
57
|
-
* @param {(T|T[])[]} arr 任意数组
|
|
58
|
-
* @returns {T[]}
|
|
59
|
-
*/
|
|
60
|
-
const flatten = arr => typeof arr.flat === 'function'
|
|
61
|
-
? arr.flat()
|
|
62
|
-
: arr.reduce((acc, cur) => acc.concat(cur), []); // eslint-disable-line unicorn/no-array-reduce
|
|
63
|
-
|
|
64
54
|
/**
|
|
65
55
|
* 解析版本号
|
|
66
56
|
* @param {string} str 版本号
|
|
@@ -109,7 +99,7 @@
|
|
|
109
99
|
const CDN = '//fastly.jsdelivr.net',
|
|
110
100
|
CM_CDN = 'npm/codemirror@5.65.3',
|
|
111
101
|
MW_CDN = 'gh/bhsd-harry/codemirror-mediawiki@1.1.6',
|
|
112
|
-
PARSER_CDN = 'gh/bhsd-harry/wikiparser-node@0.6.
|
|
102
|
+
PARSER_CDN = 'gh/bhsd-harry/wikiparser-node@0.6.18-b',
|
|
113
103
|
REPO_CDN = `npm/wikiplus-highlight@${majorVersion}`;
|
|
114
104
|
|
|
115
105
|
const {config: {values: {
|
|
@@ -176,16 +166,6 @@
|
|
|
176
166
|
lintWikitext: `${REPO_CDN}/lint.min.js`,
|
|
177
167
|
};
|
|
178
168
|
|
|
179
|
-
/**
|
|
180
|
-
* @typedef {object} addon
|
|
181
|
-
* @property {string} option 对应的CodeMirror选项
|
|
182
|
-
* @property {string|string[]} addon 对应的Wikiplus-highlight插件
|
|
183
|
-
* @property {string} download 需要下载的CodeMirror扩展
|
|
184
|
-
* @property {(mode: string, json: boolean) => any} complex 插件加载条件
|
|
185
|
-
* @property {string[]} modes 使用的高亮模式
|
|
186
|
-
* @property {boolean} only 是否仅用于Wikiplus
|
|
187
|
-
*/
|
|
188
|
-
|
|
189
169
|
const /** @type {addon[]} */ options = [
|
|
190
170
|
{
|
|
191
171
|
option: 'styleSelectedText',
|
|
@@ -209,8 +189,8 @@
|
|
|
209
189
|
? '()[]{}""'
|
|
210
190
|
: true,
|
|
211
191
|
},
|
|
212
|
-
{option: 'matchTags', addon: ['matchTags', 'fold'], modes: ['mediawiki', 'widget']},
|
|
213
|
-
{option: 'fold', modes: ['mediawiki', 'widget']},
|
|
192
|
+
{option: 'matchTags', addon: ['matchTags', 'fold'], modes: new Set(['mediawiki', 'widget'])},
|
|
193
|
+
{option: 'fold', modes: new Set(['mediawiki', 'widget'])},
|
|
214
194
|
];
|
|
215
195
|
|
|
216
196
|
const defaultAddons = ['search'],
|
|
@@ -253,8 +233,8 @@
|
|
|
253
233
|
* 生成别名映射表
|
|
254
234
|
* @param {string} str 别名
|
|
255
235
|
*/
|
|
256
|
-
const getSysnonyms = str => Object.keys(synonyms).filter(key => synonyms[key] === str)
|
|
257
|
-
.map(key => key.startsWith('#') ? key : `#${key}`);
|
|
236
|
+
const getSysnonyms = str => new Set(Object.keys(synonyms).filter(key => synonyms[key] === str)
|
|
237
|
+
.map(key => key.startsWith('#') ? key : `#${key}`));
|
|
258
238
|
const invoke = getSysnonyms('invoke'),
|
|
259
239
|
widget = getSysnonyms('widget');
|
|
260
240
|
|
|
@@ -290,9 +270,9 @@
|
|
|
290
270
|
return undefined;
|
|
291
271
|
}
|
|
292
272
|
const parserFunction = tokens[index - 2].string.trim().toLowerCase();
|
|
293
|
-
if (invoke.
|
|
273
|
+
if (invoke.has(parserFunction)) {
|
|
294
274
|
open(mw.util.getUrl(`Module:${text}`), '_blank');
|
|
295
|
-
} else if (widget.
|
|
275
|
+
} else if (widget.has(parserFunction)) {
|
|
296
276
|
open(mw.util.getUrl(`Widget:${text}`, {action: 'edit'}), '_blank');
|
|
297
277
|
} else {
|
|
298
278
|
return undefined;
|
|
@@ -495,7 +475,7 @@
|
|
|
495
475
|
* 展开别名列表
|
|
496
476
|
* @param {{aliases: string[], name: string}[]} words 原名
|
|
497
477
|
*/
|
|
498
|
-
const getAliases = words =>
|
|
478
|
+
const getAliases = words => words.flatMap(({aliases, name}) => aliases.map(alias => ({alias, name})));
|
|
499
479
|
|
|
500
480
|
/**
|
|
501
481
|
* 将别名信息转换为CodeMirror接受的设置
|
|
@@ -506,6 +486,19 @@
|
|
|
506
486
|
aliases.map(({alias, name}) => [alias.replace(/:$/, ''), name]),
|
|
507
487
|
);
|
|
508
488
|
|
|
489
|
+
/**
|
|
490
|
+
* 高亮扩展标签内部
|
|
491
|
+
* @param {mwConfig} config 设置
|
|
492
|
+
*/
|
|
493
|
+
const setPlainMode = config => {
|
|
494
|
+
const tags = ['indicator', 'poem', 'ref', 'tabs', 'tab', 'poll'];
|
|
495
|
+
for (const tag of tags) {
|
|
496
|
+
if (config.tags[tag]) {
|
|
497
|
+
config.tagModes[tag] = 'text/mediawiki';
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
};
|
|
501
|
+
|
|
509
502
|
/**
|
|
510
503
|
* 加载CodeMirror的mediawiki模块需要的设置数据
|
|
511
504
|
* @param {string} type 高亮模式
|
|
@@ -523,9 +516,7 @@
|
|
|
523
516
|
let config = mw.config.get('extCodeMirrorConfig');
|
|
524
517
|
if (!config && !EXPIRED && isLatest) {
|
|
525
518
|
({config} = SITE_SETTINGS);
|
|
526
|
-
|
|
527
|
-
config.tagModes.ref = 'text/mediawiki';
|
|
528
|
-
}
|
|
519
|
+
setPlainMode(config);
|
|
529
520
|
mw.config.set('extCodeMirrorConfig', config);
|
|
530
521
|
}
|
|
531
522
|
if (config && config.redirect && config.img) { // 情形1:config已更新,可能来自localStorage
|
|
@@ -543,12 +534,12 @@
|
|
|
543
534
|
siprop: config ? 'magicwords' : 'magicwords|extensiontags|functionhooks|variables',
|
|
544
535
|
formatversion: 2,
|
|
545
536
|
});
|
|
546
|
-
const otherMagicwords = ['msg', 'raw', 'msgnw', 'subst', 'safesubst'];
|
|
537
|
+
const otherMagicwords = new Set(['msg', 'raw', 'msgnw', 'subst', 'safesubst']);
|
|
547
538
|
|
|
548
539
|
if (config) { // 情形2或3
|
|
549
540
|
const {functionSynonyms: [insensitive]} = config;
|
|
550
541
|
if (!insensitive.subst) {
|
|
551
|
-
const aliases = getAliases(magicwords.filter(({name}) => otherMagicwords.
|
|
542
|
+
const aliases = getAliases(magicwords.filter(({name}) => otherMagicwords.has(name)));
|
|
552
543
|
for (const {alias, name} of aliases) {
|
|
553
544
|
insensitive[alias.replace(/:$/, '')] = name;
|
|
554
545
|
}
|
|
@@ -588,6 +579,7 @@
|
|
|
588
579
|
config.img = getConfig(
|
|
589
580
|
getAliases(magicwords.filter(({name}) => name.startsWith('img_'))),
|
|
590
581
|
);
|
|
582
|
+
setPlainMode(config);
|
|
591
583
|
mw.config.set('extCodeMirrorConfig', config);
|
|
592
584
|
updateCachedConfig(config);
|
|
593
585
|
return config;
|
|
@@ -703,7 +695,7 @@
|
|
|
703
695
|
json,
|
|
704
696
|
},
|
|
705
697
|
Object.fromEntries(
|
|
706
|
-
options.map(({option, addon = option, modes, complex = mod => !modes || modes.
|
|
698
|
+
options.map(({option, addon = option, modes, complex = mod => !modes || modes.has(mod)}) => {
|
|
707
699
|
const mainAddon = Array.isArray(addon) ? addon[0] : addon;
|
|
708
700
|
return [option, addons.has(mainAddon) && complex(mode, json)];
|
|
709
701
|
}),
|
|
@@ -776,12 +768,11 @@
|
|
|
776
768
|
|
|
777
769
|
// 监视 Wikiplus 编辑框
|
|
778
770
|
const observer = new MutationObserver(records => {
|
|
779
|
-
const $editArea = $(
|
|
771
|
+
const $editArea = $(records.flatMap(({addedNodes}) => [...addedNodes]))
|
|
780
772
|
.find('#Wikiplus-Quickedit, #Wikiplus-Setting-Input');
|
|
781
|
-
if ($editArea.length
|
|
782
|
-
|
|
773
|
+
if ($editArea.length > 0) {
|
|
774
|
+
renderEditor($editArea, $editArea.attr('id') === 'Wikiplus-Setting-Input');
|
|
783
775
|
}
|
|
784
|
-
renderEditor($editArea, $editArea.attr('id') === 'Wikiplus-Setting-Input');
|
|
785
776
|
});
|
|
786
777
|
observer.observe(body, {childList: true});
|
|
787
778
|
|
|
@@ -814,7 +805,8 @@
|
|
|
814
805
|
+ '#Wikiplus-highlight-dialog .oo-ui-messageDialog-title{margin-bottom:0.28571429em}'
|
|
815
806
|
+ '#Wikiplus-highlight-dialog .oo-ui-flaggedElement-notice{font-weight:normal;margin:0}'
|
|
816
807
|
+ '.CodeMirror-contextmenu .cm-mw-template-name{cursor:pointer}'
|
|
817
|
-
+ '.skin-moeskin #ca-more-actions li>a{display:inline-block;padding:0.4rem 0.8rem;line-height:1.5}'
|
|
808
|
+
+ '.skin-moeskin #ca-more-actions li>a{display:inline-block;padding:0.4rem 0.8rem;line-height:1.5}'
|
|
809
|
+
+ '.skin-moeskin .oo-ui-windowManager-modal>.oo-ui-dialog{z-index:101}',
|
|
818
810
|
);
|
|
819
811
|
wphlStyle.id = 'wphl-style';
|
|
820
812
|
|
|
@@ -965,7 +957,7 @@
|
|
|
965
957
|
json = doc.getOption('json');
|
|
966
958
|
await getScript(addonScript);
|
|
967
959
|
for (const {
|
|
968
|
-
option, addon = option, modes, complex = (/** @type {string} */ mod) => !modes || modes.
|
|
960
|
+
option, addon = option, modes, complex = (/** @type {string} */ mod) => !modes || modes.has(mod),
|
|
969
961
|
} of options.filter(({only}) => !only)) {
|
|
970
962
|
const mainAddon = Array.isArray(addon) ? addon[0] : addon;
|
|
971
963
|
if (doc.getOption(option) === undefined && addons.has(mainAddon)) {
|
|
@@ -1012,5 +1004,6 @@
|
|
|
1012
1004
|
getMwConfig,
|
|
1013
1005
|
renderEditor,
|
|
1014
1006
|
handleOtherEditors,
|
|
1007
|
+
isPc,
|
|
1015
1008
|
}; // 加载完毕
|
|
1016
1009
|
})();
|
package/matchtags.js
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
const {Pos, cmpPos, Init} = CodeMirror;
|
|
11
11
|
|
|
12
12
|
const tagStart = /<(\/?)([_a-z]\w*)/giu,
|
|
13
|
-
voidTags = ['br', 'wbr', 'hr', 'img'],
|
|
13
|
+
voidTags = new Set(['br', 'wbr', 'hr', 'img']),
|
|
14
14
|
maxScanLines = 1000;
|
|
15
15
|
|
|
16
16
|
/** @ignore */
|
|
@@ -155,7 +155,7 @@
|
|
|
155
155
|
tagName = next[2].toLowerCase();
|
|
156
156
|
if (!end) {
|
|
157
157
|
return undefined;
|
|
158
|
-
} else if (end === 'selfClose' || voidTags.
|
|
158
|
+
} else if (end === 'selfClose' || voidTags.has(tagName)) {
|
|
159
159
|
continue;
|
|
160
160
|
} else if (next[1]) { // closing tag
|
|
161
161
|
let i = stack.length - 1;
|
|
@@ -193,7 +193,7 @@
|
|
|
193
193
|
return undefined;
|
|
194
194
|
}
|
|
195
195
|
const tagName = start[2].toLowerCase();
|
|
196
|
-
if (prev === 'selfClose' || voidTags.
|
|
196
|
+
if (prev === 'selfClose' || voidTags.has(tagName)) {
|
|
197
197
|
continue;
|
|
198
198
|
} else if (start[1]) { // closing tag
|
|
199
199
|
stack.push(tagName);
|
|
@@ -206,7 +206,6 @@
|
|
|
206
206
|
}
|
|
207
207
|
}
|
|
208
208
|
if (i < 0 && (!tag || tag === tagName)) {
|
|
209
|
-
// eslint-disable-next-line unicorn/consistent-destructuring
|
|
210
209
|
return {tag: tagName, from: Pos(this.line, this.ch), to: Pos(this.line, end)};
|
|
211
210
|
}
|
|
212
211
|
}
|
|
@@ -235,15 +234,15 @@
|
|
|
235
234
|
}
|
|
236
235
|
const tag = start[2].toLowerCase(),
|
|
237
236
|
here = {from: Pos(iter.line, iter.ch), to, tag};
|
|
238
|
-
if (end === 'selfClose' || voidTags.
|
|
239
|
-
return {open: here, close: null,
|
|
237
|
+
if (end === 'selfClose' || voidTags.has(tag)) {
|
|
238
|
+
return {open: here, close: null, loc: 'self'};
|
|
240
239
|
}
|
|
241
240
|
|
|
242
241
|
if (start[1]) { // closing tag
|
|
243
|
-
return {open: iter.findMatchingOpen(tag), close: here,
|
|
242
|
+
return {open: iter.findMatchingOpen(tag), close: here, loc: 'close'};
|
|
244
243
|
} // opening tag
|
|
245
244
|
iter = new Iter(this, to);
|
|
246
|
-
return {open: here, close: iter.findMatchingClose(tag),
|
|
245
|
+
return {open: here, close: iter.findMatchingClose(tag), loc: 'open'};
|
|
247
246
|
},
|
|
248
247
|
);
|
|
249
248
|
|
|
@@ -313,12 +312,12 @@
|
|
|
313
312
|
const match = cm.findMatchingTag(cm.getCursor());
|
|
314
313
|
if (!match) {
|
|
315
314
|
return;
|
|
316
|
-
} else if (match.
|
|
315
|
+
} else if (match.loc === 'self') {
|
|
317
316
|
cm.state.tagHit = cm.markText(match.open.from, match.open.to, {className: 'cm-matchingtag'});
|
|
318
317
|
return;
|
|
319
318
|
}
|
|
320
|
-
const hit = match.
|
|
321
|
-
other = match.
|
|
319
|
+
const hit = match.loc === 'open' ? match.open : match.close,
|
|
320
|
+
other = match.loc === 'close' ? match.open : match.close;
|
|
322
321
|
if (hit) {
|
|
323
322
|
cm.state.tagHit = cm.markText(hit.from, hit.to, {className: `cm-${other ? '' : 'non'}matchingtag`});
|
|
324
323
|
}
|
package/package.json
CHANGED
package/search.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @author Bhsd <https://github.com/bhsd-harry>
|
|
3
3
|
* @license GPL-3.0
|
|
4
4
|
*/
|
|
5
|
-
|
|
5
|
+
/* eslint-disable require-unicode-regexp */
|
|
6
6
|
(() => {
|
|
7
7
|
'use strict';
|
|
8
8
|
|
|
@@ -13,15 +13,22 @@
|
|
|
13
13
|
const msg = key => mw.msg(`wphl-${key}`);
|
|
14
14
|
|
|
15
15
|
// Prepare elements
|
|
16
|
-
const $search = $('<input>', {
|
|
16
|
+
const $search = $('<input>', {class: 'Wikiplus-Quickedit-Search', placeholder: msg('search-placeholder')}),
|
|
17
17
|
$searchClose = $('<span>', {text: '×', id: 'Wikiplus-Quickedit-Search-Close', class: 'Wikiplus-Symbol-Btn'}),
|
|
18
18
|
$searchNext = $('<span>', {text: '▼', id: 'Wikiplus-Quickedit-Search-Next', class: 'Wikiplus-Symbol-Btn'}),
|
|
19
19
|
$searchPrev = $('<span>', {text: '▲', id: 'Wikiplus-Quickedit-Search-Prev', class: 'Wikiplus-Symbol-Btn'}),
|
|
20
20
|
$searchContainer = $('<div>', {
|
|
21
|
-
|
|
21
|
+
class: 'Wikiplus-Quickedit-Search-Div',
|
|
22
22
|
html: [$search, $searchNext, $searchPrev, $searchClose],
|
|
23
23
|
}),
|
|
24
|
-
$searchBtn = $('<span>', {class: 'Wikiplus-Btn', html: msg('addon-search')})
|
|
24
|
+
$searchBtn = $('<span>', {class: 'Wikiplus-Btn', html: msg('addon-search')}),
|
|
25
|
+
$replace = $('<input>', {class: 'Wikiplus-Quickedit-Search', placeholder: msg('replace-placeholder')}),
|
|
26
|
+
$replaceClose = $('<span>', {text: '×', id: 'Wikiplus-Quickedit-Replace-Close', class: 'Wikiplus-Symbol-Btn'}),
|
|
27
|
+
$replaceContainer = $('<div>', {
|
|
28
|
+
class: 'Wikiplus-Quickedit-Search-Div',
|
|
29
|
+
html: [$replace, $replaceClose],
|
|
30
|
+
}),
|
|
31
|
+
$replaceBtn = $('<span>', {class: 'Wikiplus-Btn', html: msg('search-replace')});
|
|
25
32
|
|
|
26
33
|
const escapeRegExp = mw.util.escapeRegExp || mw.RegExp.escape;
|
|
27
34
|
const /** @type {CodeMirror.Mode<undefined>} */ overlay = {token: /** @override */ () => {}};
|
|
@@ -31,7 +38,7 @@
|
|
|
31
38
|
* @param {string|RegExp} str 搜索字符串
|
|
32
39
|
*/
|
|
33
40
|
const token = str => {
|
|
34
|
-
const initial = typeof str === 'string' ? new RegExp(`[^${escapeRegExp(str[0])}]`, '
|
|
41
|
+
const initial = typeof str === 'string' ? new RegExp(`[^${escapeRegExp(str[0])}]`, 'i') : null;
|
|
35
42
|
|
|
36
43
|
/**
|
|
37
44
|
* @override
|
|
@@ -65,12 +72,8 @@
|
|
|
65
72
|
let /** @type {string|RegExp} */ ptn = $search.val();
|
|
66
73
|
if (!ptn) {
|
|
67
74
|
return;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
if (typeof ptn === 'string' && /^\/.+\/i?$/u.test(ptn)) {
|
|
71
|
-
ptn = ptn.endsWith('i')
|
|
72
|
-
? new RegExp(ptn.slice(1, -2), 'iu')
|
|
73
|
-
: new RegExp(ptn.slice(1, -1), 'u');
|
|
75
|
+
} else if (typeof ptn === 'string' && /^\/.+\/i?$/u.test(ptn)) {
|
|
76
|
+
ptn = new RegExp(ptn.slice(1, -2), ptn.endsWith('i') ? 'im' : 'm');
|
|
74
77
|
}
|
|
75
78
|
if (ptn !== lastPtn) {
|
|
76
79
|
cm.removeOverlay(overlay);
|
|
@@ -101,6 +104,38 @@
|
|
|
101
104
|
}
|
|
102
105
|
};
|
|
103
106
|
|
|
107
|
+
/**
|
|
108
|
+
* keyboard event handler of `$replace`
|
|
109
|
+
* @param {CodeMirror.Editor} cm
|
|
110
|
+
*/
|
|
111
|
+
const replace = async cm => {
|
|
112
|
+
let /** @type {string|RegExp} */ ptn = $search.val();
|
|
113
|
+
if (!ptn) {
|
|
114
|
+
return;
|
|
115
|
+
} else if (typeof ptn === 'string' && /^\/.+\/i?$/u.test(ptn)) {
|
|
116
|
+
ptn = new RegExp(ptn.slice(1, -2), ptn.endsWith('i') ? 'im' : 'm');
|
|
117
|
+
}
|
|
118
|
+
if (ptn !== lastPtn) {
|
|
119
|
+
cm.removeOverlay(overlay);
|
|
120
|
+
overlay.token = token(ptn);
|
|
121
|
+
cm.addOverlay(overlay);
|
|
122
|
+
lastPtn = ptn;
|
|
123
|
+
cursor = cm.getSearchCursor(ptn, cm.getCursor(), {caseFold: true});
|
|
124
|
+
}
|
|
125
|
+
const replacePtn = typeof ptn === 'string'
|
|
126
|
+
? new RegExp(escapeRegExp(ptn), 'gim')
|
|
127
|
+
: new RegExp(ptn, `g${ptn.flags}`),
|
|
128
|
+
val = cm.getValue(),
|
|
129
|
+
mt = val.match(replacePtn);
|
|
130
|
+
if (mt) {
|
|
131
|
+
const bool = await OO.ui.confirm(mw.libs.wphl.msg('replace-count', mt.length));
|
|
132
|
+
if (bool) {
|
|
133
|
+
cm.setValue(val.replace(replacePtn, $replace.val()));
|
|
134
|
+
$replaceContainer.hide();
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
|
|
104
139
|
/** click event handler of `$searchBtn` */
|
|
105
140
|
const findNew = () => {
|
|
106
141
|
$searchContainer.show();
|
|
@@ -108,6 +143,14 @@
|
|
|
108
143
|
.scrollIntoView({behavior: 'smooth'});
|
|
109
144
|
};
|
|
110
145
|
|
|
146
|
+
/** click event handler of `$replaceBtn` */
|
|
147
|
+
const replaceNew = () => {
|
|
148
|
+
$replaceContainer.show();
|
|
149
|
+
if ($searchContainer.is(':hidden')) {
|
|
150
|
+
findNew();
|
|
151
|
+
}
|
|
152
|
+
};
|
|
153
|
+
|
|
111
154
|
/**
|
|
112
155
|
* click event handler of `$searchClose`
|
|
113
156
|
* @param {CodeMirror.Editor} cm
|
|
@@ -115,6 +158,7 @@
|
|
|
115
158
|
const reset = cm => {
|
|
116
159
|
cm.removeOverlay(overlay);
|
|
117
160
|
$searchContainer.hide();
|
|
161
|
+
$replaceContainer.hide();
|
|
118
162
|
lastPtn = '';
|
|
119
163
|
};
|
|
120
164
|
|
|
@@ -124,6 +168,9 @@
|
|
|
124
168
|
CodeMirror.commands.findBackward = /** 向前搜索 */ doc => {
|
|
125
169
|
findNext(doc, false);
|
|
126
170
|
};
|
|
171
|
+
CodeMirror.commands.replace = /** 全部替换 */ doc => {
|
|
172
|
+
replace(doc);
|
|
173
|
+
};
|
|
127
174
|
|
|
128
175
|
mw.hook('wiki-codemirror').add(/** @param {CodeMirror.Editor} cm */ cm => {
|
|
129
176
|
if (!cm.getOption('styleSelectedText') || mw.libs.wphl.addons.has('wikiEditor')) {
|
|
@@ -153,18 +200,44 @@
|
|
|
153
200
|
reset(cm);
|
|
154
201
|
}
|
|
155
202
|
});
|
|
203
|
+
$replaceContainer.hide().insertBefore($textarea);
|
|
204
|
+
$replaceBtn.click(replaceNew).insertAfter($searchBtn);
|
|
205
|
+
$replaceClose.click(() => {
|
|
206
|
+
$replaceContainer.hide();
|
|
207
|
+
});
|
|
208
|
+
$replace.val('').keydown(e => {
|
|
209
|
+
if (e.key === 'Enter') {
|
|
210
|
+
e.preventDefault();
|
|
211
|
+
replace(cm);
|
|
212
|
+
} else if (e.key === 'Escape') {
|
|
213
|
+
e.stopPropagation();
|
|
214
|
+
$replaceContainer.hide();
|
|
215
|
+
}
|
|
216
|
+
});
|
|
156
217
|
cm.addKeyMap(
|
|
157
218
|
CodeMirror.keyMap.default === CodeMirror.keyMap.pcDefault
|
|
158
|
-
? {
|
|
159
|
-
|
|
219
|
+
? {
|
|
220
|
+
'Ctrl-F': findNew,
|
|
221
|
+
'Ctrl-G': 'findForward',
|
|
222
|
+
'Shift-Ctrl-G': 'findBackward',
|
|
223
|
+
'Shift-Ctrl-F': replaceNew,
|
|
224
|
+
'Shift-Ctrl-R': 'replace',
|
|
225
|
+
}
|
|
226
|
+
: {
|
|
227
|
+
'Cmd-F': findNew,
|
|
228
|
+
'Cmd-G': 'findForward',
|
|
229
|
+
'Shift-Cmd-G': 'findBackward',
|
|
230
|
+
'Cmd-Alt-F': replaceNew,
|
|
231
|
+
'Shift-Cmd-Alt-F': 'replace',
|
|
232
|
+
},
|
|
160
233
|
);
|
|
161
234
|
});
|
|
162
235
|
|
|
163
236
|
mw.loader.addStyleTag(
|
|
164
237
|
'.Wikiplus-Btn{line-height:1.4}'
|
|
165
|
-
+ '
|
|
238
|
+
+ '.Wikiplus-Quickedit-Search-Div{margin:7px 0 5px;}'
|
|
166
239
|
+ '.Wikiplus-Symbol-Btn{font-size:20px;margin:7px;vertical-align:middle;cursor:pointer;}'
|
|
167
|
-
+ '
|
|
240
|
+
+ '.Wikiplus-Quickedit-Search{width:50%;padding:revert;border:revert;background:revert;vertical-align:middle}'
|
|
168
241
|
+ '.cm-search{background-color:#ffc0cb83;}'
|
|
169
242
|
+ 'span.CodeMirror-selectedtext{background:#d7d4f0}',
|
|
170
243
|
);
|