wikiplus-highlight 3.0.5 → 3.0.6

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.
Files changed (3) hide show
  1. package/README.md +3 -4
  2. package/dist/main.js +26 -10
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -57,6 +57,7 @@ MediaWiki 模式下自动闭合生效的字符包括 `(`、`[`、`{` 和 `"`,
57
57
 
58
58
  - `Ctrl` + `Shift` + `[`/`Cmd` + `Alt` + `[`: 折叠选中的文字(如果可行)
59
59
  - `Ctrl` + `Shift` + `]`/`Cmd` + `Alt` + `]`: 展开选中的文字
60
+ - `Ctrl` + `Alt` + `[`: 折叠所有模板的参数
60
61
  - `Ctrl` + `Alt` + `]`: 展开所有折叠的代码
61
62
 
62
63
  ### HTML/URL编码快捷键
@@ -66,9 +67,9 @@ MediaWiki 模式下自动闭合生效的字符包括 `(`、`[`、`{` 和 `"`,
66
67
  - `Ctrl`/`Cmd` + `[`: 将选中的文字转换为HTML实体
67
68
  - `Ctrl`/`Cmd` + `]`: 将选中的文字解码或转换为URL编码
68
69
 
69
- ### 快速打开内部链接
70
+ ### 快速打开链接
70
71
 
71
- 按住 `Ctrl`/`Cmd` 并点击被高亮标记为内部链接或模板标题的文字时,会在新标签页打开对应页面。
72
+ 按住 `Ctrl`/`Cmd` 并点击被高亮标记为内部链接、模板标题或外部链接的文字时,会在新标签页打开对应页面。
72
73
 
73
74
  ### 维基语法检查
74
75
 
@@ -76,8 +77,6 @@ MediaWiki 模式下自动闭合生效的字符包括 `(`、`[`、`{` 和 `"`,
76
77
 
77
78
  ### 添加 WikiEditor 工具栏
78
79
 
79
- *加入的版本:3.0.2*
80
-
81
80
  工具栏遵从当前网站安装的 [WikiEditor](https://www.mediawiki.org/wiki/Extension:WikiEditor) 扩展的版本。
82
81
 
83
82
  ### 自动填充
package/dist/main.js CHANGED
@@ -8,7 +8,7 @@
8
8
  if ('wphl' in mw.libs) {
9
9
  return;
10
10
  }
11
- const version = '3.0.5';
11
+ const version = '3.0.6';
12
12
  mw.libs['wphl'] = { version }; // 开始加载
13
13
  // 路径
14
14
  const CDN = '//testingcf.jsdelivr.net', MW_CDN = 'npm/@bhsd/codemirror-mediawiki/dist/mw.min.js', REPO_CDN = 'npm/wikiplus-highlight';
@@ -51,28 +51,44 @@
51
51
  const modes = new Set(pages.map(({ title }) => {
52
52
  var _a;
53
53
  if (title.endsWith('/doc')) {
54
- return 'mediawiki';
54
+ return 'template';
55
55
  }
56
56
  const t = new mw.Title(title), namespace = t.getNamespaceId();
57
- return namespace % 2
58
- ? 'mediawiki'
59
- : EXTS[((_a = t.getExtension()) === null || _a === void 0 ? void 0 : _a.toLowerCase()) || ''] || NAMESPACES[namespace] || 'mediawiki';
57
+ if (namespace % 2) {
58
+ return 'mediawiki';
59
+ }
60
+ const mode = EXTS[((_a = t.getExtension()) === null || _a === void 0 ? void 0 : _a.toLowerCase()) || ''] || NAMESPACES[namespace];
61
+ if (mode) {
62
+ return mode === 'javascript' && (namespace === 8 || namespace === 2300) ? 'gadget' : mode;
63
+ }
64
+ return namespace === 10 || namespace === 2 ? 'template' : 'mediawiki';
60
65
  }));
61
66
  if (modes.size === 1) {
62
67
  const [mode] = modes;
63
- return mode;
68
+ if (mode === 'gadget') {
69
+ return ['javascript', 8];
70
+ }
71
+ return mode === 'template' ? ['mediawiki', 10] : [mode];
72
+ }
73
+ else if (modes.size === 2) {
74
+ if (modes.has('javascript') && modes.has('gadget')) {
75
+ return ['javascript'];
76
+ }
77
+ else if (modes.has('mediawiki') && modes.has('template')) {
78
+ return ['mediawiki'];
79
+ }
64
80
  }
65
81
  }
66
82
  if (ns !== 274 && contentmodel !== 'Scribunto' || page.endsWith('/doc')) {
67
- return CONTENTMODELS[contentmodel] || contentmodel;
83
+ return [CONTENTMODELS[contentmodel] || contentmodel, contentmodel === 'javascript' ? ns : undefined];
68
84
  }
69
85
  await mw.loader.using('oojs-ui-windows');
70
86
  if (await OO.ui.confirm(mw.msg('cm-mw-contentmodel'), {
71
87
  actions: [{ label: ns === 274 ? 'Widget' : 'Lua' }, { label: 'Wikitext', action: 'accept' }],
72
88
  })) {
73
- return 'mediawiki';
89
+ return ['mediawiki'];
74
90
  }
75
- return ns === 274 ? 'html' : 'lua';
91
+ return [ns === 274 ? 'html' : 'lua'];
76
92
  };
77
93
  /**
78
94
  * 渲染编辑器
@@ -81,7 +97,7 @@
81
97
  */
82
98
  const renderEditor = async ($target, setting) => {
83
99
  await init;
84
- const cm = await CodeMirror6.fromTextArea($target[0], setting ? 'json' : await getPageMode($target.val()));
100
+ const cm = await CodeMirror6.fromTextArea($target[0], ...setting ? ['json'] : await getPageMode($target.val()));
85
101
  cm.view.dom.id = 'Wikiplus-CodeMirror';
86
102
  document.querySelector('#Wikiplus-Quickedit-Jump > a').href = '#Wikiplus-CodeMirror';
87
103
  if (!setting) { // 普通Wikiplus编辑区
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wikiplus-highlight",
3
- "version": "3.0.5",
3
+ "version": "3.0.6",
4
4
  "description": "A plugin for the MediaWiki front-end add-on \"Wikiplus\"",
5
5
  "keywords": [
6
6
  "mediawiki",