wikiplus-highlight 2.49.7 → 2.57.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
@@ -11,13 +11,13 @@
11
11
  在*个人 JS 页*添加以下代码:
12
12
 
13
13
  ```javascript
14
- mw.loader.load('//cdn.jsdelivr.net/npm/wikiplus-highlight@2.49.7');
14
+ mw.loader.load('//cdn.jsdelivr.net/npm/wikiplus-highlight@2.57.0');
15
15
  ```
16
16
 
17
17
 
18
18
 
19
19
  ```javascript
20
- mw.loader.load('//unpkg.com/wikiplus-highlight@2.49.7/dist/main.min.js');
20
+ mw.loader.load('//unpkg.com/wikiplus-highlight@2.57.0/dist/main.min.js');
21
21
  ```
22
22
 
23
23
  ### 稳定版本
@@ -111,7 +111,7 @@ MediaWiki 模式下自动闭合生效的字符包括 `(`、`[`、`{` 和 `"`,
111
111
 
112
112
  ### 用于其他编辑器
113
113
 
114
- 勾选这一选项时,除[【搜索】](#搜索)[【添加 WikiEditor 工具条】](#添加-wikieditor-工具条)和[【维基语法检查】](#维基语法检查)插件以外的当前正在使用的插件也将作用于其他开启了 CodeMirror 高亮的编辑器。目前支持的编辑器包括 [InPageEdit-v2](https://github.com/inpageedit/inpageedit-v2) 和 [Inspector](https://zh.moegirl.org.cn/User:Bhsd/Inspector),不包括 MediaWiki 默认的编辑器。
114
+ 勾选这一选项时,除[【搜索】](#搜索)[【添加 WikiEditor 工具条】](#添加-wikieditor-工具条)插件以外的当前正在使用的插件也将作用于其他开启了 CodeMirror 高亮的编辑器。目前支持的编辑器包括 [InPageEdit-v2](https://github.com/inpageedit/inpageedit-v2) 和 [Inspector](https://zh.moegirl.org.cn/User:Bhsd/Inspector),不包括 MediaWiki 默认的编辑器。
115
115
 
116
116
  ## Supported languages
117
117
 
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&&mw.libs.wphl.version)return;mw.libs.wphl=mw.libs.wphl||{};const i="2.49.7",p="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 u=(e,...i)=>mw.msg("wphl-"+e,...i),n=(...e)=>$($.parseHTML(u(...e)));var e=(...i)=>()=>{var e=$("<p>",{html:u(...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",P="gh/bhsd-harry/codemirror-mediawiki@1.1.6",o="npm/wikiplus-highlight@"+t,{wgPageName:D,wgNamespaceNumber:w,wgPageContentModel:N,wgServerName:U,wgScriptPath:H,wgUserLanguage:F,skin:d}=mw["config"]["values"],h=null!==mw.loader.getState("ext.CodeMirror"),a=p.getObject("InPageEditMwConfig")||{},V=""+U+H,k=a[V]||{},f=!(k.time>Date.now()-2592e6),B={css:"css","sanitized-css":"css",javascript:"javascript",json:"javascript",wikitext:"mediawiki"},c=h?{lib:"ext.CodeMirror.lib",css:"ext.CodeMirror.lib.mode.css",javascript:"ext.CodeMirror.lib.mode.javascript",lua:l+"/mode/lua/lua.min.js",mediawiki:f?"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.8.8-b/extensions/editor.min.js",lintWikitext:o+"/lint.min.js"},b=[{option:"styleSelectedText",addon:"search",download:"markSelection",only:!0,complex:()=>!x.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"])}],x=new Set(p.getObject("Wikiplus-highlight-addons")||["search"]);let y=p.getObject("Wikiplus-highlight-indent")||4;const Q={'"':"quot","'":"apos","<":"lt",">":"gt","&":"amp"," ":"nbsp"},g=i=>e=>{e.replaceSelections(e.getSelections().map(e=>e.split("\n").map(i).join("\n")),"around")},q=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("")),K=g(e=>{if(e.includes("%"))try{return decodeURIComponent(e)}catch(e){}return encodeURIComponent(e)}),R=g(i=>{try{return decodeURIComponent(i.replace(/\.([\da-f]{2})/gi,"%$1"))}catch(e){return i}}),v=({keyMap:e})=>e.default===e.pcDefault,J=e=>{var i=v(e)?"Ctrl":"Cmd";return{[i+"-/"]:q,[i+"-\\"]:K,[`Shift-${i}-\\`]:R}},j=(u,e)=>{if(("mediawiki"===e||"widget"===e)&&x.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}}})}},C=p.getObject("Wikiplus-highlight-i18n")||{};let S;C["wphl-version"]?((e,i)=>{var[t,o]=r(e),[a,n]=r(i);return t<a||t===a&&o<n})(C["wphl-version"],i)&&(S=e("welcome-upgrade",i,0)):S=e("welcome");const M={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"}[F]||"en",G=`${s}/${o}/i18n/${M}.json`,X=C["wphl-version"]===t;e=async()=>{X&&C["wphl-lang"]===M||(Object.assign(C,await $.ajax(G,{dataType:"json",cache:!0})),p.setObject("Wikiplus-highlight-i18n",C)),mw.messages.set(C)},t=Promise.all([mw.loader.using("mediawiki.util"),e()]);const W=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 W(t),Y(o)):!1===i?(await Y(o),W(t)):Promise.all([W(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 b)r&&i||o in e.optionHandlers||!ie(a,x)||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),h||mw.loader.load(`${s}/${l}/lib/codemirror.min.css`,"text/css")),"mediawiki"!==(e="mediawiki"===e&&k.config&&k.config.tags.html?"html":e)&&"widget"!==e||a.modes.mediawiki||(mw.loader.load(`${s}/${P}/mediawiki.min.css`,"text/css"),i.push(P+"/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||!x.has("search")||x.has("wikiEditor")||i.push(m.searchcursor),!a.prototype.annotateScrollbar&&"mediawiki"===e&&x.has("lint")&&i.push(m.annotateScrollbar),a.commands.find||!x.has("search")||x.has("wikiEditor")||i.push(m.search),!window.wikiparse&&"mediawiki"===e&&x.has("lint")&&i.push(m.parser),!a.optionHandlers.lint&&"mediawiki"===e&&x.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||!x.has("lint")||i.push(m.lintWikitext),x.has("wikiEditor")&&((t=mw.loader.getState("ext.wikiEditor"))?"ready"!==t&&i.push(m.wikiEditor):x.delete("wikiEditor")),"ready"!==mw.loader.getState("mediawiki.Title")&&x.has("contextmenu")&&i.push(m.contextmenu),i.push(...ee(a)),Z(i,o?void 0:h)},oe=e=>{a[V]={config:e,time:Date.now()},p.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])),ae=e=>{for(const i of["indicator","poem","ref","tabs","tab","poll"])e.tags[i]&&(e.tagModes[i]="text/mediawiki")},ne=async(e,i)=>{if("mediawiki"===e||"widget"===e){h&&f&&await i;let e=mw.config.get("extCodeMirrorConfig");if(e||f||!X||({config:e}=k,ae(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_")))),ae(e),mw.config.set("extCodeMirrorConfig",e),oe(e),e}},re={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}},se=async(e,i)=>{const n=i?"javascript":await(async()=>{if(D.endsWith("/doc"))return"mediawiki";if(274!==w&&828!==w)return B[N];const e=274===w?"Widget":"Lua";return await mw.loader.using(["oojs-ui-windows","oojs-ui.styles.icons-content"]),await OO.ui.confirm(u("contentmodel"),{actions:[{label:e},{label:"Wikitext",action:"accept"}]})?"mediawiki":e.toLowerCase()})(),t=te(n),[o]=await Promise.all([ne(n,t),t]);if(!i&&x.has("wikiEditor"))try{if("function"==typeof mw.addWikiEditor)mw.addWikiEditor(e);else{const{dialogs:{config:s}}=$["wikiEditor"]["modules"];e.wikiEditor("addModule",{...$.wikiEditor.modules.toolbar.config.getDefaultConfig(),...s.getDefaultConfig()}),s.replaceIcons(e)}}catch(e){x.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"===N;(O=CodeMirror.fromTextArea(e[0],$.extend({inputStyle:"contenteditable",lineNumbers:!/Android\b/.test(navigator.userAgent),lineWrapping:!0,mode:n,mwConfig:o,json:r},Object.fromEntries(b.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,x.has(a)&&o(n,r)]})),"mediawiki"===n?{extraKeys:x.has("escape")&&J(CodeMirror)}:{indentUnit:x.has("indentWithSpace")?y:4,indentWithTabs:!x.has("indentWithSpace")}))).setSize(null,a),O.getWrapperElement().id="Wikiplus-CodeMirror",$.fn.textSelection&&e.textSelection("register",re);a=v(CodeMirror)?"Ctrl":"Cmd";if(x.has("wikiEditor")){const l=e.data("wikiEditorContext");O.addKeyMap({[a+"-F"](){$.wikiEditor.modules.dialogs.api.openDialog(l,"search-and-replace")}})}if(j(O,n),$("#Wikiplus-Quickedit-Jump").children("a").attr("href","#Wikiplus-CodeMirror"),!i){const d="object"==typeof window.Wikiplus?window.Wikiplus:{getSetting(e){var i=p.getObject("Wikiplus_Settings");return i&&i[e]}},c=d.getSetting("esc_to_exit_quickedit"),m=()=>{$("#Wikiplus-Quickedit-Submit").triggerHandler("click")},g=()=>{$("#Wikiplus-Quickedit-MinorEdit").click(),$("#Wikiplus-Quickedit-Submit").triggerHandler("click")};O.addKeyMap($.extend({[a+"-S"]:m,[`Shift-${a}-S`]:g},!0===c||"true"===c?{Esc(){$("#Wikiplus-Quickedit-Back").triggerHandler("click")}}:{}))}O.refresh(),mw.hook("wiki-codemirror").fire(O)},le=document["body"],de=new MutationObserver(e=>{const i=$(e.flatMap(({addedNodes:e})=>[...e])).find("#Wikiplus-Quickedit, #Wikiplus-Setting-Input");0<i.length&&se(i,"Wikiplus-Setting-Input"===i.attr("id"))}),ce=(de.observe(le,{childList:!0}),$(le).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:me=e=>e.value,set:ge=(e,i)=>{e.value=i}}=(ce.id="wphl-style",$.valHooks.textarea||{}),pe=e=>"Wikiplus-Quickedit"===e.id||"Wikiplus-Setting-Input"===e.id;$.valHooks.textarea={get(e){return pe(e)&&O?O.getValue():me(e)},set(e,i){pe(e)&&O?O.setValue(i):ge(e,i)}},await t;let z,I,ue,we,he,T,ke,A;const fe=(e=[...x])=>{A.toggle(e.includes("indentWithSpace"))};const be=$(mw.util.addPortletLink({minerva:"page-actions-overflow",citizen:"p-actions",moeskin:"ca-more-actions"}[d]||"p-cactions","#",u("portlet"),"wphl-settings")).click(async e=>{if(e.preventDefault(),z)I.setValue([...x]),T.setValue(y);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(le),t.addWindows([z]),I=new OO.ui.CheckboxMultiselectInputWidget({options:[...b.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:[...x]}).on("change",fe))["checkboxMultiselectWidget"];ue=o.findItemFromData("search"),we=o.findItemFromData("wikiEditor"),he=o.findItemFromData("lint"),T=new OO.ui.NumberInputWidget({min:0,value:y}),ke=new OO.ui.FieldLayout(I,{label:u("addon-label"),notices:[u("addon-notice")],align:"top"}),A=new OO.ui.FieldLayout(T,{label:u("addon-indent")}),fe(),Object.assign(mw.libs.wphl,{widget:I,indentWidget:T})}var i="object"==typeof window.Wikiplus||"object"==typeof window.Pages,i=(ue.setDisabled(!i),we.setDisabled(!i||!mw.loader.getState("ext.wikiEditor")),he.setDisabled(!i),await z.open({title:u("addon-title"),message:ke.$element.add(A.$element).add($("<p>",{html:u("feedback")})),actions:[{action:"reject",label:mw.msg("ooui-dialog-message-reject")},{action:"accept",label:mw.msg("ooui-dialog-message-accept"),flags:"progressive"}],size:"en"===M||"minerva"===d?"medium":"small"}).closing);if(ke.$element.detach(),A.$element.detach(),"object"==typeof i&&"accept"===i.action){i=I.getValue();x.clear();for(const a of i)x.add(a);y=Number(T.getValue()),p.setObject("Wikiplus-highlight-addons",i),p.setObject("Wikiplus-highlight-indent",y)}}),L=("minerva"===d&&be.find(".mw-ui-icon").addClass("mw-ui-icon-minerva-settings"),"function"==typeof S&&S().find("#wphl-settings-notify").click(e=>{e.preventDefault(),$("#wphl-settings").triggerHandler("click")}),async i=>{if(x.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.has(e)}of b.filter(({only:e})=>!e)){var a=Array.isArray(r)?r[0]:r;void 0===i.getOption(n)&&x.has(a)&&i.setOption(n,l(e,o))}"mediawiki"===e&&x.has("escape")?i.addKeyMap(J(CodeMirror),!0):"mediawiki"!==e&&x.has("indentWithSpace")&&(i.setOption("indentUnit",y),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&&pe(e.getTextArea())||L(e)}),Object.assign(mw.libs.wphl,{version:i,options:b,addons:x,i18n:C,i18nLang:M,wphlStyle:ce,$portlet:be,USING_LOCAL:h,MODE_LIST:c,ADDON_LIST:m,msg:u,htmlMsg:n,escapeHTML:q,handleContextMenu:j,setI18N:e,getAddonScript:ee,updateCachedConfig:oe,getMwConfig:ne,renderEditor:se,handleOtherEditors:L,isPc:v})})();
7
+ (async()=>{"use strict";if(mw.libs.wphl&&mw.libs.wphl.version)return;mw.libs.wphl=mw.libs.wphl||{};const i="2.57",g="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}}},s=(Object.fromEntries=Object.fromEntries||(e=>{const i={};for(var[t,a]of e)i[t]=a;return i}),(e=i)=>e.split(".").map(Number));const w=(e,...i)=>mw.msg("wphl-"+e,...i),o=(...e)=>$($.parseHTML(w(...e)));var e=(...i)=>()=>{var e=$("<p>",{html:w(...i)});return mw.notify(e,{type:"success",autoHideSeconds:"long",tag:"wikiplus-highlight"}),e},t=s().slice(0,2).join(".");const p="//fastly.jsdelivr.net",u="npm/codemirror@5.65.3",L="gh/bhsd-harry/codemirror-mediawiki@1.1.6",D="npm/wikiparser-node@0.9.2-b",a="npm/wikiplus-highlight@"+t,{wgPageName:N,wgNamespaceNumber:h,wgPageContentModel:H,wgServerName:U,wgScriptPath:F,wgUserLanguage:V,skin:r}=mw["config"]["values"],k=null!==mw.loader.getState("ext.CodeMirror"),n=g.getObject("InPageEditMwConfig")||{},Q=""+U+F,f=n[Q]||{},b=!(f.time>Date.now()-2592e6),B={css:"css","sanitized-css":"css",javascript:"javascript",json:"javascript",wikitext:"mediawiki"},l=k?{lib:"ext.CodeMirror.lib",css:"ext.CodeMirror.lib.mode.css",javascript:"ext.CodeMirror.lib.mode.javascript",lua:u+"/mode/lua/lua.min.js",mediawiki:b?"ext.CodeMirror.data":[],htmlmixed:"ext.CodeMirror.lib.mode.htmlmixed",xml:[]}:{lib:u+"/lib/codemirror.min.js",css:u+"/mode/css/css.min.js",javascript:u+"/mode/javascript/javascript.min.js",lua:u+"/mode/lua/lua.min.js",mediawiki:[],htmlmixed:u+"/mode/htmlmixed/htmlmixed.min.js",xml:u+"/mode/xml/xml.min.js"},y={searchcursor:u+"/addon/search/searchcursor.min.js",search:a+"/search.min.js",markSelection:u+"/addon/selection/mark-selection.min.js",activeLine:u+"/addon/selection/active-line.min.js",trailingspace:u+"/addon/edit/trailingspace.min.js",matchBrackets:u+"/addon/edit/matchbrackets.min.js",closeBrackets:u+"/addon/edit/closebrackets.min.js",matchTags:a+"/matchtags.min.js",fold:a+"/fold.min.js",wikiEditor:"ext.wikiEditor",contextmenu:"mediawiki.Title",lint:u+"/addon/lint/lint.min.js",annotateScrollbar:u+"/addon/scroll/annotatescrollbar.min.js",parser:D+"/extensions/editor.min.js",lintWikitext:a+"/lint.min.js"},x=[{option:"styleSelectedText",addon:"search",download:"markSelection",only:!0,complex:()=>!j.has("wikiEditor")},{option:"styleSelectedText",addon:"lint",download:"markSelection"},{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"])}],j=new Set(g.getObject("Wikiplus-highlight-addons")||["search"]);let v=g.getObject("Wikiplus-highlight-indent")||4;const R={'"':"quot","'":"apos","<":"lt",">":"gt","&":"amp"," ":"nbsp"},d=i=>e=>{e.replaceSelections(e.getSelections().map(e=>e.split("\n").map(i).join("\n")),"around")},q=d(e=>[...e].map(e=>{if(e in R)return`&${R[e]};`;const i=e.codePointAt();return i<256?`&#${i};`:`&#x${i.toString(16)};`}).join("")),K=d(e=>{if(e.includes("%"))try{return decodeURIComponent(e)}catch(e){}return encodeURIComponent(e)}),J=d(i=>{try{return decodeURIComponent(i.replace(/\.([\da-f]{2})/gi,"%$1"))}catch(e){return i}}),S=({keyMap:e})=>e.default===e.pcDefault,G=e=>{var i=S(e)?"Ctrl":"Cmd";return{[i+"-/"]:q,[i+"-\\"]:K,[`Shift-${i}-\\`]:J}},C=(w,e)=>{if(("mediawiki"===e||"widget"===e)&&j.has("contextmenu")){const t=$(w.getWrapperElement()).addClass("CodeMirror-contextmenu"),[a]=(mw.config.get("extCodeMirrorConfig")||{functionSynonyms:[{invoke:"invoke","调用":"invoke",widget:"widget","小工具":"widget"}]})["functionSynonyms"];var i=i=>new Set(Object.keys(a).filter(e=>a[e]===i).map(e=>e.startsWith("#")?e:"#"+e));const u=i("invoke"),h=i("widget");t.contextmenu(({pageX:e,pageY:i})=>{const t=w.coordsChar({left:e,top:i}),{line:a,ch:n}=t,o=w.getTokenTypeAt(t);if(/\bmw-(?:template-name|parserfunction)\b/.test(o)){const c=w.getLineTokens(a);for(let e=c.length-1;0<e;e--){var{type:s,end:r,string:l}=c[e];c[e-1].type===s&&(c[e-1].end=r,c[e-1].string+=l,c.splice(e,1))}const m=c.findIndex(({start:e,end:i})=>e<n&&i>=n),p=c[m].string.replace(/\u200E/g,"").replace(/_/g," ").trim();if(/\bmw-template-name\b/.test(o)){const g=new mw.Title(p);return 0!==g.namespace||p.startsWith(":")?open(g.getUrl(),"_blank"):open(mw.util.getUrl("Template:"+p),"_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(u.has(d))open(mw.util.getUrl("Module:"+p),"_blank");else{if(!h.has(d))return;open(mw.util.getUrl("Widget:"+p,{action:"edit"}),"_blank")}return!1}}})}},c=g.getObject("Wikiplus-highlight-i18n")||{};let m;c["wphl-version"]?((e,i)=>{var[t,a]=s(e),[n,o]=s(i);return t<n||t===n&&a<o})(c["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"}[V]||"en",X=`${p}/${a}/i18n/${W}.json`,Y=c["wphl-version"]===t;e=async()=>{Y&&c["wphl-lang"]===W||(Object.assign(c,await $.ajax(X,{dataType:"json",cache:!0})),g.setObject("Wikiplus-highlight-i18n",c)),mw.messages.set(c)},t=Promise.all([mw.loader.using("mediawiki.util"),e()]);const M=e=>0<e.length?mw.loader.using(e):Promise.resolve(),Z=e=>0<e.length?$.ajax(p+"/"+(1<e.length?"combine/":"")+e.join(),{dataType:"script",cache:!0}):Promise.resolve(),ee=async(e,i)=>{var t=(e=[...new Set(e)]).filter(e=>!e.includes("/")),a=e.filter(e=>e.includes("/"));return!0===i?(await M(t),Z(a)):!1===i?(await Z(a),M(t)):Promise.all([M(t),Z(a)])};let O;const ie=(e,i=!1)=>{const t=[];for(var{option:a,addon:n=a,download:o=Array.isArray(n)?a:n,only:s}of x)s&&i||a in e.optionHandlers||!te(n,j)||t.push(y[o]);return t},te=(e,i)=>Array.isArray(e)?e.some(e=>i.has(e)):i.has(e),ae=e=>{let i=[];var t,a="function"==typeof window.CodeMirror,n=a?window.CodeMirror:{modes:{},prototype:{},commands:{},optionHandlers:{},helpers:{}};if(a||(i.push(l.lib),k||mw.loader.load(`${p}/${u}/lib/codemirror.min.css`,"text/css")),"mediawiki"!==(e="mediawiki"===e&&f.config&&f.config.tags.html?"html":e)&&"widget"!==e||n.modes.mediawiki||(mw.loader.load(`${p}/${L}/mediawiki.min.css`,"text/css"),i.push(L+"/mediawiki.min.js")),"widget"===e||"html"===e)for(const o of["css","javascript","mediawiki","htmlmixed","xml"])n.modes[o]||(i=i.concat(l[o]));else i=i.concat(l[e]);return n.prototype.getSearchCursor||!j.has("search")||j.has("wikiEditor")||i.push(y.searchcursor),!n.prototype.annotateScrollbar&&"mediawiki"===e&&j.has("lint")&&i.push(y.annotateScrollbar),n.commands.find||!j.has("search")||j.has("wikiEditor")||i.push(y.search),!window.wikiparse&&"mediawiki"===e&&j.has("lint")&&i.push(y.parser),!n.optionHandlers.lint&&"mediawiki"===e&&j.has("lint")&&(mw.loader.load(`${p}/${u}/addon/lint/lint.min.css`,"text/css"),i.push(y.lint)),n.helpers.lint&&n.helpers.lint.mediawiki||"mediawiki"!==e||!j.has("lint")||i.push(y.lintWikitext),j.has("wikiEditor")&&((t=mw.loader.getState("ext.wikiEditor"))?"ready"!==t&&i.push(y.wikiEditor):j.delete("wikiEditor")),"ready"!==mw.loader.getState("mediawiki.Title")&&j.has("contextmenu")&&i.push(y.contextmenu),i.push(...ie(n)),ee(i,a?void 0:k)},ne=e=>{n[Q]={config:e,time:Date.now()},g.setObject("InPageEditMwConfig",n)},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")},se=async(e,i)=>{if("mediawiki"===e||"widget"===e){k&&b&&await i;let e=mw.config.get("extCodeMirrorConfig");e||b||!Y||({config:e}=f,oe(e),mw.config.set("extCodeMirrorConfig",e));var t,a,n=e&&Object.values(e.functionSynonyms[0]).includes(!0);if(e&&e.redirect&&e.img&&!n)return e;const{magicwords:o,extensiontags:s,functionhooks:r,variables:l}=(await(new mw.Api).get({meta:"siteinfo",siprop:e&&!n?"magicwords":"magicwords|extensiontags|functionhooks|variables",formatversion:2}))["query"],d=new Set(["msg","raw","msgnw","subst","safesubst"]);if(e&&!n){const[c]=e["functionSynonyms"];if(!c.subst)for({alias:t,name:a}of E(o.filter(({name:e})=>d.has(e))))c[t.replace(/:$/,"")]=a}else{e={tagModes:{pre:"mw-tag-pre",nowiki:"mw-tag-nowiki",ref:"text/mediawiki"},tags:Object.fromEntries(s.map(e=>[e.slice(1,-1),!0])),urlProtocols:mw.config.get("wgUrlProtocols")};const m=new Set([...r,...l,...d]),p=o.filter(({name:e,aliases:i})=>i.some(e=>/^__.+__$/.test(e))||m.has(e)),g=E(p.filter(e=>e["case-sensitive"])),w=E(p.filter(e=>!e["case-sensitive"])).map(({alias:e,name:i})=>({alias:e.toLowerCase(),name:i}));e.doubleUnderscore=[_(w.filter(({alias:e})=>/^__.+__$/.test(e))),_(g.filter(({alias:e})=>/^__.+__$/.test(e)))],e.functionSynonyms=[_(w.filter(({alias:e})=>!/^__.+__|^#$/.test(e))),_(g.filter(({alias:e})=>!/^__.+__|^#$/.test(e)))]}return e.redirect=o.find(({name:e})=>"redirect"===e).aliases,e.img=_(E(o.filter(({name:e})=>e.startsWith("img_")))),oe(e),mw.config.set("extCodeMirrorConfig",e),ne(e),e}},re={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}},le=async(e,i)=>{const o=i?"javascript":await(async()=>{if(N.endsWith("/doc"))return"mediawiki";if(274!==h&&828!==h)return B[H];const e=274===h?"Widget":"Lua";return await mw.loader.using(["oojs-ui-windows","oojs-ui.styles.icons-content"]),await OO.ui.confirm(w("contentmodel"),{actions:[{label:e},{label:"Wikitext",action:"accept"}]})?"mediawiki":e.toLowerCase()})(),t=ae(o),[a]=await Promise.all([se(o,t),t]);if(!i&&j.has("wikiEditor"))try{if("function"==typeof mw.addWikiEditor)mw.addWikiEditor(e);else{const{dialogs:{config:r}}=$["wikiEditor"]["modules"];e.wikiEditor("addModule",{...$.wikiEditor.modules.toolbar.config.getDefaultConfig(),...r.getDefaultConfig()}),r.replaceIcons(e)}}catch(e){j.delete("wikiEditor"),mw.notify("WikiEditor工具栏加载失败。",{type:"error"}),console.error(e)}"mediawiki"===o&&a.tags.html?(a.tagModes.html="htmlmixed",await ae("html")):"widget"!==o||CodeMirror.mimeModes.widget||CodeMirror.defineMIME("widget",{name:"htmlmixed",tags:{noinclude:[[null,null,"mediawiki"]]}});var n=e.height();O&&O.toTextArea();const s=i||"json"===H;(O=CodeMirror.fromTextArea(e[0],$.extend({inputStyle:"contenteditable",lineNumbers:!/Android\b/.test(navigator.userAgent),lineWrapping:!0,mode:o,mwConfig:a,json:s},Object.fromEntries(x.map(({option:e,addon:i=e,modes:t,complex:a=e=>!t||t.has(e)})=>{var n=Array.isArray(i)?i[0]:i;return[e,j.has(n)&&a(o,s)]})),"mediawiki"===o?{extraKeys:j.has("escape")&&G(CodeMirror)}:{indentUnit:j.has("indentWithSpace")?v:4,indentWithTabs:!j.has("indentWithSpace")}))).setSize(null,n),O.getWrapperElement().id="Wikiplus-CodeMirror",$.fn.textSelection&&e.textSelection("register",re);n=S(CodeMirror)?"Ctrl":"Cmd";if(j.has("wikiEditor")){const l=e.data("wikiEditorContext");O.addKeyMap({[n+"-F"](){$.wikiEditor.modules.dialogs.api.openDialog(l,"search-and-replace")}})}if(C(O,o),$("#Wikiplus-Quickedit-Jump").children("a").attr("href","#Wikiplus-CodeMirror"),!i){const d="object"==typeof window.Wikiplus?window.Wikiplus:{getSetting(e){var i=g.getObject("Wikiplus_Settings");return i&&i[e]}},c=d.getSetting("esc_to_exit_quickedit"),m=()=>{$("#Wikiplus-Quickedit-Submit").triggerHandler("click")},p=()=>{$("#Wikiplus-Quickedit-MinorEdit").click(),$("#Wikiplus-Quickedit-Submit").triggerHandler("click")};O.addKeyMap($.extend({[n+"-S"]:m,[`Shift-${n}-S`]:p},!0===c||"true"===c?{Esc(){$("#Wikiplus-Quickedit-Back").triggerHandler("click")}}:{}))}O.refresh(),mw.hook("wiki-codemirror").fire(O)},de=document["body"],ce=new MutationObserver(e=>{const i=$(e.flatMap(({addedNodes:e})=>[...e])).find("#Wikiplus-Quickedit, #Wikiplus-Setting-Input");0<i.length&&le(i,"Wikiplus-Setting-Input"===i.attr("id"))}),{get:me=e=>e.value,set:pe=(e,i)=>{e.value=i}}=(ce.observe(de,{childList:!0}),$(de).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()}}),$.valHooks.textarea||{}),ge=e=>"Wikiplus-Quickedit"===e.id||"Wikiplus-Setting-Input"===e.id;$.valHooks.textarea={get(e){return ge(e)&&O?O.getValue():me(e)},set(e,i){ge(e)&&O?O.setValue(i):pe(e,i)}},await t;let T,A,we,ue,I,he,P;const ke=(e=[...j])=>{P.toggle(e.includes("indentWithSpace"))};const fe=$(mw.util.addPortletLink({minerva:"page-actions-overflow",citizen:"p-actions",moeskin:"ca-more-actions"}[r]||"p-cactions","#",w("portlet"),"wphl-settings")).click(async e=>{if(e.preventDefault(),T)A.setValue([...j]),I.setValue(v);else{await mw.loader.using(["oojs-ui-windows","oojs-ui.styles.icons-content"]),T=new OO.ui.MessageDialog({id:"Wikiplus-highlight-dialog"});const t=new OO.ui.WindowManager,a=(t.$element.appendTo(de),t.addWindows([T]),A=new OO.ui.CheckboxMultiselectInputWidget({options:[...x.map(({option:e,addon:i=e})=>{const t=Array.isArray(i)?i[0]:i;return{data:t,label:o("addon-"+t.toLowerCase())}}),...["wikiEditor","escape","contextmenu","lint","indentWithSpace","otherEditors"].map(e=>({data:e,label:o("addon-"+e.toLowerCase())}))],value:[...j]}).on("change",ke))["checkboxMultiselectWidget"];we=a.findItemFromData("search"),ue=a.findItemFromData("wikiEditor"),I=new OO.ui.NumberInputWidget({min:0,value:v}),he=new OO.ui.FieldLayout(A,{label:w("addon-label"),notices:[w("addon-notice")],align:"top"}),P=new OO.ui.FieldLayout(I,{label:w("addon-indent")}),ke(),Object.assign(mw.libs.wphl,{widget:A,indentWidget:I})}var i="object"==typeof window.Wikiplus||"object"==typeof window.Pages,i=(we.setDisabled(!i),ue.setDisabled(!i||!mw.loader.getState("ext.wikiEditor")),await T.open({title:w("addon-title"),message:he.$element.add(P.$element).add($("<p>",{html:w("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"===r?"medium":"small"}).closing);if(he.$element.detach(),P.$element.detach(),"object"==typeof i&&"accept"===i.action){i=A.getValue();j.clear();for(const n of i)j.add(n);v=Number(I.getValue()),g.setObject("Wikiplus-highlight-addons",i),g.setObject("Wikiplus-highlight-indent",v)}}),z=("minerva"===r&&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(j.has("otherEditors")){let e=i.getOption("mode");e="text/mediawiki"===e?"mediawiki":e;const a=ie(CodeMirror,!0),n=i.getOption("json"),{prototype:o,optionHandlers:s,helpers:{lint:r}}=CodeMirror;!o.annotateScrollbar&&"mediawiki"===e&&j.has("lint")&&a.push(y.annotateScrollbar),!window.wikiparse&&"mediawiki"===e&&j.has("lint")&&a.push(y.parser),!s.lint&&"mediawiki"===e&&j.has("lint")&&(mw.loader.load(`${p}/${u}/addon/lint/lint.min.css`,"text/css"),a.push(y.lint)),r&&r.mediawiki||"mediawiki"!==e||!j.has("lint")||a.push(y.lintWikitext),await ee(a);for(const{option:l,addon:d=l,modes:c,complex:m=e=>!c||c.has(e)}of x.filter(({only:e})=>!e)){var t=Array.isArray(d)?d[0]:d;void 0===i.getOption(l)&&j.has(t)&&i.setOption(l,m(e,n))}"mediawiki"===e&&j.has("escape")?i.addKeyMap(G(CodeMirror),!0):"mediawiki"!==e&&j.has("indentWithSpace")&&(i.setOption("indentUnit",v),i.setOption("indentWithTabs",!1)),C(i,e)}});mw.hook("InPageEdit.quickEdit.codemirror").add(({cm:e})=>z(e)),mw.hook("inspector").add(e=>z(e)),mw.hook("wiki-codemirror").add(e=>{e.getTextArea&&ge(e.getTextArea())||z(e)}),mw.loader.load(p+`/${a}/styles.min.css`,"text/css"),Object.assign(mw.libs.wphl,{version:i,options:x,addons:j,i18n:c,i18nLang:W,storage:g,$portlet:fe,CDN:p,PARSER_CDN:D,USING_LOCAL:k,MODE_LIST:l,ADDON_LIST:y,msg:w,htmlMsg:o,escapeHTML:q,handleContextMenu:C,setI18N:e,getAddonScript:ie,updateCachedConfig:ne,getMwConfig:se,renderEditor:le,handleOtherEditors:z,isPc:S})})();
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","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","replaceSelections","getSelections","selection","escapeHTML","c","code","codePointAt","toString","escapeURI","includes","decodeURIComponent","encodeURIComponent","escapeHash","replace","isPc","keyMap","default","pcDefault","extraKeys","CM","ctrl","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","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","external","cm","getAddonScript","other","addonScript","Array","isArray","optionHandlers","intersect","push","arr","some","ele","initMode","scripts","state","loaded","window","CodeMirror","prototype","commands","helpers","load","tags","lang","concat","getSearchCursor","find","wikiparse","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","cmTextSelection","getContents","getValue","setContents","content","setValue","this","getSelection","setSelection","posFromIndex","focus","replaceSelection","getCaretPosition","caretPos","indexFromPos","getCursor","endPos","startAndEnd","scrollToCaretPosition","scrollIntoView","renderEditor","$target","setting","endsWith","pageMode","OO","ui","confirm","actions","label","getPageMode","mwConfig","addWikiEditor","dialogs","modules","toolbar","getDefaultConfig","replaceIcons","console","error","mimeModes","defineMIME","noinclude","height","toTextArea","fromTextArea","extend","inputStyle","lineNumbers","navigator","userAgent","lineWrapping","mod","mainAddon","indentUnit","indentWithTabs","setSize","id","fn","textSelection","context","data","addKeyMap","api","openDialog","children","attr","Wikiplus","getSetting","settings","escToExitQuickEdit","submit","triggerHandler","submitMinor","click","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","PARSER_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","replaceSelections","getSelections","selection","escapeHTML","c","code","codePointAt","toString","escapeURI","includes","decodeURIComponent","encodeURIComponent","escapeHash","replace","isPc","keyMap","default","pcDefault","extraKeys","CM","ctrl","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","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","external","cm","getAddonScript","other","addonScript","Array","isArray","optionHandlers","intersect","push","arr","some","ele","initMode","scripts","state","loaded","window","CodeMirror","prototype","commands","helpers","load","tags","lang","concat","getSearchCursor","find","wikiparse","delete","undefined","updateCachedConfig","getAliases","words","flatMap","aliases","name","alias","getConfig","setPlainMode","tagModes","getMwConfig","initModePromise","isIPE","redirect","img","magicwords","extensiontags","functionhooks","variables","Api","meta","siprop","formatversion","query","otherMagicwords","insensitive","subst","pre","nowiki","ref","urlProtocols","realMagicwords","allMagicwords","sensitive","word","doubleUnderscore","cmTextSelection","getContents","getValue","setContents","content","setValue","this","getSelection","setSelection","posFromIndex","focus","replaceSelection","getCaretPosition","caretPos","indexFromPos","getCursor","endPos","startAndEnd","scrollToCaretPosition","scrollIntoView","renderEditor","$target","setting","endsWith","pageMode","OO","ui","confirm","actions","label","getPageMode","mwConfig","addWikiEditor","dialogs","modules","toolbar","getDefaultConfig","replaceIcons","console","error","mimeModes","defineMIME","noinclude","height","toTextArea","fromTextArea","extend","inputStyle","lineNumbers","navigator","userAgent","lineWrapping","mod","mainAddon","indentUnit","indentWithTabs","setSize","id","fn","textSelection","context","data","addKeyMap","api","openDialog","children","attr","Wikiplus","getSetting","settings","escToExitQuickEdit","submit","triggerHandler","submitMinor","click","Esc","refresh","hook","fire","body","document","observer","MutationObserver","records","$editArea","addedNodes","elem","observe","childList","on","$textarea","stopPropagation","valHooks","textarea","isWikiplus","dialog","searchWidget","wikiEditorWidget","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
@@ -261,11 +261,4 @@
261
261
  cm.on('cursorActivity', showTooltip);
262
262
  }
263
263
  });
264
-
265
- mw.loader.addStyleTag(
266
- '.CodeMirror-sizer{overflow:visible}'
267
- + '.CodeMirror-tooltip{position:absolute;z-index:101;cursor:pointer;'
268
- + 'background-color:#ffd;border:1px solid;padding:0 1px;font-size:10pt;line-height:1.2}'
269
- + '.CodeMirror-widget-unfold{cursor:pointer;border:1px dotted}',
270
- );
271
264
  })();
