markdownlint-cli2 0.17.2 → 0.18.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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.18.0
4
+
5
+ - Use user ID in Docker containers for security
6
+ - Update dependencies (including `markdownlint`)
7
+ - Remove support for end-of-life Node 18
8
+
3
9
  ## 0.17.2
4
10
 
5
11
  - Update dependencies (including `markdownlint`)
package/README.md CHANGED
@@ -149,7 +149,7 @@ A container image [`davidanson/markdownlint-cli2`][docker-hub-markdownlint-cli2]
149
149
  can also be used (e.g., as part of a CI pipeline):
150
150
 
151
151
  ```bash
152
- docker run -v $PWD:/workdir davidanson/markdownlint-cli2:v0.17.2 "**/*.md" "#node_modules"
152
+ docker run -v $PWD:/workdir davidanson/markdownlint-cli2:v0.18.0 "**/*.md" "#node_modules"
153
153
  ```
154
154
 
155
155
  Notes:
@@ -166,7 +166,7 @@ Notes:
166
166
  - A custom working directory can be specified with Docker's `-w` flag:
167
167
 
168
168
  ```bash
169
- docker run -w /myfolder -v $PWD:/myfolder davidanson/markdownlint-cli2:v0.17.2 "**/*.md" "#node_modules"
169
+ docker run -w /myfolder -v $PWD:/myfolder davidanson/markdownlint-cli2:v0.18.0 "**/*.md" "#node_modules"
170
170
  ```
171
171
 
172
172
  For convenience, the container image
@@ -302,12 +302,14 @@ of the rules within.
302
302
  version numbers on `stdout`
303
303
  - This top-level setting is valid **only** in the directory from which
304
304
  `markdownlint-cli2` is run
305
+ - Use with `noProgress` to suppress all output to `stdout` (i.e., `--quiet`)
305
306
  - `noInlineConfig`: `Boolean` value to disable the support of
306
307
  [HTML comments][html-comment] within Markdown content
307
308
  - For example: `<!-- markdownlint-disable some-rule -->`
308
309
  - `noProgress`: `Boolean` value to disable the display of progress on `stdout`
309
310
  - This top-level setting is valid **only** in the directory from which
310
311
  `markdownlint-cli2` is run
312
+ - Use with `noBanner` to suppress all output to `stdout` (i.e., `--quiet`)
311
313
  - `outputFormatters`: `Array` of `Array`s, each of which has a `String`
312
314
  naming an [output formatter][output-formatters] followed by parameters
313
315
  - Formatters can be used to customize the tool's output for different
@@ -413,7 +415,7 @@ reference to the `repos` list in that project's `.pre-commit-config.yaml` like:
413
415
 
414
416
  ```yaml
415
417
  - repo: https://github.com/DavidAnson/markdownlint-cli2
416
- rev: v0.17.2
418
+ rev: v0.18.0
417
419
  hooks:
418
420
  - id: markdownlint-cli2
419
421
  ```
@@ -19,4 +19,5 @@ const appendToArray = (destination, source) => {
19
19
  }
20
20
  };
21
21
 
22
- export { appendToArray as default, sliceSize };
22
+ export default appendToArray;
23
+ export { sliceSize };
@@ -19,7 +19,7 @@ import yamlParse from "./parsers/yaml-parse.mjs";
19
19
 
20
20
  // Variables
21
21
  const packageName = "markdownlint-cli2";
22
- const packageVersion = "0.17.2";
22
+ const packageVersion = "0.18.0";
23
23
  const libraryName = "markdownlint";
24
24
  const libraryVersion = getVersion();
25
25
  const bannerMessage = `${packageName} v${packageVersion} (${libraryName} v${libraryVersion})`;
@@ -79,7 +79,6 @@ const importModule = async (dirOrDirs, id, noImport) => {
79
79
  } catch (error) {
80
80
  errors.push(error);
81
81
  moduleName =
82
- // eslint-disable-next-line n/no-unsupported-features/node-builtins
83
82
  (!pathDefault.isAbsolute(expandId) && URL.canParse(expandId))
84
83
  ? new URL(expandId)
85
84
  : pathToFileURL(pathDefault.resolve(dirs[0], expandId));
@@ -755,6 +754,16 @@ const lintFiles = (fs, dirInfos, fileContents) => {
755
754
  filteredStrings[file] = fileContents[file];
756
755
  }
757
756
  }
