User:OctoberSama/common.js
来自OTTOWiki
更多操作
注意:在发布之后,您可能需要清除浏览器缓存才能看到所作出的更改的影响。
- Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5或Ctrl-R(Mac为⌘-R)
- Google Chrome:按Ctrl-Shift-R(Mac为⌘-Shift-R)
- Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5。
//IPE配置
/** InPageEdit Preferences */
;(window.InPageEdit = window.InPageEdit || {}).myPreference = {
"doNotCollectMyInfo": false,
"editMinor": true,
"editSummary": "$section ",
"lockToolBox": false,
"redLinkQuickEdit": false,
"outSideClose": false,
"watchList": "watch",
"noConfirmEdit": false,
"plugins": [
"toolbox.js",
"wiki-editor.js",
"code-mirror/cm6.js"
]
}
//IPE
mw.loader.load('https://cdn.jsdelivr.net/npm/mediawiki-inpageedit');
//批量编辑
mw.loader.load("/index.php?title=User:OctoberSama/MassEdit.js&action=raw&ctype=text/javascript");
//缓存清除
mw.loader.load("https://cdn.jsdelivr.net/gh/BearBin1215/MoegirlPedia@master/dist/gadgets/OneKeyPurge.min.js");
//高级搜索
mw.loader.load("https://cdn.jsdelivr.net/gh/BearBin1215/MoegirlPedia@master/dist/gadgets/AdvancedSearch.min.js");
//辅助工具ListEnhancer
mw.loader.load("https://zh.moegirl.org.cn/index.php?title=User:BearBin/js/ListEnhancer.js&action=raw&ctype=text/javascript");
$(async function () {
// 确保是编辑页面,并且存在编辑器
const $textarea = $('#wpTextbox1')
if (!$textarea.length) return
const page = mw.config.get('wgPageName')
const namespace = mw.config.get('wgNamespaceNumber')
const CM_CDN = 'https://testingcf.jsdelivr.net/npm/@bhsd/codemirror-mediawiki'
await Promise.all([
mw.loader.using('mediawiki.Title'),
window.CodeMirror6 || import(`${CM_CDN}/dist/mw.min.js`),
])
const title = new mw.Title(page)
title.namespace = namespace
const mode = (function getPageMode(page) {
const { namespace, title } = page
const ext = page.getExtension()?.toLowerCase()
const isSubject = namespace % 2 === 0
if (ext === 'css' && isSubject) {
return [2, 8, 2300].includes(namespace) ? 'css' : 'sanitized-css'
} else if (ext === 'js' && isSubject) {
return 'javascript'
} else if (ext === 'json' && isSubject) {
return 'json'
} else if (namespace === 828 && !title.endsWith('/doc')) {
return 'lua'
} else if (namespace === 274 && !title.endsWith('/doc')) {
return 'html'
}
return 'mediawiki'
})(title)
const cm = await CodeMirror6.fromTextArea($textarea[0], mode, namespace)
if (mode === 'mediawiki') {
const config = mw.config.get('extCodeMirrorConfig')
if (config?.urlProtocols.includes('\\:')) {
config.urlProtocols = config.urlProtocols.replace(/\\:/g, ':')
cm.setLanguage('mediawiki', config)
}
}
// 可选:加入自定义钩子供其他模块使用
mw.hook('CodeMirror6.global').fire({ cm })
})