package/i18n/en.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "wphl-version": "2.49.7",
2
+ "wphl-version": "2.57",
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/ka.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "wphl-version": "2.49.7",
2
+ "wphl-version": "2.57",
3
3
  "wphl-lang": "ka",
4
4
  "wphl-addon-search": "<span title=\"ძებნა ნიშნების მწკრივით ან რეგულარული გაფართოებით\">ძებნა</span>",
5
5
  "wphl-addon-activeline": "აქტიური ხაზის მონიშვნა",
package/i18n/zh-hans.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "wphl-version": "2.49.7",
2
+ "wphl-version": "2.57",
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.49.7",
2
+ "wphl-version": "2.57",
3
3
  "wphl-lang": "zh-hant",
4
4
  "wphl-addon-search": "<span title=\"搜尋字串或正規表示式\">搜尋</span>",
5
5
  "wphl-addon-activeline": "突出顯示游標所在行",
package/lint.js CHANGED
@@ -7,6 +7,36 @@
7
7
  /* global wikiparse */
8
8
  'use strict';
9
9
 
10
+ /** 加载 I18N */
11
+ const {libs: {wphl: {version, storage, addons, lintOptions, CDN, PARSER_CDN, isPc, getMwConfig}}} = mw,
12
+ /** @type {Record<string, string>} */ i18n = storage.getObject('wikiparser-i18n') || {},
13
+ /** @type {Record<string, string>} */ i18nLanguages = {
14
+ zh: 'zh-hans',
15
+ 'zh-hans': 'zh-hans',
16
+ 'zh-cn': 'zh-hans',
17
+ 'zh-my': 'zh-hans',
18
+ 'zh-sg': 'zh-hans',
19
+ 'zh-hant': 'zh-hant',
20
+ 'zh-tw': 'zh-hant',
21
+ 'zh-hk': 'zh-hant',
22
+ 'zh-mo': 'zh-hant',
23
+ },
24
+ i18nLang = i18nLanguages[mw.config.get('wgUserLanguage')],
25
+ I18N_CDN = i18nLang && `${CDN}/${PARSER_CDN}/i18n/${i18nLang}.json`;
26
+ if (i18nLang) {
27
+ (async () => {
28
+ if (i18n['wphl-version'] !== version || i18n['wphl-lang'] !== i18nLang) {
29
+ Object.assign(
30
+ i18n,
31
+ await $.ajax(`${I18N_CDN}`, {dataType: 'json', cache: true}),
32
+ {'wphl-version': version, 'wphl-lang': i18nLang},
33
+ );
34
+ storage.setObject('wikiparser-i18n', i18n);
35
+ }
36
+ wikiparse.setI18N(i18n);
37
+ })();
38
+ }
39
+
10
40
  const include = mw.config.get('wgNamespaceNumber') === 10 && !mw.config.get('wgPageName').endsWith('/doc'),