757
+ // Create markdown-it factory
758
+ // eslint-disable-next-line unicorn/consistent-function-scoping
759
+ const markdownItFactory = async () => {
760
+ const module = await import("markdown-it");
761
+ const markdownIt = module.default({ "html": true });
762
+ for (const plugin of (markdownlintOptions.markdownItPlugins || [])) {
763
+ markdownIt.use(...plugin);
764
+ }
765
+ return markdownIt;
766
+ };
758
767
  // Create markdownlint options object
759
768
  /** @type {import("markdownlint").Options} */
760
769
  const options = {
@@ -767,7 +776,7 @@ const lintFiles = (fs, dirInfos, fileContents) => {
767
776
  ? new RegExp(markdownlintOptions.frontMatter, "u")
768
777
  : undefined,
769
778
  "handleRuleFailures": true,
770
- "markdownItPlugins": markdownlintOptions.markdownItPlugins,
779
+ markdownItFactory,
771
780
  "noInlineConfig": Boolean(markdownlintOptions.noInlineConfig),
772
781
  fs
773
782
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "markdownlint-cli2",
3
- "version": "0.17.2",
3
+ "version": "0.18.0",
4
4
  "description": "A fast, flexible, configuration-based command-line interface for linting Markdown/CommonMark files with the `markdownlint` library",
5
5
  "author": {
6
6
  "name": "David Anson",
@@ -35,9 +35,9 @@
35
35
  "lint-dockerfile": "docker run --rm -i hadolint/hadolint:latest-alpine < docker/Dockerfile",
36
36
  "lint-watch": "git ls-files | entr npm run lint",
37
37
  "playwright-install-bare": "npm run playwright-install-npm && playwright install",
38
- "playwright-install-npm": "npm install --no-save playwright@1.49.1",
38
+ "playwright-install-npm": "npm install --no-save playwright@1.52.0",
39
39
  "playwright-test": "playwright test --config ./webworker/playwright.config.mjs",
40
- "playwright-test-docker": "docker run --rm --volume $PWD:/home/workdir --workdir /home/workdir --ipc=host mcr.microsoft.com/playwright:v1.49.1 npm run playwright-test",
40
+ "playwright-test-docker": "docker run --rm --volume $PWD:/home/workdir --workdir /home/workdir --ipc=host mcr.microsoft.com/playwright:v1.52.0 npm run playwright-test",
41
41
  "schema": "cpy ./node_modules/markdownlint/schema/markdownlint-config-schema.json ./schema --flat",
42
42
  "test": "ava --timeout=1m test/append-to-array-test.mjs test/fs-mock-test.mjs test/fs-virtual-test.mjs test/markdownlint-cli2-test.mjs test/markdownlint-cli2-test-exec.mjs test/markdownlint-cli2-test-exports.mjs test/markdownlint-cli2-test-fs.mjs test/markdownlint-cli2-test-main.mjs test/merge-options-test.mjs",
43
43
  "test-cover": "c8 --100 npm test",
@@ -47,12 +47,12 @@
47
47
  "test-docker-image-rules": "VERSION=$(node -e \"process.stdout.write(require('./package.json').version)\") && docker run --rm -v $PWD:/workdir davidanson/markdownlint-cli2-rules:v$VERSION \"*.md\"",
48
48
  "test-invoke-as-cli": "markdownlint-cli2 CHANGELOG.md",
49
49
  "test-watch": "git ls-files | entr npm run test",
50
- "update-snapshots": "ava --timeout=1m --update-snapshots test/markdownlint-cli2-test-exec.mjs test/markdownlint-cli2-test-fs.mjs test/markdownlint-cli2-test-main.mjs",
50
+ "update-snapshots": "ava --timeout=1m --update-snapshots test/markdownlint-cli2-test-exec.mjs test/markdownlint-cli2-test-exports.mjs test/markdownlint-cli2-test-fs.mjs test/markdownlint-cli2-test-main.mjs",
51
51
  "webworker": "cd webworker && webpack --mode none",
52
52
  "webworker-install": "npm install --no-package-lock --no-save path-browserify setimmediate stream-browserify util webpack-cli && cpy ./node_modules/setimmediate/setImmediate.js ./webworker --flat --rename=setImmediate.cjs"
53
53
  },
54
54
  "engines": {
55
- "node": ">=18"
55
+ "node": ">=20"
56
56
  },
57
57
  "files": [
58
58
  "append-to-array.mjs",
@@ -73,40 +73,41 @@
73
73
  "schema/ValidatingConfiguration.md"
74
74
  ],
75
75
  "dependencies": {
76
- "globby": "14.0.2",
76
+ "globby": "14.1.0",
77
77
  "js-yaml": "4.1.0",
78
78
  "jsonc-parser": "3.3.1",
79
- "markdownlint": "0.37.4",
79
+ "markdownlint": "0.38.0",
80
80
  "markdownlint-cli2-formatter-default": "0.0.5",
81
+ "markdown-it": "14.1.0",
81
82
  "micromatch": "4.0.8"
82
83
  },
83
84
  "devDependencies": {
84
- "@eslint/js": "9.18.0",
85
- "@playwright/test": "1.49.1",
86
- "@stylistic/eslint-plugin": "2.13.0",
85
+ "@eslint/js": "9.26.0",
86
+ "@playwright/test": "1.52.0",
87
+ "@stylistic/eslint-plugin": "4.2.0",
87
88
  "ajv": "8.17.1",
88
- "ava": "6.2.0",
89
+ "ava": "6.3.0",
89
90
  "c8": "10.1.3",
90
91
  "chalk": "5.4.1",
91
92
  "cpy": "11.1.0",
92
93
  "cpy-cli": "5.0.0",
93
- "eslint": "9.18.0",
94
- "eslint-plugin-jsdoc": "50.6.1",
95
- "eslint-plugin-n": "17.15.1",
96
- "eslint-plugin-unicorn": "56.0.1",
94
+ "eslint": "9.26.0",
95
+ "eslint-plugin-jsdoc": "50.6.11",
96
+ "eslint-plugin-n": "17.18.0",
97
+ "eslint-plugin-unicorn": "59.0.1",
97
98
  "markdown-it-emoji": "3.0.0",
98
99
  "markdown-it-for-inline": "2.0.1",
99
- "markdownlint-cli2-formatter-codequality": "0.0.5",
100
+ "markdownlint-cli2-formatter-codequality": "0.0.6",
100
101
  "markdownlint-cli2-formatter-json": "0.0.8",
101
- "markdownlint-cli2-formatter-junit": "0.0.12",
102
- "markdownlint-cli2-formatter-pretty": "0.0.7",
102
+ "markdownlint-cli2-formatter-junit": "0.0.13",
103
+ "markdownlint-cli2-formatter-pretty": "0.0.8",
103
104
  "markdownlint-cli2-formatter-sarif": "0.0.3",
104
105
  "markdownlint-cli2-formatter-summarize": "0.0.7",
105
- "markdownlint-cli2-formatter-template": "0.0.2",
106
- "markdownlint-rule-extended-ascii": "0.1.0",
107
- "nano-spawn": "0.2.0",
106
+ "markdownlint-cli2-formatter-template": "0.0.3",
107
+ "markdownlint-rule-extended-ascii": "0.2.1",
108
+ "nano-spawn": "0.2.1",
108
109
  "npm-run-all": "4.1.5",
109
- "terminal-link": "3.0.0"
110
+ "terminal-link": "4.0.0"
110
111
  },
111
112
  "keywords": [
112
113
  "markdown",
@@ -1,21 +1,21 @@
1
1
  {
2
2
  "$schema": "http://json-schema.org/draft-07/schema#",
3
- "$id": "https://raw.githubusercontent.com/DavidAnson/markdownlint-cli2/v0.17.2/schema/markdownlint-cli2-config-schema.json",
3
+ "$id": "https://raw.githubusercontent.com/DavidAnson/markdownlint-cli2/v0.18.0/schema/markdownlint-cli2-config-schema.json",
4
4
  "title": "markdownlint-cli2 configuration schema",
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "$schema": {
8
8
  "description": "JSON Schema URI (expected by some editors)",
9
9
  "type": "string",
10
- "default": "https://raw.githubusercontent.com/DavidAnson/markdownlint-cli2/v0.17.2/schema/markdownlint-cli2-config-schema.json"
10
+ "default": "https://raw.githubusercontent.com/DavidAnson/markdownlint-cli2/v0.18.0/schema/markdownlint-cli2-config-schema.json"
11
11
  },
12
12
  "config": {
13
- "description": "markdownlint configuration schema : https://github.com/DavidAnson/markdownlint/blob/v0.37.4/schema/.markdownlint.jsonc",
14
- "$ref": "https://raw.githubusercontent.com/DavidAnson/markdownlint/v0.37.4/schema/markdownlint-config-schema.json",
13
+ "description": "markdownlint configuration schema : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/schema/.markdownlint.jsonc",
14
+ "$ref": "https://raw.githubusercontent.com/DavidAnson/markdownlint/v0.38.0/schema/markdownlint-config-schema.json",
15
15
  "default": {}
16
16
  },
17
17
  "customRules": {
18
- "description": "Module names or paths of custom rules to load and use when linting : https://github.com/DavidAnson/markdownlint-cli2/blob/v0.17.2/README.md#markdownlint-cli2jsonc",
18
+ "description": "Module names or paths of custom rules to load and use when linting : https://github.com/DavidAnson/markdownlint-cli2/blob/v0.18.0/README.md#markdownlint-cli2jsonc",
19
19
  "type": "array",
20
20
  "default": [],
21
21
  "items": {
@@ -25,18 +25,18 @@
25
25
  }
26
26
  },
27
27
  "fix": {
28
- "description": "Whether to enable fixing of linting errors reported by rules that emit fix information : https://github.com/DavidAnson/markdownlint-cli2/blob/v0.17.2/README.md#markdownlint-cli2jsonc",
28
+ "description": "Whether to enable fixing of linting errors reported by rules that emit fix information : https://github.com/DavidAnson/markdownlint-cli2/blob/v0.18.0/README.md#markdownlint-cli2jsonc",
29
29
  "type": "boolean",
30
30
  "default": false
31
31
  },
32
32
  "frontMatter": {
33
- "description": "Regular expression used to match and ignore any front matter at the beginning of a document : https://github.com/DavidAnson/markdownlint-cli2/blob/v0.17.2/README.md#markdownlint-cli2jsonc",
33
+ "description": "Regular expression used to match and ignore any front matter at the beginning of a document : https://github.com/DavidAnson/markdownlint-cli2/blob/v0.18.0/README.md#markdownlint-cli2jsonc",
34
34
  "type": "string",
35
35
  "minLength": 1,
36
36
  "default": ""
37
37
  },
38
38
  "gitignore": {
39
- "description": "Whether to ignore files referenced by .gitignore (or glob expression) (only valid at the root) : https://github.com/DavidAnson/markdownlint-cli2/blob/v0.17.2/README.md#markdownlint-cli2jsonc",
39
+ "description": "Whether to ignore files referenced by .gitignore (or glob expression) (only valid at the root) : https://github.com/DavidAnson/markdownlint-cli2/blob/v0.18.0/README.md#markdownlint-cli2jsonc",
40
40
  "type": [
41
41
  "boolean",
42
42
  "string"
@@ -44,7 +44,7 @@
44
44
  "default": false
45
45
  },
46
46
  "globs": {
47
- "description": "Glob expressions to include when linting (only valid at the root) : https://github.com/DavidAnson/markdownlint-cli2/blob/v0.17.2/README.md#markdownlint-cli2jsonc",
47
+ "description": "Glob expressions to include when linting (only valid at the root) : https://github.com/DavidAnson/markdownlint-cli2/blob/v0.18.0/README.md#markdownlint-cli2jsonc",
48
48
  "type": "array",
49
49
  "default": [],
50
50
  "items": {
@@ -54,7 +54,7 @@
54
54
  }
55
55
  },
56
56
  "ignores": {
57
- "description": "Glob expressions to ignore when linting : https://github.com/DavidAnson/markdownlint-cli2/blob/v0.17.2/README.md#markdownlint-cli2jsonc",
57
+ "description": "Glob expressions to ignore when linting : https://github.com/DavidAnson/markdownlint-cli2/blob/v0.18.0/README.md#markdownlint-cli2jsonc",
58
58
  "type": "array",
59
59
  "default": [],
60
60
  "items": {
@@ -64,7 +64,7 @@
64
64
  }
65
65
  },
66
66
  "markdownItPlugins": {
67
- "description": "markdown-it plugins to load and use when linting : https://github.com/DavidAnson/markdownlint-cli2/blob/v0.17.2/README.md#markdownlint-cli2jsonc",
67
+ "description": "markdown-it plugins to load and use when linting : https://github.com/DavidAnson/markdownlint-cli2/blob/v0.18.0/README.md#markdownlint-cli2jsonc",
68
68
  "type": "array",
69
69
  "default": [],
70
70
  "items": {
@@ -84,7 +84,7 @@
84
84
  }
85
85
  },
86
86
  "modulePaths": {
87
- "description": "Additional paths to resolve module locations from : https://github.com/DavidAnson/markdownlint-cli2/blob/v0.17.2/README.md#markdownlint-cli2jsonc",
87
+ "description": "Additional paths to resolve module locations from : https://github.com/DavidAnson/markdownlint-cli2/blob/v0.18.0/README.md#markdownlint-cli2jsonc",
88
88
  "type": "array",
89
89
  "default": [],
90
90
  "items": {
@@ -94,22 +94,22 @@
94
94
  }
95
95
  },
96
96
  "noBanner": {
97
- "description": "Whether to disable the display of the banner message and version numbers on stdout (only valid at the root) : https://github.com/DavidAnson/markdownlint-cli2/blob/v0.17.2/README.md#markdownlint-cli2jsonc",
97
+ "description": "Whether to disable the display of the banner message and version numbers on stdout (only valid at the root) : https://github.com/DavidAnson/markdownlint-cli2/blob/v0.18.0/README.md#markdownlint-cli2jsonc",
98
98
  "type": "boolean",
99
99
  "default": false
100
100
  },
101
101
  "noInlineConfig": {
102
- "description": "Whether to disable support of HTML comments within Markdown content : https://github.com/DavidAnson/markdownlint-cli2/blob/v0.17.2/README.md#markdownlint-cli2jsonc",
102
+ "description": "Whether to disable support of HTML comments within Markdown content : https://github.com/DavidAnson/markdownlint-cli2/blob/v0.18.0/README.md#markdownlint-cli2jsonc",
103
103
  "type": "boolean",
104
104
  "default": false
105
105
  },
106
106
  "noProgress": {
107
- "description": "Whether to disable the display of progress on stdout (only valid at the root) : https://github.com/DavidAnson/markdownlint-cli2/blob/v0.17.2/README.md#markdownlint-cli2jsonc",
107
+ "description": "Whether to disable the display of progress on stdout (only valid at the root) : https://github.com/DavidAnson/markdownlint-cli2/blob/v0.18.0/README.md#markdownlint-cli2jsonc",
108
108
  "type": "boolean",
109
109
  "default": false
110
110
  },
111
111
  "outputFormatters": {
112
- "description": "Output formatters to load and use to customize markdownlint-cli2 output (only valid at the root) : https://github.com/DavidAnson/markdownlint-cli2/blob/v0.17.2/README.md#markdownlint-cli2jsonc",
112
+ "description": "Output formatters to load and use to customize markdownlint-cli2 output (only valid at the root) : https://github.com/DavidAnson/markdownlint-cli2/blob/v0.18.0/README.md#markdownlint-cli2jsonc",
113
113
  "type": "array",
114
114
  "default": [],
115
115
  "items": {
@@ -129,7 +129,7 @@
129
129
  }
130
130
  },
131
131
  "showFound": {
132
- "description": "Whether to show the list of found files on stdout (only valid at the root) : https://github.com/DavidAnson/markdownlint-cli2/blob/v0.17.2/README.md#markdownlint-cli2jsonc",
132
+ "description": "Whether to show the list of found files on stdout (only valid at the root) : https://github.com/DavidAnson/markdownlint-cli2/blob/v0.18.0/README.md#markdownlint-cli2jsonc",
133
133
  "type": "boolean",
134
134
  "default": false
135
135
  }