MediaWiki:Gadget-popups.js
跳到导航
跳到搜索
注意:在发布之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。
- Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5或Ctrl-R(Mac为⌘-R)
- Google Chrome:按Ctrl-Shift-R(Mac为⌘-Shift-R)
- Internet Explorer或Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5
- Opera:按 Ctrl-F5。
mw.loader.load('//en.wikipedia.org/w/index.php?title=MediaWiki:Gadget-popups.js&action=raw&ctype=text/javascript'); function escapeRegExp ( str ){ return str.replace( /([\\{}()|.?*+\-^$\[\]])/g, '\\$1' ); } function literalizeRegex(str){ return escapeRegExp(str); } // return a regexp pattern matching all variants to write the given namespace function nsRe(namespaceId) { var imageNamespaceVariants = []; jQuery.each(mw.config.get('wgNamespaceIds'), function(_localizedNamespaceLc, _namespaceId) { if (_namespaceId!=namespaceId) return; _localizedNamespaceLc = upcaseFirst(_localizedNamespaceLc); imageNamespaceVariants.push(escapeRegExp(_localizedNamespaceLc).split(' ').join('[ _]')); imageNamespaceVariants.push(escapeRegExp(encodeURI(_localizedNamespaceLc))); }); return '(?:' + imageNamespaceVariants.join('|') + ')'; } function changeLinkTargetLink(x) { // newTarget, text, hint, summary, clickButton, minor, title (optional), alsoChangeLabel { if (x.newTarget) { log ('changeLinkTargetLink: newTarget=' + x.newTarget); } if (x.oldTarget !== decodeURIComponent( x.oldTarget ) ) { log ('This might be an input problem: ' + x.oldTarget ); } // FIXME: first character of page title as well as namespace should be case insensitive // eg [[:category:X1]] and [[:Category:X1]] are equivalent // this'll break if charAt(0) is nasty var cA = escapeRegExp(x.oldTarget); var chs = cA.charAt(0).toUpperCase(); chs='['+chs + chs.toLowerCase()+']'; var currentArticleRegexBit=chs+cA.substring(1); currentArticleRegexBit=currentArticleRegexBit .split(RegExp('(?:[_ ]+|%20)', 'g')).join('(?:[_ ]+|%20)') .split('\\(').join('(?:%28|\\()') .split('\\)').join('(?:%29|\\))'); // why does this need to match encoded strings ? links in the document ? // leading and trailing space should be ignored, and anchor bits optional: currentArticleRegexBit = '\\s*(' + currentArticleRegexBit + '(?:#[^\\[\\|]*)?)\\s*'; // e.g. Computer (archaic) -> \s*([Cc]omputer[_ ](?:%2528|\()archaic(?:%2528|\)))\s* // autoedit=s~\[\[([Cc]ad)\]\]~[[Computer-aided%20design|$1]]~g;s~\[\[([Cc]AD)[|]~[[Computer-aided%20design|~g var title=x.title || mw.config.get('wgPageName').split('_').join(' '); var lk=titledWikiLink({article: new Title(title), newWin:x.newWin, action: 'edit', text: x.text, title: x.hint, className: 'popup_change_title_link' }); var cmd=''; if (x.newTarget) { // escape '&' and other nasties var t = x.newTarget; var s = escapeRegExp(x.newTarget); if (x.alsoChangeLabel) { cmd += 's~\\[\\[' + currentArticleRegexBit + '\\]\\]~[[' + t + ']]~g;'; cmd += 's~\\[\\[' + currentArticleRegexBit + '[|]~[[' + t + '|~g;'; cmd += 's~\\[\\[' + s + '\\|' + s + '\\]\\]~[[' + t + ']]~g'; } else { cmd += 's~\\[\\[' + currentArticleRegexBit + '\\]\\]~[[' + t + '|$1]]~g;'; cmd += 's~\\[\\[' + currentArticleRegexBit + '[|]~[[' + t + '|~g;'; cmd += 's~\\[\\[' + s + '\\|' + s + '\\]\\]~[[' + t + ']]~g'; } } else { cmd += 's~\\[\\['+currentArticleRegexBit+'\\]\\]~$1~g;'; cmd += 's~\\[\\['+currentArticleRegexBit+'[|](.*?)\\]\\]~$2~g'; } // Build query cmd = 'autoedit=' + encodeURIComponent ( cmd ); cmd += '&autoclick='+ encodeURIComponent( x.clickButton ) + '&actoken=' + encodeURIComponent( autoClickToken() ); cmd += ( x.minor === null ) ? '' : '&autominor='+ encodeURIComponent( x.minor ); cmd += ( x.watch === null ) ? '' : '&autowatch='+ encodeURIComponent( x.watch ); cmd += '&autosummary='+encodeURIComponent(x.summary); cmd += '&autoimpl='+encodeURIComponent( popupString('autoedit_version') ); return appendParamsToLink(lk, cmd); }