markdownlint-cli2 0.14.0 → 0.15.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.15.0
4
+
5
+ - Add support for `stdin` input via `-` glob
6
+ - Add output formatter based on string templates
7
+ - Update dependencies (including `markdownlint`)
8
+
3
9
  ## 0.14.0
4
10
 
5
11
  - Handle `--` parameter per POSIX convention
package/README.md CHANGED
@@ -76,6 +76,7 @@ Glob expressions (from the globby library):
76
76
  - {} allows for a comma-separated list of "or" expressions
77
77
  - ! or # at the beginning of a pattern negate the match
78
78
  - : at the beginning identifies a literal file path
79
+ - - as a glob represents standard input (stdin)
79
80
 
80
81
  Dot-only glob:
81
82
  - The command "markdownlint-cli2 ." would lint every file in the current directory tree which is probably not intended
@@ -148,7 +149,7 @@ A container image [`davidanson/markdownlint-cli2`][docker-hub-markdownlint-cli2]
148
149
  can also be used (e.g., as part of a CI pipeline):
149
150
 
150
151
  ```bash
151
- docker run -v $PWD:/workdir davidanson/markdownlint-cli2:v0.14.0 "**/*.md" "#node_modules"
152
+ docker run -v $PWD:/workdir davidanson/markdownlint-cli2:v0.15.0 "**/*.md" "#node_modules"
152
153
  ```
153
154
 
154
155
  Notes:
@@ -165,7 +166,7 @@ Notes:
165
166
  - A custom working directory can be specified with Docker's `-w` flag:
166
167
 
167
168
  ```bash
168
- docker run -w /myfolder -v $PWD:/myfolder davidanson/markdownlint-cli2:v0.14.0 "**/*.md" "#node_modules"
169
+ docker run -w /myfolder -v $PWD:/myfolder davidanson/markdownlint-cli2:v0.15.0 "**/*.md" "#node_modules"
169
170
  ```
170
171
 
171
172
  For convenience, the container image
@@ -412,7 +413,7 @@ reference to the `repos` list in that project's `.pre-commit-config.yaml` like:
412
413
 
413
414
  ```yaml
414
415
  - repo: https://github.com/DavidAnson/markdownlint-cli2
415
- rev: v0.14.0
416
+ rev: v0.15.0
416
417
  hooks:
417
418
  - id: markdownlint-cli2
418
419
  ```
@@ -14,21 +14,25 @@ const pathDefault = require("node:path");
14
14
  const pathPosix = pathDefault.posix;
15
15
  const { pathToFileURL } = require("node:url");
16
16
  const markdownlintLibrary = require("markdownlint");
17
+ const {
18
+ applyFixes,
19
+ "getVersion": getLibraryVersion,
20
+ "promises": markdownlintPromises
21
+ } = markdownlintLibrary;
17
22
  const {
18
23
  markdownlint,
19
24
  "extendConfig": markdownlintExtendConfig,
20
25
  "readConfig": markdownlintReadConfig
21
- } = markdownlintLibrary.promises;
22
- const markdownlintRuleHelpers = require("markdownlint/helpers");
26
+ } = markdownlintPromises;
23
27
  const appendToArray = require("./append-to-array");
24
28
  const mergeOptions = require("./merge-options");
25
29
  const resolveAndRequire = require("./resolve-and-require");
26
30
 
27
31
  // Variables
28
32
  const packageName = "markdownlint-cli2";
29
- const packageVersion = "0.14.0";
33
+ const packageVersion = "0.15.0";
30
34
  const libraryName = "markdownlint";
31
- const libraryVersion = markdownlintLibrary.getVersion();
35
+ const libraryVersion = getLibraryVersion();
32
36
  const bannerMessage = `${packageName} v${packageVersion} (${libraryName} v${libraryVersion})`;
33
37
  const dotOnlySubstitute = "*.{md,markdown}";
34
38
  const utf8 = "utf8";
@@ -52,7 +56,6 @@ const negateGlob = (glob) => `!${glob}`;
52
56
  const throwForConfigurationFile = (file, error) => {
53
57
  throw new Error(
54
58
  `Unable to use configuration file '${file}'; ${error?.message}`,
55
- // @ts-ignore
56
59
  { "cause": error }
57
60
  );
58
61
  };
