wikilint 2.42.0 → 2.43.0

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.
package/README.md CHANGED
@@ -16,6 +16,25 @@ You can also directly lint Wikitext articles in the command line using this pack
16
16
  npx wikilint --config zhwiki --include --lang zh-hans *.wiki
17
17
  ```
18
18
 
19
+ ## Installation
20
+
21
+ ```sh
22
+ npm i wikilint
23
+ ```
24
+
25
+ ### Optional dependencies
26
+
27
+ You can install any of the following optional packages to enable advanced features:
28
+
29
+ | Package | Purpose |
30
+ | :-: | --- |
31
+ | `mathoid-texvcjs` | Linting `<math>` and `<chem>` extension tags |
32
+ | `vscode-css-languageservice` | Linting `style` attributes |
33
+
34
+ ```sh
35
+ npm i mathoid-texvcjs vscode-css-languageservice
36
+ ```
37
+
19
38
  ## CLI Options
20
39
 
21
40
  | Option | Argument | Description | Default |
@@ -40,7 +40,7 @@ const filterGadget = (id) => {
40
40
  const n = Number(id);
41
41
  return n < 2300 || n > 2303; // Gadget, Gadget talk, Gadget definition, Gadget definition talk
42
42
  };
43
- const pkg = "wikilint", version = "2.42.0";
43
+ const pkg = "wikilint", version = "2.43.0";
44
44
  /**
45
45
  * Get the parser configuration for a Wikimedia Foundation project.
46
46
  * @param site site nickname
@@ -7,19 +7,19 @@ exports.EmbeddedCSSDocument = exports.EmbeddedJSONDocument = exports.loadStyleli
7
7
  const path_1 = __importDefault(require("path"));
8
8
  const common_1 = require("@bhsd/common");
9
9
  const constants_1 = require("../util/constants");
10
- let texcvjs;
10
+ let texvcjs;
11
11
  const loadTexvcjs = () => {
12
12
  NPM: {
13
- if (texcvjs === undefined) {
13
+ if (texvcjs === undefined) {
14
14
  try {
15
- texcvjs = require('mathoid-texvcjs');
15
+ texvcjs = require('mathoid-texvcjs');
16
16
  }
17
17
  catch /* c8 ignore start */ {
18
- texcvjs = null;
18
+ texvcjs = null;
19
19
  }
20
20
  /* c8 ignore stop */
21
21
  }
22
- return texcvjs;
22
+ return texvcjs;
23
23
  }
24
24
  };
25
25
  exports.loadTexvcjs = loadTexvcjs;
@@ -388,7 +388,7 @@ let TranscludeToken = (() => {
388
388
  * @throws `Error` 不是可接受的魔术字
389
389
  */
390
390
  getPossibleValues() {
391
- const { type, name, childNodes } = this;
391
+ const { type, name, childNodes, length: l } = this;
392
392
  if (type === 'template') {
393
393
  throw new Error('TranscludeToken.getPossibleValues method is only for specific magic words!');
394
394
  }
@@ -397,12 +397,14 @@ let TranscludeToken = (() => {
397
397
  case 'if':
398
398
  case 'ifexist':
399
399
  case 'ifexpr':
400
- case 'iferror':
401
400
  start = 2;
402
401
  break;
403
402
  case 'ifeq':
404
403
  start = 3;
405
404
  break;
405
+ case 'iferror':
406
+ start = l > 3 ? 2 : 1;
407
+ break;
406
408
  case 'switch': {
407
409
  const parameters = childNodes.slice(2), last = parameters[parameters.length - 1];
408
410
  queue = [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wikilint",
3
- "version": "2.42.0",
3
+ "version": "2.43.0",
4
4
  "description": "A Node.js linter for MediaWiki markup",
5
5
  "keywords": [
6
6
  "mediawiki",
@@ -74,39 +74,62 @@
74
74
  ]
75
75
  },
76
76
  "dependencies": {
77
- "@bhsd/cm-util": "^2.0.1",
77
+ "@bhsd/cm-util": "^2.1.0",
78
78
  "@bhsd/common": "^2.2.1",
79
79
  "@bhsd/stylelint-util": "^1.0.3",
80
80
  "binary-search": "^1.3.6",
81
+ "entities": "^8.0.0",
81
82
  "vscode-languageserver-types": "^3.17.5"
82
83
  },
83
- "optionalDependencies": {
84
- "color-name": "~2.0.2",
85
- "entities": "^8.0.0",
86
- "mathoid-texvcjs": "^0.6.0",
87
- "stylelint": "^17.12.0",
88
- "vscode-css-languageservice": "^6.3.10",
89
- "vscode-html-languageservice": "^5.6.2",
90
- "vscode-json-languageservice": "^5.7.2"
84
+ "peerDependencies": {
85
+ "color-name": ">=2.0.0",
86
+ "mathoid-texvcjs": ">=0.4.0",
87
+ "stylelint": ">=16.0.0",
88
+ "vscode-css-languageservice": ">=3.0.0",
89
+ "vscode-html-languageservice": ">=3.1.0",
90
+ "vscode-json-languageservice": ">=3.2.0"
91
+ },
92
+ "peerDependenciesMeta": {
93
+ "color-name": {
94
+ "optional": true
95
+ },
96
+ "mathoid-texvcjs": {
97
+ "optional": true
98
+ },
99
+ "stylelint": {
100
+ "optional": true
101
+ },
102
+ "vscode-css-languageservice": {
103
+ "optional": true
104
+ },
105
+ "vscode-html-languageservice": {
106
+ "optional": true
107
+ },
108
+ "vscode-json-languageservice": {
109
+ "optional": true
110
+ }
91
111
  },
92
112
  "devDependencies": {
93
- "@bhsd/code-standard": "^2.5.1",
113
+ "@bhsd/code-standard": "^2.6.2",
94
114
  "@bhsd/nodejs": "^1.0.1",
95
- "@bhsd/test-util": "^1.3.1",
115
+ "@bhsd/test-util": "^1.5.0",
96
116
  "@types/color-name": "^2.0.0",
97
117
  "@types/color-rgba": "^2.1.3",
98
- "@types/mocha": "^10.0.10",
99
- "@types/node": "^25.9.0",
100
- "@typescript-eslint/parser": "^8.59.4",
101
118
  "c8": "^11.0.0",
119
+ "color-name": "~2.0.2",
102
120
  "color-rgba": "^3.0.0",
103
121
  "diff2html-cli": "^5.2.15",
104
122
  "esbuild": "^0.28.0",
105
123
  "eslint": "^10.4.1",
106
124
  "markdownlint-cli2": "^0.22.1",
125
+ "mathoid-texvcjs": "^0.6.0",
107
126
  "mocha": "^11.7.6",
127
+ "stylelint": "^17.12.0",
108
128
  "typescript": "^6.0.3",
109
129
  "v8r": "^6.1.0",
130
+ "vscode-css-languageservice": "^6.3.10",
131
+ "vscode-html-languageservice": "^5.6.2",
132
+ "vscode-json-languageservice": "^5.7.2",
110
133
  "vscode-languageserver-textdocument": "^1.0.12"
111
134
  },
112
135
  "engines": {