11
41
  {cmpPos, Pos} = CodeMirror;
12
42
 
@@ -30,19 +60,6 @@
30
60
  });
31
61
  };
32
62
 
33
- mw.loader.addStyleTag(
34
- '.CodeMirror-line .CodeMirror-lint-mark-warning{background:#ffbf00;color:#fff;caret-color:#000}'
35
- + '.CodeMirror-line .CodeMirror-lint-mark-error{background:#d33;color:#fff}'
36
- + '.CodeMirror-lint-scroll-warn{'
37
- + 'background:#fc3;border-top:1px solid #fc3;border-bottom:1px solid #fc3;box-sizing:border-box'
38
- + '}'
39
- + '.CodeMirror-lint-scroll-error{'
40
- + 'background:#d33;border-top:1px solid #d33;border-bottom:1px solid #d33;box-sizing:border-box'
41
- + '}'
42
- + '#wphl-lint-panel{background:#f7f7f7;border:1px solid #c8ccd1}'
43
- + '.wphl-lint-subpanel{margin-left:1ch;cursor:pointer}'
44
- + '.wphl-lint-count{display:inline-block;width:5ch;padding:1px 0 1px 1ch}',
45
- );
46
63
  CodeMirror.registerHelper('lint', 'mediawiki', annotate);
