User:OctoberSama/common.js:修订间差异
来自OTTOWiki
更多操作
![]() OctoberSama(留言 | 贡献) 小 |
![]() OctoberSama(留言 | 贡献) 小 |
||
第31行: | 第31行: | ||
//辅助工具ListEnhancer | //辅助工具ListEnhancer | ||
mw.loader.load("https://zh.moegirl.org.cn/index.php?title=User:BearBin/js/ListEnhancer.js&action=raw&ctype=text/javascript"); | mw.loader.load("https://zh.moegirl.org.cn/index.php?title=User:BearBin/js/ListEnhancer.js&action=raw&ctype=text/javascript"); | ||
/* eslint-env browser, jquery */ | |||
/* global mw, $ */ | |||
(async () => { | |||
const CM_URL = 'https://cdn.jsdelivr.net/npm/@bhsd/codemirror-mediawiki@latest/dist/wiki.min.js' | |||
const CM_CSS = 'https://cdn.jsdelivr.net/npm/@bhsd/codemirror-mediawiki@latest/mediawiki.min.css' | |||
const CM_NS = mw.config.get('wgNamespaceNumber') | |||
const CM_ACTION = mw.config.get('wgAction') | |||
const CM_MODEL = mw.config.get('wgPageContentModel') | |||
// 判断是否为编辑页面 | |||
if (!['edit', 'submit'].includes(CM_ACTION) || !['wikitext', 'javascript', 'css', 'json', 'Scribunto'].includes(CM_MODEL)) return | |||
await $.ready | |||
// 等待 wikiEditor 初始化 | |||
const $textarea = $('#wpTextbox1') | |||
if (!$textarea.length) return | |||
await mw.loader.using(['mediawiki.Title']) | |||
const { CodeMirror6 } = await import(CM_URL) | |||
mw.util.addCSS(`@import url("${CM_CSS}");`) | |||
function getPageMode(title) { | |||
const ext = title.getExtension()?.toLowerCase() | |||
const ns = title.getNamespaceId() | |||
const isSubject = ns % 2 === 0 | |||
if (ext === 'css' && isSubject) return [2, 8, 2300].includes(ns) ? 'css' : 'sanitized-css' | |||
if (ext === 'js' && isSubject) return 'javascript' | |||
if (ext === 'json' && isSubject) return 'json' | |||
if (ns === 828 && !title.getMainText().endsWith('/doc')) return 'lua' | |||
if (ns === 274 && !title.getMainText().endsWith('/doc')) return 'html' | |||
return 'mediawiki' | |||
} | |||
const title = new mw.Title(mw.config.get('wgPageName')) | |||
const mode = getPageMode(title) | |||
const cm = await CodeMirror6.fromTextArea($textarea[0], mode, CM_NS) | |||
if (mode === 'mediawiki') { | |||
const config = mw.config.get('extCodeMirrorConfig') | |||
if (config?.urlProtocols?.includes('\\:')) { | |||
config.urlProtocols = config.urlProtocols.replace(/\\:/g, ':') | |||
} | |||
cm.setLanguage('mediawiki', config) | |||
} | |||
console.log('[CodeMirror6] 启用成功') | |||
})() |
2025年7月5日 (六) 14:39的版本
//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");
/* eslint-env browser, jquery */
/* global mw, $ */
(async () => {
const CM_URL = 'https://cdn.jsdelivr.net/npm/@bhsd/codemirror-mediawiki@latest/dist/wiki.min.js'
const CM_CSS = 'https://cdn.jsdelivr.net/npm/@bhsd/codemirror-mediawiki@latest/mediawiki.min.css'
const CM_NS = mw.config.get('wgNamespaceNumber')
const CM_ACTION = mw.config.get('wgAction')
const CM_MODEL = mw.config.get('wgPageContentModel')
// 判断是否为编辑页面
if (!['edit', 'submit'].includes(CM_ACTION) || !['wikitext', 'javascript', 'css', 'json', 'Scribunto'].includes(CM_MODEL)) return
await $.ready
// 等待 wikiEditor 初始化
const $textarea = $('#wpTextbox1')
if (!$textarea.length) return
await mw.loader.using(['mediawiki.Title'])
const { CodeMirror6 } = await import(CM_URL)
mw.util.addCSS(`@import url("${CM_CSS}");`)
function getPageMode(title) {
const ext = title.getExtension()?.toLowerCase()
const ns = title.getNamespaceId()
const isSubject = ns % 2 === 0
if (ext === 'css' && isSubject) return [2, 8, 2300].includes(ns) ? 'css' : 'sanitized-css'
if (ext === 'js' && isSubject) return 'javascript'
if (ext === 'json' && isSubject) return 'json'
if (ns === 828 && !title.getMainText().endsWith('/doc')) return 'lua'
if (ns === 274 && !title.getMainText().endsWith('/doc')) return 'html'
return 'mediawiki'
}
const title = new mw.Title(mw.config.get('wgPageName'))
const mode = getPageMode(title)
const cm = await CodeMirror6.fromTextArea($textarea[0], mode, CM_NS)
if (mode === 'mediawiki') {
const config = mw.config.get('extCodeMirrorConfig')
if (config?.urlProtocols?.includes('\\:')) {
config.urlProtocols = config.urlProtocols.replace(/\\:/g, ':')
}
cm.setLanguage('mediawiki', config)
}
console.log('[CodeMirror6] 启用成功')
})()