wikiplus-highlight 3.2.2 → 3.2.3

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 +2 -2
  2. package/dist/main.js +23 -23
  3. package/package.json +5 -19
package/README.md CHANGED
@@ -73,7 +73,7 @@ MediaWiki 模式下自动闭合生效的字符包括 `(`、`[`、`{` 和 `"`,
73
73
 
74
74
  ### 代码折叠
75
75
 
76
- MediaWiki 模式下,光标移动至模板、解析器函数或扩展标签内部时会在光标上方出现一个 `-` 标记,点击即可折叠模板和解析器函数的参数或扩展标签内部的文本。折叠后使用一个带有虚线边框的 `⋯` 标记占位,点击该标记将重新展开折叠的代码部分。其他模式下,可折叠的代码行行号左侧会出现箭头 `⌄` 作为折叠按钮。同时添加以下快捷键:
76
+ MediaWiki 模式下,光标移动至模板、解析器函数或扩展标签内部时会在光标上方出现一个 `-` 标记,点击即可折叠模板和解析器函数的参数或扩展标签内部的文本。折叠后使用一个带有虚线边框的 `⋯` 标记占位,点击该标记将重新展开折叠的代码部分。除此以外,可折叠的代码行行号左侧会出现箭头 `⌄` 作为折叠按钮。同时添加以下快捷键:
77
77
 
78
78
  - `Ctrl` + `Shift` + `[`/`Cmd` + `Alt` + `[`: 折叠选中的文字(如果可行)
79
79
  - `Ctrl` + `Shift` + `]`/`Cmd` + `Alt` + `]`: 展开选中的文字
@@ -82,7 +82,7 @@ MediaWiki 模式下,光标移动至模板、解析器函数或扩展标签内
82
82
 
83
83
  ### 自动填充
84
84
 