47
64
 
48
65
  /**
@@ -56,8 +73,12 @@
56
73
  } else if (!wikiparse.config) {
57
74
  const {config: {values: {wgFormattedNamespaces, wgNamespaceIds}}} = mw,
58
75
  {parserFunction: [withPound,, ...modifiers]} = await wikiparse.getConfig(),
59
- valuesWithPound = new Set(Object.values(withPound)),
60
- {tags, functionSynonyms: [insensitive, sensitive], doubleUnderscore, img} = cm.getOption('mwConfig');
76
+ valuesWithPound = new Set(Object.values(withPound));
77
+ let mwConfig = cm.getOption('mwConfig');
78
+ if (!mwConfig.img || Object.values(mwConfig.functionSynonyms[0]).includes(true)) {
79
+ mwConfig = await getMwConfig('mediawiki');
80
+ }
81
+ const {tags, functionSynonyms: [insensitive, sensitive], doubleUnderscore, img} = mwConfig;
61
82
  for (const [k, v] of Object.entries(insensitive)) {
62
83
  if (valuesWithPound.has(v) && !k.startsWith('#')) {
63
84
  delete insensitive[k];
@@ -143,7 +164,7 @@
143
164
  $panelElement.detach();
144
165
  } else {
145
166
  cm.setOption('lint', {
146
- delay: 1000, ...mw.libs.wphl.lintOptions, selfContain: true, onUpdateLinting,
167
+ delay: 1000, ...lintOptions, selfContain: true, onUpdateLinting,
147
168
  });
148
169
  $lineDiv.on('input', onInput);
149
170
  $panelElement.insertAfter(cm.getWrapperElement());
@@ -151,7 +172,7 @@
151
172
  };
152
173
  cm.setOption('gutters', ['CodeMirror-lint-markers']);
153
174
  switchOption();
154
- const ctrl = mw.libs.wphl.isPc(CodeMirror) ? 'Ctrl' : 'Cmd';
175
+ const ctrl = isPc(CodeMirror) ? 'Ctrl' : 'Cmd';
155
176
  cm.addKeyMap({[`${ctrl}-K`]: performLint, [`${ctrl}-L`]: switchOption});
156
177
  cm.on('cursorActivity', () => {
157
178
  positionMap.clear();
@@ -163,10 +184,16 @@
163
184
  * @param {CodeMirror.Editor} cm
164
185
  */