@@ -61,9 +64,10 @@ const throwForConfigurationFile = (file, error) => {
61
64
  const posixPath = (p) => p.split(pathDefault.sep).join(pathPosix.sep);
62
65
 
63
66
  // Expands a path with a tilde to an absolute path
64
- const expandTildePath = (id) => (
65
- markdownlintRuleHelpers.expandTildePath(id, require("node:os"))
66
- );
67
+ const expandTildePath = (id) => {
68
+ const markdownlintRuleHelpers = require("markdownlint/helpers");
69
+ return markdownlintRuleHelpers.expandTildePath(id, require("node:os"));
70
+ };
67
71
 
68
72
  // Resolves module paths relative to the specified directory
69
73
  const resolveModulePaths = (dir, modulePaths) => (
@@ -110,7 +114,6 @@ const importOrRequireResolve = async (dirOrDirs, id, noRequire) => {
110
114
  } catch (error) {
111
115
  errors.push(error);
112
116
  }
113
- // @ts-ignore
114
117
  throw new AggregateError(
115
118
  errors,
116
119
  `Unable to require or import module '${id}'.`
@@ -258,6 +261,7 @@ Glob expressions (from the globby library):
258
261
  - {} allows for a comma-separated list of "or" expressions
259
262
  - ! or # at the beginning of a pattern negate the match
260
263
  - : at the beginning identifies a literal file path
264
+ - - as a glob represents standard input (stdin)
261
265
 
262
266
  Dot-only glob:
263
267
  - The command "markdownlint-cli2 ." would lint every file in the current directory tree which is probably not intended
@@ -772,6 +776,7 @@ const lintFiles = (fs, dirInfos, fileContents) => {
772
776
  const filteredFiles = filesAfterIgnores.filter(
773
777
  (file) => fileContents[file] === undefined
774
778
  );
779
+ /** @type {Record<string, string>} */
775
780
  const filteredStrings = {};
776
781
  for (const file of filesAfterIgnores) {
777
782
  if (fileContents[file] !== undefined) {
@@ -779,6 +784,7 @@ const lintFiles = (fs, dirInfos, fileContents) => {
779
784
  }
780
785
  }
781
786
  // Create markdownlint options object
787
+ /** @type {import("markdownlint").Options} */
782
788
  const options = {
783
789
  "files": filteredFiles,
784
790
  "strings": filteredStrings,
@@ -795,14 +801,14 @@ const lintFiles = (fs, dirInfos, fileContents) => {
795
801
  fs
796
802
  };
797
803
  // Invoke markdownlint
798
- // @ts-ignore
799
804
  let task = markdownlint(options);
800
805
  // For any fixable errors, read file, apply fixes, and write it back
801
806
  if (markdownlintOptions.fix) {
802
807
  task = task.then((results) => {
803
808
  options.files = [];
804
809
  const subTasks = [];
805
- const errorFiles = Object.keys(results);
810
+ const errorFiles = Object.keys(results).
811
+ filter((result) => filteredFiles.includes(result));
806
812
  for (const fileName of errorFiles) {
807
813
  const errorInfos = results[fileName].
808
814
  filter((errorInfo) => errorInfo.fixInfo);
@@ -811,15 +817,13 @@ const lintFiles = (fs, dirInfos, fileContents) => {
811
817
  options.files.push(fileName);
812
818
  subTasks.push(fs.promises.readFile(fileName, utf8).
813
819
  then((original) => {
814
- const fixed = markdownlintRuleHelpers.
815
- applyFixes(original, errorInfos);
820
+ const fixed = applyFixes(original, errorInfos);
816
821
  return fs.promises.writeFile(fileName, fixed, utf8);
817
822
  })
818
823
  );
819
824
  }
820
825
  }
821
826
  return Promise.all(subTasks).
822
- // @ts-ignore
823
827
  then(() => markdownlint(options)).
824
828
  then((fixResults) => ({
825
829
  ...results,
@@ -905,11 +909,12 @@ const main = async (params) => {
905
909
  optionsDefault,
906
910
  optionsOverride,
907
911
  fileContents,
908
- nonFileContents,
909
- noRequire
912
+ noRequire,
913
+ allowStdin
910
914
  } = params;
911
915
  let {
912
- noGlobs
916
+ noGlobs,
917
+ nonFileContents
913
918
  } = params;
914
919
  const logMessage = params.logMessage || noop;
915
920
  const logError = params.logError || noop;
@@ -922,6 +927,7 @@ const main = async (params) => {
922
927
  let fixDefault = false;
923
928
  // eslint-disable-next-line unicorn/no-useless-undefined
924
929
  let configPath = undefined;
930
+ let useStdin = false;
925
931
  let sawDashDash = false;
926
932
  let shouldShowHelp = false;
927
933
  const argvFiltered = (argv || []).filter((arg) => {
@@ -929,6 +935,8 @@ const main = async (params) => {
929
935
  return true;
930
936
  } else if (configPath === null) {
931
937
  configPath = arg;
938
+ } else if ((arg === "-") && allowStdin) {
939
+ useStdin = true;
932
940
  // eslint-disable-next-line unicorn/prefer-switch
933
941
  } else if (arg === "--") {
934
942
  sawDashDash = true;
@@ -979,22 +987,30 @@ const main = async (params) => {
979
987
  }
980
988
  }
981
989
  if (
982
- ((globPatterns.length === 0) && !nonFileContents) ||
990
+ ((globPatterns.length === 0) && !useStdin && !nonFileContents) ||
983
991
  (configPath === null)
984
992
  ) {
985
993
  return showHelp(logMessage, false);
986
994
  }
995
+ // Add stdin as a non-file input if necessary
996
+ if (useStdin) {
997
+ const key = pathPosix.join(baseDir, "stdin");
998
+ const { text } = require("node:stream/consumers");
999
+ nonFileContents = {
1000
+ ...nonFileContents,
1001
+ [key]: await text(process.stdin)
1002
+ };
1003
+ }
987
1004
  // Include any file overrides or non-file content
988
- const { baseMarkdownlintOptions, dirToDirInfo } = baseOptions;
989
1005
  const resolvedFileContents = {};
990
1006
  for (const file in fileContents) {
991
1007
  const resolvedFile = posixPath(pathDefault.resolve(baseDirSystem, file));
992
- resolvedFileContents[resolvedFile] =
993
- fileContents[file];
1008
+ resolvedFileContents[resolvedFile] = fileContents[file];
994
1009
  }
995
1010
  for (const nonFile in nonFileContents) {
996
1011
  resolvedFileContents[nonFile] = nonFileContents[nonFile];
997
1012
  }
1013
+ const { baseMarkdownlintOptions, dirToDirInfo } = baseOptions;
998
1014
  appendToArray(
999
1015
  dirToDirInfo[baseDir].files,
1000
1016
  Object.keys(nonFileContents || {})
@@ -1066,37 +1082,26 @@ const main = async (params) => {
1066
1082
  return errorsPresent ? 1 : 0;
1067
1083
  };
1068
1084
 
1069
- // Run function
1070
- const run = (overrides, args) => {
1071
- (async () => {
1072
- const argsAndArgv = args || [];
1073
- appendToArray(argsAndArgv, process.argv.slice(2));
1074
- try {
1075
- const defaultParams = {
1076
- "argv": argsAndArgv,
1077
- "logMessage": console.log,
1078
- "logError": console.error
1079
- };
1080
- const params = {
1081
- ...defaultParams,
1082
- ...overrides
1083
- };
1084
- process.exitCode = await main(params);
1085
- } catch (error) {
1086
- console.error(error);
1087
- process.exitCode = 2;
1088
- }
1089
- })();
1090
- };
1091
-
1092
1085
  // Export functions
1093
1086
  module.exports = {
1094
- main,
1095
- run
1087
+ main
1096
1088
  };
1097
1089
 
1098
1090
  // Run if invoked as a CLI
1099
- // @ts-ignore
1100
1091
  if (require.main === module) {
1101
- run();
1092
+ const params = {
1093
+ "argv": process.argv.slice(2),
1094
+ "logMessage": console.log,
1095
+ "logError": console.error,
1096
+ "allowStdin": true
1097
+ };
1098
+ main(params).
1099
+ then((exitCode) => {
1100
+ process.exitCode = exitCode;
1101
+ }).
1102
+ // eslint-disable-next-line unicorn/prefer-top-level-await
1103
+ catch((error) => {
1104
+ console.error(error);
1105
+ process.exitCode = 2;
1106
+ });
1102
1107
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "markdownlint-cli2",
3
- "version": "0.14.0",
3
+ "version": "0.15.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",
@@ -34,6 +34,10 @@
34
34
  "lint": "eslint --max-warnings 0",
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
+ "playwright-install-bare": "npm run playwright-install-npm && playwright install",
38
+ "playwright-install-npm": "npm install --no-save playwright@1.48.2",
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.48.2 npm run playwright-test",
37
41
  "schema": "cpy ./node_modules/markdownlint/schema/markdownlint-config-schema.json ./schema --flat",
38
42
  "test": "ava --timeout=1m test/append-to-array-test.js test/fs-mock-test.js test/fs-virtual-test.js test/markdownlint-cli2-test.js test/markdownlint-cli2-test-exec.js test/markdownlint-cli2-test-exports.js test/markdownlint-cli2-test-fs.js test/markdownlint-cli2-test-main.js test/merge-options-test.js test/resolve-and-require-test.js",
39
43
  "test-cover": "c8 --100 npm test",
@@ -71,25 +75,26 @@
71
75
  "globby": "14.0.2",
72
76
  "js-yaml": "4.1.0",
73
77
  "jsonc-parser": "3.3.1",
74
- "markdownlint": "0.35.0",
78
+ "markdownlint": "0.36.1",
75
79
  "markdownlint-cli2-formatter-default": "0.0.5",
76
80
  "micromatch": "4.0.8"
77
81
  },
78
82
  "devDependencies": {
79
- "@eslint/js": "9.9.1",
83
+ "@eslint/js": "9.14.0",
80
84
  "@iktakahiro/markdown-it-katex": "4.0.1",
81
- "@stylistic/eslint-plugin": "2.7.2",
85
+ "@playwright/test": "1.48.2",
86
+ "@stylistic/eslint-plugin": "2.10.1",
82
87
  "ajv": "8.17.1",
83
- "ava": "6.1.3",
88
+ "ava": "6.2.0",
84
89
  "c8": "10.1.2",
85
90
  "cpy": "11.1.0",
86
91
  "cpy-cli": "5.0.0",
87
- "del": "7.1.0",
88
- "eslint": "9.9.1",
89
- "eslint-plugin-jsdoc": "50.2.2",
90
- "eslint-plugin-n": "17.10.2",
91
- "eslint-plugin-unicorn": "55.0.0",
92
- "execa": "9.3.1",
92
+ "del": "8.0.0",
93
+ "eslint": "9.14.0",
94
+ "eslint-plugin-jsdoc": "50.4.3",
95
+ "eslint-plugin-n": "17.13.1",
96
+ "eslint-plugin-unicorn": "56.0.0",
97
+ "nano-spawn": "0.2.0",
93
98
  "markdown-it-emoji": "3.0.0",
94
99
  "markdown-it-for-inline": "2.0.1",
95
100
  "markdownlint-cli2-formatter-codequality": "0.0.5",
@@ -98,6 +103,7 @@
98
103
  "markdownlint-cli2-formatter-pretty": "0.0.7",
99
104
  "markdownlint-cli2-formatter-sarif": "0.0.2",
100
105
  "markdownlint-cli2-formatter-summarize": "0.0.7",
106
+ "markdownlint-cli2-formatter-template": "0.0.2",
101
107
  "markdownlint-rule-extended-ascii": "0.1.0",
102
108
  "npm-run-all": "4.1.5"
103
109
  },
@@ -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.14.0/schema/markdownlint-cli2-config-schema.json",
3
+ "$id": "https://raw.githubusercontent.com/DavidAnson/markdownlint-cli2/v0.15.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.14.0/schema/markdownlint-cli2-config-schema.json"
10
+ "default": "https://raw.githubusercontent.com/DavidAnson/markdownlint-cli2/v0.15.0/schema/markdownlint-cli2-config-schema.json"
11
11
  },
12
12
  "config": {
13
- "description": "markdownlint configuration schema : https://github.com/DavidAnson/markdownlint/blob/v0.35.0/schema/.markdownlint.jsonc",
14
- "$ref": "https://raw.githubusercontent.com/DavidAnson/markdownlint/v0.35.0/schema/markdownlint-config-schema.json",
13
+ "description": "markdownlint configuration schema : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/schema/.markdownlint.jsonc",
14
+ "$ref": "https://raw.githubusercontent.com/DavidAnson/markdownlint/v0.36.1/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.14.0/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.15.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.14.0/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.15.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.14.0/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.15.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.14.0/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.15.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.14.0/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.15.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.14.0/README.md#markdownlint-cli2jsonc",
57
+ "description": "Glob expressions to ignore when linting : https://github.com/DavidAnson/markdownlint-cli2/blob/v0.15.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.14.0/README.md#markdownlint-cli2jsonc",
67
+ "description": "markdown-it plugins to load and use when linting : https://github.com/DavidAnson/markdownlint-cli2/blob/v0.15.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.14.0/README.md#markdownlint-cli2jsonc",
87
+ "description": "Additional paths to resolve module locations from : https://github.com/DavidAnson/markdownlint-cli2/blob/v0.15.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.14.0/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.15.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.14.0/README.md#markdownlint-cli2jsonc",
102
+ "description": "Whether to disable support of HTML comments within Markdown content : https://github.com/DavidAnson/markdownlint-cli2/blob/v0.15.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.14.0/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.15.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.14.0/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.15.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.14.0/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.15.0/README.md#markdownlint-cli2jsonc",
133
133
  "type": "boolean",
134
134
  "default": false
135
135
  }