85
- MediaWiki 模式下可自动填充魔术字(包括状态开关和解析器函数)、标签名、标签属性名、URL 协议和图片参数。此外按下 `Ctrl` + `Space` 还可触发页面名称和模板参数(需要 [TemplateData](https://www.mediawiki.org/wiki/Extension:TemplateData) 扩展)的自动填充。JavaScript 和 CSS 模式下可自动填充关键字和常数。
85
+ MediaWiki 模式下可自动填充魔术字(包括状态开关和解析器函数)、标签名、标签属性名、URL 协议和图片参数。此外按下 `Shift` + `Enter` 还可触发页面名称和模板参数(需要 [TemplateData](https://www.mediawiki.org/wiki/Extension:TemplateData) 扩展)的自动填充。JavaScript 和 CSS 模式下可自动填充关键字和常数。
86
86
 
87
87
  ### 匹配标签
88
88
 
package/dist/main.js CHANGED
@@ -9,7 +9,7 @@
9
9
  if (wphl === null || wphl === void 0 ? void 0 : wphl.version) {
10
10
  return;
11
11
  }
12
- const version = '3.2.2';
12
+ const version = '3.2.3';
13
13
  libs.wphl = { version, ...wphl }; // 开始加载
14
14
  // 路径
15
15
  const CDN = '//testingcf.jsdelivr.net', MW_CDN = `npm/@bhsd/codemirror-mediawiki@${libs.wphl.cmVersion || 'latest'}/dist/mw.min.js`, REPO_CDN = 'npm/wikiplus-highlight';
@@ -41,8 +41,15 @@
41
41
  * @param value 页面内容
42
42
  */
43
43
  const getPageMode = async (value) => {
44
+ let WikiplusPages;
44
45
  if (typeof _WikiplusPages === 'object') {
45
- const pages = Object.values(_WikiplusPages)
46
+ WikiplusPages = _WikiplusPages;
47
+ }
48
+ else if (typeof Pages === 'object') {
49
+ WikiplusPages = Pages;
50
+ }
51
+ if (WikiplusPages) {
52
+ const pages = Object.values(WikiplusPages)
46
53
  .filter(({ sectionCache }) => Object.values(sectionCache).includes(value));
47
54
  if (pages.some(({ title }) => !title.endsWith('/doc'))) {
48
55
  await mw.loader.using('mediawiki.Title');
@@ -63,11 +70,11 @@
63
70
  return namespace === 10 || namespace === 2 ? 'template' : 'mediawiki';
64
71
  }));
65
72
  if (modes.size === 1) {
66
- const [mode] = modes;
73
+ const [mode] = modes, title = pages.length === 1 ? pages[0].title : undefined;
67
74
  if (mode === 'gadget') {
68
75
  return ['javascript', 8];
69
76
  }
70
- return mode === 'template' ? ['mediawiki', 10] : [mode];
77
+ return mode === 'template' ? ['mediawiki', 10, title] : [mode, undefined, title];
71
78
  }
72
79
  else if (modes.size === 2) {
73
80
  if (modes.has('javascript') && modes.has('gadget')) {
@@ -96,8 +103,12 @@
96
103
  document.querySelector('#Wikiplus-Quickedit-MinorEdit').checked = true;
97
104
  return submit();
98
105
  }, escapeEdit = /** 按下Esc键退出编辑 */ () => {
99
- document.getElementById('Wikiplus-Quickedit-Back').dispatchEvent(new MouseEvent('click'));
100
- return true;
106
+ const settings = getObject('Wikiplus_Settings'), escToExitQuickEdit = settings && (settings['esc_to_exit_quickedit'] || settings['escToExitQuickEdit']);
107
+ if (escToExitQuickEdit === true || escToExitQuickEdit === 'true') {
108
+ document.getElementById('Wikiplus-Quickedit-Back').dispatchEvent(new MouseEvent('click'));
109
+ return true;
110
+ }
111
+ return false;
101
112
  };
102
113
  /**
103
114
  * 渲染编辑器
@@ -106,32 +117,21 @@
106
117
  */
107
118
  const renderEditor = async ($target, setting) => {
108
119
  var _a;
109
- const settings = getObject('Wikiplus_Settings'), escToExitQuickEdit = settings && (settings['esc_to_exit_quickedit'] || settings['escToExitQuickEdit']), esc = escToExitQuickEdit === true || escToExitQuickEdit === 'true';
110
120
  const cm = await (await CodeMirror6).fromTextArea($target[0], ...setting ? ['json'] : await getPageMode($target.val()));
111
121
  (((_a = cm.view) === null || _a === void 0 ? void 0 : _a.dom) || cm.editor.getDomNode()).id = 'Wikiplus-CodeMirror';
112
122
  if (!setting) { // 普通Wikiplus编辑区
113
123
  if (cm.editor) {
114
- cm.editor.onKeyDown(e => {
115
- if (e.keyCode === monaco.KeyCode.KeyS && (e.ctrlKey || e.metaKey)) {
116
- e.preventDefault();
117
- if (e.shiftKey) {
118
- submitMinor();
119
- }
120
- else {
121
- submit();
122
- }
123
- }
124
- else if (e.keyCode === monaco.KeyCode.Escape && esc) {
125
- e.preventDefault();
126
- escapeEdit();
127
- }
128
- });
124
+ /* eslint-disable no-bitwise */
125
+ cm.editor.addCommand(monaco.KeyMod.CtrlCmd | monaco.KeyCode.KeyS, submit);
126
+ cm.editor.addCommand(monaco.KeyMod.CtrlCmd | monaco.KeyMod.Shift | monaco.KeyCode.KeyS, submitMinor);
127
+ /* eslint-enable no-bitwise */
128
+ cm.editor.addCommand(monaco.KeyCode.Escape, escapeEdit);
129
129
  }
130
130
  else {
131
131
  cm.extraKeys([
132
132
  { key: 'Mod-S', run: submit },
133
133
  { key: 'Shift-Mod-S', run: submitMinor },
134
- ...esc ? [{ key: 'Esc', run: escapeEdit }] : [],
134
+ { key: 'Esc', run: escapeEdit },
135
135
  ]);
136
136
  }
137
137
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wikiplus-highlight",
3
- "version": "3.2.2",
3
+ "version": "3.2.3",
4
4
  "description": "A plugin for the MediaWiki front-end add-on \"Wikiplus\"",
5
5
  "keywords": [
6
6
  "mediawiki",
@@ -29,25 +29,11 @@
29
29
  "build": "tsc"
30
30
  },
31
31
  "devDependencies": {
32
- "@bhsd/codemirror-mediawiki": "^2.10.0",
33
- "@stylistic/eslint-plugin": "^1.5.4",
34
- "@stylistic/stylelint-plugin": "^2.0.0",
32
+ "@bhsd/codemirror-mediawiki": "^2.14.7",
33
+ "@bhsd/common": "^0.0.0",
35
34
  "@types/jquery": "^3.5.29",
36
35
  "@types/oojs-ui": "^0.49.0",
37
- "@typescript-eslint/eslint-plugin": "^7.1.0",
38
- "@typescript-eslint/parser": "^7.1.0",
39
- "eslint": "^8.56.0",
40
- "eslint-plugin-es-x": "^7.5.0",
41
- "eslint-plugin-eslint-comments": "^3.2.0",
42
- "eslint-plugin-jsdoc": "^48.0.2",
43
- "eslint-plugin-json-es": "^1.5.7",
44
- "eslint-plugin-promise": "^6.1.1",
45
- "eslint-plugin-regexp": "^2.2.0",
46
- "eslint-plugin-unicorn": "^52.0.0",
47
- "monaco-editor": "^0.48.0",
48
- "stylelint": "^16.1.0",
49
- "stylelint-config-recommended": "^14.0.0",
50
- "types-mediawiki": "^1.4.0",
51
- "typescript": "^5.3.3"
36
+ "monaco-editor": "^0.50.0",
37
+ "types-mediawiki": "^1.8.0"
52
38
  }
53
39
  }