165
186
  const hook = cm => {
166
- if (mw.libs.wphl.addons.has('lint') && cm.getTextArea && cm.getTextArea().id === 'Wikiplus-Quickedit') {
187
+ if (addons.has('lint') && cm.getTextArea
188
+ && (addons.has('otherEditors') || cm.getTextArea().id === 'Wikiplus-Quickedit')
189
+ ) {
167
190
  lint(cm);
168
191
  }
169
192
  };
170
193
  mw.hook('wiki-codemirror').add(hook);
194
+ mw.hook('InPageEdit.quickEdit.codemirror').add(
195
+ /** @param {{cm: CodeMirror.Editor}} */ ({cm: doc}) => hook(doc),
196
+ );
197
+ mw.hook('inspector').add(hook);
171
198
  mw.libs.wphl.lintHook = hook;
172
199
  })();
package/main.js CHANGED
@@ -15,7 +15,7 @@
15
15
  }
16
16
  mw.libs.wphl = mw.libs.wphl || {}; // 开始加载
17
17
 
18
- const version = '2.49.7',
18
+ const version = '2.57',
19
19
  newAddon = 0;
20
20
 
21
21
  /** @type {typeof mw.storage} */
@@ -100,7 +100,7 @@
100
100
  const CDN = '//fastly.jsdelivr.net',
