Skip to content

Commit 48784f8

Browse files
authored
build: update packages (qiuwenbaike#1772)
* build: update packages * build: update packages update SVGO settings * build: update packages bump Wikiplus-highlight to version 3.2.8
1 parent af19e02 commit 48784f8

File tree

7 files changed

+455
-131
lines changed

7 files changed

+455
-131
lines changed

dist/Wikiplus-highlight/Wikiplus-highlight.js

Lines changed: 32 additions & 14 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,16 +47,16 @@
4747
"MediaWiki Gadget"
4848
],
4949
"dependencies": {
50-
"@bhsd/codemirror-mediawiki": "^2.25.3",
51-
"@bhsd/common": "^0.10.2",
52-
"@types/toastify-js": "^1.12.3",
50+
"@bhsd/codemirror-mediawiki": "^2.30.1",
51+
"@bhsd/common": "^0.14.1",
52+
"@types/toastify-js": "^1.12.4",
5353
"chinese-days": "^1.5.1",
5454
"clipboard": "^2.0.11",
5555
"filter-altered-clicks": "^2.1.1",
5656
"jsx-dom": "^8.1.6",
5757
"monaco-editor": "^0.52.2",
5858
"select2": "^4.0.13",
59-
"svgo": "^3.3.2",
59+
"svgo": "^4.0.0",
6060
"tippy.js": "^6.3.7",
6161
"toastify-js": "^1.12.0"
6262
},

pnpm-lock.yaml

Lines changed: 385 additions & 91 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Wikiplus-highlight/modules/core.ts

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import {getObject} from '@bhsd/common';
33
const {wgPageName: page, wgNamespaceNumber: ns, wgPageContentModel: contentmodel} = mw.config.get();
44

55
const CONTENTMODELS: Record<string, string> = {
6-
'sanitized-css': 'css',
76
wikitext: 'mediawiki',
87
},
98
EXTS: Record<string, string> = {
@@ -50,10 +49,16 @@ const getPageMode = async (value: string): Promise<[string, (number | undefined)
5049
return 'mediawiki';
5150
}
5251
const mode = EXTS[t.getExtension()?.toLowerCase() ?? ''] ?? NAMESPACES[namespace];
53-
if (mode) {
54-
return mode === 'javascript' && (namespace === 8 || namespace === 2300) ? 'gadget' : mode;
52+
switch (mode) {
53+
case 'javascript':
54+
return namespace === 8 || namespace === 2300 ? 'gadget' : mode;
55+
case 'css':
56+
return namespace === 2 || namespace === 8 || namespace === 2300 ? mode : 'sanitized-css';
57+
case undefined:
58+
return namespace === 10 || namespace === 2 ? 'template' : 'mediawiki';
59+
default:
60+
return mode;
5561
}
56-
return namespace === 10 || namespace === 2 ? 'template' : 'mediawiki';
5762
})
5863
);
5964
if (modes.size === 1) {
@@ -106,13 +111,13 @@ const submit = /** 提交编辑 */ (): true => {
106111
/**
107112
* 渲染编辑器
108113
*
109-
* @param $target 目标编辑框
114+
* @param target 目标编辑框
110115
* @param setting 是否是Wikiplus设置(使用json语法)
111116
*/
112-
export const renderEditor = async ($target: JQuery<HTMLTextAreaElement>, setting: boolean): Promise<void> => {
117+
export const renderEditor = async (target: HTMLTextAreaElement, setting: boolean): Promise<void> => {
113118
const cm = await CodeMirror6.fromTextArea(
114-
$target[0]!,
115-
...(setting ? (['json'] satisfies [string]) : await getPageMode($target.val()!))
119+
target,
120+
...(setting ? (['json'] satisfies [string]) : await getPageMode(target.value))
116121
);
117122
(cm.view?.dom ?? cm.editor!.getDomNode()!).id = 'Wikiplus-CodeMirror';
118123

src/Wikiplus-highlight/modules/index.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ type WikiplusPages = Record<number, {title: string; sectionCache: Record<string,
1010

1111
declare global {
1212
const CodeMirror6: {
13+
instances?: WeakMap<HTMLTextAreaElement, CodeMirror>;
1314
fromTextArea(textarea: HTMLTextAreaElement, lang?: string, ns?: number, page?: string): Promise<CodeMirror>;
1415
};
1516

src/Wikiplus-highlight/modules/main.ts

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,27 +14,38 @@ declare namespace mediaWiki.libs {
1414
const {libs} = mediaWiki,
1515
{wphl} = libs;
1616
if (!wphl?.version) {
17-
const version = '3.2.5';
17+
const version = '3.2.8';
1818
libs.wphl = {version, ...wphl}; // 开始加载
1919

2020
// 路径
2121
const MW_CDN = `npm/@bhsd/codemirror-mediawiki@${libs.wphl.cmVersion ?? 'latest'}/dist/wiki.min.js`,
2222
REPO_CDN = 'npm/wikiplus-highlight';
2323

2424
if (typeof CodeMirror6 !== 'function') {
25-
await $.ajax(`${CDN}/${MW_CDN}`, {dataType: 'script'});
25+
await $.ajax(`${CDN}/${MW_CDN}`, {dataType: 'script', cache: true});
2626
}
2727

2828
// 监视 Wikiplus 编辑框
2929
const observer = new MutationObserver((records) => {
30-
const $editArea = $(
31-
records.flatMap(({addedNodes}) => {
32-
return [...addedNodes];
33-
})
34-
).find<HTMLTextAreaElement>('#Wikiplus-Quickedit, #Wikiplus-Setting-Input');
35-
if ($editArea.length > 0) {
36-
void renderEditor($editArea, $editArea.attr('id') === 'Wikiplus-Setting-Input');
30+
const selector = '#Wikiplus-Quickedit, #Wikiplus-Setting-Input',
31+
[added] = $(
32+
records.flatMap(({addedNodes}) => {
33+
return [...addedNodes];
34+
})
35+
).find<HTMLTextAreaElement>(selector);
36+
if (added) {
37+
void renderEditor(added, added.id === 'Wikiplus-Setting-Input');
3738
}
39+
const [removed] = $(
40+
records.flatMap(({removedNodes}) => {
41+
return [...removedNodes];
42+
})
43+
).find<HTMLTextAreaElement>(selector),
44+
cm = CodeMirror6.instances?.get(removed!);
45+
if (typeof cm?.destroy === 'function') {
46+
cm.destroy();
47+
}
48+
Object.assign(globalThis, {records});
3849
});
3950
observer.observe(document.body, {childList: true});
4051

svgo.config.cjs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,6 @@ module.exports = {
99
plugins: [
1010
{
1111
name: 'preset-default',
12-
params: {
13-
overrides: {
14-
removeViewBox: false,
15-
},
16-
},
1712
},
1813
'convertStyleToAttrs',
1914
'removeRasterImages',

0 commit comments

Comments
 (0)