101
101
  CM_CDN = 'npm/codemirror@5.65.3',
102
102
  MW_CDN = 'gh/bhsd-harry/codemirror-mediawiki@1.1.6',
103
- PARSER_CDN = 'gh/bhsd-harry/wikiparser-node@0.8.8-b',
103
+ PARSER_CDN = 'npm/wikiparser-node@0.9.2-b',
104
104
  REPO_CDN = `npm/wikiplus-highlight@${majorVersion}`;
105
105
 
106
106
  const {config: {values: {
@@ -175,6 +175,11 @@
175
175
  only: true,
176
176
  /** @implements */ complex: () => !addons.has('wikiEditor'),
177
177
  },
178
+ {
179
+ option: 'styleSelectedText',
180
+ addon: 'lint',
181
+ download: 'markSelection',
182
+ },
178
183
  {option: 'styleActiveLine', addon: 'activeLine'},
179
184
  {option: 'showTrailingSpace', addon: 'trailingspace'},
180
185
  {
@@ -363,6 +368,7 @@
363
368
  * @param {boolean|undefined} local 是否先从本地下载
364
369
  */
365
370
  const getScript = async (urls, local) => {
371
+ urls = [...new Set(urls)]; // eslint-disable-line no-param-reassign
366
372
  const internal = urls.filter(url => !url.includes('/')),
367
373
  external = urls.filter(url => url.includes('/'));
368
374
  if (local === true) {
@@ -540,7 +546,9 @@
540
546
  setPlainMode(config);
541
547
  mw.config.set('extCodeMirrorConfig', config);
542
548
  }
543
- if (config && config.redirect && config.img) { // 情形1:config已更新,可能来自localStorage
549
+ const isIPE = config && Object.values(config.functionSynonyms[0]).includes(true);
550
+ // 情形1:config已更新,可能来自localStorage
551
+ if (config && config.redirect && config.img && !isIPE) {
544
552
  return config;
545
553
  }
546
554
 
@@ -552,12 +560,12 @@
552
560
  */
553
561
  const {query: {magicwords, extensiontags, functionhooks, variables}} = await new mw.Api().get({
554
562
  meta: 'siteinfo',
555
- siprop: config ? 'magicwords' : 'magicwords|extensiontags|functionhooks|variables',
563
+ siprop: config && !isIPE ? 'magicwords' : 'magicwords|extensiontags|functionhooks|variables',
556
564
  formatversion: 2,
557
565
  });
558
566
  const otherMagicwords = new Set(['msg', 'raw', 'msgnw', 'subst', 'safesubst']);
559
567
 
560
- if (config) { // 情形2或3
568
+ if (config && !isIPE) { // 情形2或3
561
569
  const {functionSynonyms: [insensitive]} = config;
562
570
  if (!insensitive.subst) {
563
571
  const aliases = getAliases(magicwords.filter(({name}) => otherMagicwords.has(name)));
@@ -809,25 +817,6 @@
809
817
  },
810
818
  );
811
819
 
812
- // 添加样式
813
- const wphlStyle = document.querySelector('#wphl-style') || mw.loader.addStyleTag(
814
- '#Wikiplus-CodeMirror{border:1px solid #c8ccd1;line-height:1.3;clear:both;'
815
- + '-moz-user-select:auto;-webkit-user-select:auto;user-select:auto}' // fix mobile select
816
- + '#Wikiplus-CodeMirror .CodeMirror-gutter-wrapper{'
817
- + '-moz-user-select:none;-webkit-user-select:none;user-select:none}' // fix iOS select-all
818
- + 'div.Wikiplus-InterBox{font-size:14px;z-index:100}'
819
- + '.skin-minerva .Wikiplus-InterBox{font-size:16px}'
820
- + '.cm-trailingspace{text-decoration:underline wavy red}'
821
- + 'div.CodeMirror span.CodeMirror-matchingbracket{box-shadow:0 0 0 2px #9aef98}'
822
- + 'div.CodeMirror span.CodeMirror-nonmatchingbracket{box-shadow:0 0 0 2px #eace64}'
823
- + '#Wikiplus-highlight-dialog .oo-ui-messageDialog-title{margin-bottom:0.28571429em}'
824
- + '#Wikiplus-highlight-dialog .oo-ui-flaggedElement-notice{font-weight:normal;margin:0}'
825
- + '.CodeMirror-contextmenu .cm-mw-template-name{cursor:pointer}'
826
- + '.skin-moeskin #ca-more-actions li>a{display:inline-block;padding:0.4rem 0.8rem;line-height:1.5}'
827
- + '.skin-moeskin .oo-ui-windowManager-modal>.oo-ui-dialog{z-index:101}',
828
- );
829
- wphlStyle.id = 'wphl-style';
830
-
831
820
  /**
832
821
  * 对编辑框调用jQuery.val方法时从CodeMirror获取文本
833
822
  * @type {{get: (elem: HTMLTextAreaElement) => string, set: (elem: HTMLTextAreaElement, value: string) => void}}
@@ -864,7 +853,6 @@
864
853
  /** @type {OOUI.CheckboxMultiselectInputWidget} */ widget,
865
854
  /** @type {OOUI.CheckboxMultioptionWidget} */ searchWidget,
866
855
  /** @type {OOUI.CheckboxMultioptionWidget} */ wikiEditorWidget,
867
- /** @type {OOUI.CheckboxMultioptionWidget} */ lintWidget,
868
856
  /** @type {OOUI.NumberInputWidget} */ indentWidget,
869
857
  /** @type {OOUI.FieldLayout} */ field,
870
858
  /** @type {OOUI.FieldLayout} */ indentField;
@@ -908,7 +896,6 @@
908
896
  const {checkboxMultiselectWidget} = widget;
909
897
  searchWidget = checkboxMultiselectWidget.findItemFromData('search');
910
898
  wikiEditorWidget = checkboxMultiselectWidget.findItemFromData('wikiEditor');
911
- lintWidget = checkboxMultiselectWidget.findItemFromData('lint');
912
899
  indentWidget = new OO.ui.NumberInputWidget({min: 0, value: indent});
913
900
  field = new OO.ui.FieldLayout(widget, {
914
901
  label: msg('addon-label'),
@@ -922,7 +909,6 @@
922
909
  const wikiplusLoaded = typeof window.Wikiplus === 'object' || typeof window.Pages === 'object';
923
910
  searchWidget.setDisabled(!wikiplusLoaded);
924
911
  wikiEditorWidget.setDisabled(!wikiplusLoaded || !mw.loader.getState('ext.wikiEditor'));
925
- lintWidget.setDisabled(!wikiplusLoaded);
926
912
  const data = await dialog.open({
927
913
  title: msg('addon-title'),
928
914
  message: field.$element.add(indentField.$element).add(
@@ -972,7 +958,21 @@
972
958
  let mode = doc.getOption('mode');
973
959
  mode = mode === 'text/mediawiki' ? 'mediawiki' : mode;
974
960
  const addonScript = getAddonScript(CodeMirror, true),
975
- json = doc.getOption('json');
961
+ json = doc.getOption('json'),
962
+ {prototype, optionHandlers, helpers: {lint}} = CodeMirror;
963
+ if (!prototype.annotateScrollbar && mode === 'mediawiki' && addons.has('lint')) {
964
+ addonScript.push(ADDON_LIST.annotateScrollbar);
965
+ }
966
+ if (!window.wikiparse && mode === 'mediawiki' && addons.has('lint')) {
967
+ addonScript.push(ADDON_LIST.parser);
968
+ }
969
+ if (!optionHandlers.lint && mode === 'mediawiki' && addons.has('lint')) {
970
+ mw.loader.load(`${CDN}/${CM_CDN}/addon/lint/lint.min.css`, 'text/css');
971
+ addonScript.push(ADDON_LIST.lint);
972
+ }
973
+ if (!(lint && lint.mediawiki) && mode === 'mediawiki' && addons.has('lint')) {
974
+ addonScript.push(ADDON_LIST.lintWikitext);
975
+ }
976
976
  await getScript(addonScript);
977
977
  for (const {
978
978
  option, addon = option, modes, complex = (/** @type {string} */ mod) => !modes || modes.has(mod),
@@ -1001,14 +1001,18 @@
1001
1001
  }
1002
1002
  });
1003
1003
 
1004
+ mw.loader.load(`${CDN}/${REPO_CDN}/styles.min.css`, 'text/css');
1005
+
1004
1006
  Object.assign(mw.libs.wphl, {
1005
1007
  version,
1006
1008
  options,
1007
1009
  addons,
1008
1010
  i18n,
1009
1011
  i18nLang,
1010
- wphlStyle,
1012
+ storage,
1011
1013
  $portlet,
1014
+ CDN,
1015
+ PARSER_CDN,
1012
1016
  USING_LOCAL,
1013
1017
  MODE_LIST,
1014
1018
  ADDON_LIST,
package/matchtags.js CHANGED
@@ -323,9 +323,4 @@
323
323
  }
324
324
  });
325
325
  };
326
-
327
- mw.loader.addStyleTag(
328
- '.cm-matchingtag{background-color:#c9ffc8}'
329
- + '.cm-nonmatchingtag{background-color:#fff0a8}',
330
- );
331
326
  })();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wikiplus-highlight",
3
- "version": "2.49.7",
3
+ "version": "2.57.0",
4
4
  "description": "A plugin for the MediaWiki front-end add-on \"Wikiplus\"",
5
5
  "keywords": [
6
6
  "mediawiki",
@@ -16,7 +16,8 @@
16
16
  "files": [
17
17
  "/dist/",
18
18
  "/i18n/",
19
- "/*.js"
19
+ "/*.js",
20
+ "/*.css"
20
21
  ],
21
22
  "browser": "/main.js",
22
23
  "repository": {
@@ -24,7 +25,7 @@
24
25
  "url": "git+https://github.com/bhsd-harry/Wikiplus-highlight.git"
25
26
  },
26
27
  "scripts": {
27
- "test": "eslint . && http-server -c-1 --cors"
28
+ "test": "eslint . && stylelint styles.css && http-server -c-1 --cors"
28
29
  },
29
30
  "devDependencies": {
30
31
  "eslint": "^8.8.0",
package/search.js CHANGED
@@ -255,16 +255,4 @@
255
255
  [`${ctrl}-Alt-Enter`]: 'replaceAll',
256
256
  });
257
257
  });
258
-
259
- mw.loader.addStyleTag(
260
- '.Wikiplus-Btn{line-height:1.4}'
261
- + '.Wikiplus-Quickedit-Search-Div{margin:7px 0 5px;}'
262
- + '.Wikiplus-Symbol-Btn{font-size:20px;margin:7px;vertical-align:middle;cursor:pointer;}'
263
- + '.Wikiplus-Quickedit-Search{'
264
- + 'width:50%;padding:revert;border:revert;background:revert;vertical-align:middle;font:inherit;box-sizing:border-box'
265
- + '}'
266
- + 'textarea.Wikiplus-Quickedit-Search{display:inline;resize:none}'
267
- + '.cm-search{background-color:#ffc0cb83;}'
268
- + 'span.CodeMirror-selectedtext{background:#d7d4f0}',
269
- );
270
258
  })();
package/styles.css ADDED
@@ -0,0 +1,145 @@
1
+ #Wikiplus-CodeMirror {
2
+ border: 1px solid #c8ccd1;
3
+ line-height: 1.3;
4
+ clear: both;
5
+ /* fix mobile select */
6
+ -webkit-user-select: auto;
7
+ user-select: auto;
8
+ }
9
+ #Wikiplus-CodeMirror .CodeMirror-gutter-wrapper {
10
+ /* fix iOS select-all */
11
+ -webkit-user-select: none;
12
+ user-select: none;
13
+ }
14
+ div.Wikiplus-InterBox {
15
+ font-size: 14px;
16
+ z-index: 100;
17
+ }
18
+ .skin-minerva .Wikiplus-InterBox {
19
+ font-size: 16px;
20
+ }
21
+ .cm-trailingspace {
22
+ text-decoration: underline wavy #f00;
23
+ }
24
+ div.CodeMirror span.CodeMirror-matchingbracket {
25
+ box-shadow: 0 0 0 2px #9aef98;
26
+ }
27
+ div.CodeMirror span.CodeMirror-nonmatchingbracket {
28
+ box-shadow: 0 0 0 2px #eace64;
29
+ }
30
+ #Wikiplus-highlight-dialog .oo-ui-messageDialog-title {
31
+ margin-bottom: .28571429em; /* stylelint-disable-line number-max-precision */
32
+ }
33
+ #Wikiplus-highlight-dialog .oo-ui-flaggedElement-notice {
34
+ font-weight: normal;
35
+ margin: 0;
36
+ }
37
+ .CodeMirror-contextmenu .cm-mw-template-name {
38
+ cursor: pointer;
39
+ }
40
+ .skin-moeskin #ca-more-actions li > a {
41
+ display: inline-block;
42
+ padding: .4rem .8rem;
43
+ line-height: 1.5;
44
+ }
45
+ .skin-moeskin .oo-ui-windowManager-modal > .oo-ui-dialog {
46
+ z-index: 101;
47
+ }
48
+
49
+ /* search.js */
50
+ .Wikiplus-Btn {
51
+ line-height: 1.4;
52
+ }
53
+ .Wikiplus-Quickedit-Search-Div {
54
+ margin: 7px 0 5px;
55
+ }
56
+ .Wikiplus-Symbol-Btn {
57
+ font-size: 20px;
58
+ margin: 7px;
59
+ vertical-align: middle;
60
+ cursor: pointer;
61
+ }
62
+ .Wikiplus-Quickedit-Search {
63
+ width: 50%;
64
+ padding: revert;
65
+ border: revert;
66
+ background: revert;
67
+ vertical-align: middle;
68
+ font: inherit;
69
+ box-sizing: border-box;
70
+ }
71
+ textarea.Wikiplus-Quickedit-Search {
72
+ display: inline;
73
+ resize: none;
74
+ }
75
+ .cm-search {
76
+ background-color: rgba(255, 192, 203, .51);
77
+ }
78
+
79
+ /* matchtags.js */
80
+ .cm-matchingtag {
81
+ background-color: #c9ffc8;
82
+ }
83
+ .cm-nonmatchingtag {
84
+ background-color: #fff0a8;
85
+ }
86
+
87
+ /* fold.js */
88
+ .CodeMirror-sizer {
89
+ overflow: visible;
90
+ }
91
+ .CodeMirror-tooltip {
92
+ position: absolute;
93
+ z-index: 101;
94
+ cursor: pointer;
95
+ background-color: #ffd;
96
+ border: 1px solid;
97
+ padding: 0 1px;
98
+ font-size: 10pt;
99
+ line-height: 1.2;
100
+ }
101
+ .CodeMirror-widget-unfold {
102
+ cursor: pointer;
103
+ border: 1px dotted;
104
+ }
105
+
106
+ /* lint.js */
107
+ .CodeMirror-line span.CodeMirror-lint-mark-warning {
108
+ background: #ffbf00;
109
+ color: #fff;
110
+ caret-color: #000;
111
+ }
112
+ .CodeMirror-line span.CodeMirror-lint-mark-error {
113
+ background: #d33;
114
+ color: #fff;
115
+ }
116
+ .CodeMirror-lint-scroll-warn {
117
+ background: #fc3;
118
+ border-top: 1px solid #fc3;
119
+ border-bottom: 1px solid #fc3;
120
+ box-sizing: border-box;
121
+ }
122
+ .CodeMirror-lint-scroll-error {
123
+ background: #d33;
124
+ border-top: 1px solid #d33;
125
+ border-bottom: 1px solid #d33;
126
+ box-sizing: border-box;
127
+ }
128
+ #wphl-lint-panel {
129
+ background: #f7f7f7;
130
+ border: 1px solid #c8ccd1;
131
+ }
132
+ .wphl-lint-subpanel {
133
+ margin-left: 1ch;
134
+ cursor: pointer;
135
+ }
136
+ .wphl-lint-count {
137
+ display: inline-block;
138
+ width: 5ch;
139
+ padding: 1px 0 1px 1ch;
140
+ }
141
+
142
+ /* markSelection.js */
143
+ .CodeMirror-line span.CodeMirror-selectedtext {
144
+ background: #d7d4f0;
145
+ }