@zthun/janitor-web 18.1.0 → 19.1.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.
Files changed (88) hide show
  1. package/dist/assets/hierarchy.js +1 -1
  2. package/dist/assets/highlight.css +18 -4
  3. package/dist/assets/navigation.js +1 -1
  4. package/dist/assets/search.js +1 -1
  5. package/dist/classes/_zthun_janitor-build-config.typedoc.ZTypedocConfigBuilder.html +64 -0
  6. package/dist/classes/_zthun_janitor-build-config.vite.ZViteConfigBuilder.html +68 -0
  7. package/dist/classes/_zthun_janitor-build-config.vite.ZViteLibraryBuilder.html +15 -0
  8. package/dist/classes/_zthun_janitor-build-config.vite.ZViteServerBuilder.html +10 -0
  9. package/dist/classes/_zthun_janitor-build-config.vite.ZViteTestBuilder.html +35 -0
  10. package/dist/classes/{_zthun_lint-janitor.ZConfigExtender.html → _zthun_janitor-lint.ZConfigExtender.html} +5 -5
  11. package/dist/classes/{_zthun_lint-janitor.ZConfigReaderCosmic.html → _zthun_janitor-lint.ZConfigReaderCosmic.html} +12 -12
  12. package/dist/classes/{_zthun_lint-janitor.ZConfigReaderNull.html → _zthun_janitor-lint.ZConfigReaderNull.html} +3 -3
  13. package/dist/classes/{_zthun_lint-janitor.ZConfigReaderPrettier.html → _zthun_janitor-lint.ZConfigReaderPrettier.html} +5 -5
  14. package/dist/classes/{_zthun_lint-janitor.ZContentLinterHtml.html → _zthun_janitor-lint.ZContentLinterHtml.html} +3 -3
  15. package/dist/classes/{_zthun_lint-janitor.ZContentLinterJson.html → _zthun_janitor-lint.ZContentLinterJson.html} +3 -3
  16. package/dist/classes/{_zthun_lint-janitor.ZContentLinterPretty.html → _zthun_janitor-lint.ZContentLinterPretty.html} +3 -3
  17. package/dist/classes/{_zthun_lint-janitor.ZContentLinterYaml.html → _zthun_janitor-lint.ZContentLinterYaml.html} +3 -3
  18. package/dist/classes/_zthun_janitor-lint.ZJanitorLint.html +39 -0
  19. package/dist/classes/{_zthun_lint-janitor.ZLinterEs.html → _zthun_janitor-lint.ZLinterEs.html} +6 -6
  20. package/dist/classes/{_zthun_lint-janitor.ZLinterFile.html → _zthun_janitor-lint.ZLinterFile.html} +7 -7
  21. package/dist/classes/{_zthun_lint-janitor.ZLinterMarkdown.html → _zthun_janitor-lint.ZLinterMarkdown.html} +6 -6
  22. package/dist/classes/{_zthun_lint-janitor.ZFileReportLint.html → _zthun_janitor-lint.ZLinterReport.html} +6 -6
  23. package/dist/classes/{_zthun_lint-janitor.ZLinterSilent.html → _zthun_janitor-lint.ZLinterSilent.html} +4 -4
  24. package/dist/classes/{_zthun_lint-janitor.ZLinterSpelling.html → _zthun_janitor-lint.ZLinterSpelling.html} +4 -4
  25. package/dist/classes/{_zthun_lint-janitor.ZLinterStyle.html → _zthun_janitor-lint.ZLinterStyle.html} +5 -5
  26. package/dist/classes/_zthun_janitor-options.ZJanitorOptionsBuilder.html +10 -0
  27. package/dist/classes/_zthun_janitor-options.ZJanitorOptionsLintBuilder.html +96 -0
  28. package/dist/hierarchy.html +1 -1
  29. package/dist/index.html +2 -2
  30. package/dist/interfaces/_zthun_janitor-htmlhint-config.RuleSet.html +36 -0
  31. package/dist/interfaces/_zthun_janitor-lint.IZConfigDiscovery.html +6 -0
  32. package/dist/interfaces/{_zthun_lint-janitor.IZConfigExtender.html → _zthun_janitor-lint.IZConfigExtender.html} +3 -3
  33. package/dist/interfaces/_zthun_janitor-lint.IZConfigReader.html +6 -0
  34. package/dist/interfaces/_zthun_janitor-lint.IZContentLinter.html +9 -0
  35. package/dist/interfaces/_zthun_janitor-lint.IZJanitorLintArgs.html +4 -0
  36. package/dist/interfaces/{_zthun_lint-janitor.IZLinter.html → _zthun_janitor-lint.IZLinter.html} +3 -3
  37. package/dist/interfaces/_zthun_janitor-options.IZJanitorOptions.html +4 -0
  38. package/dist/interfaces/_zthun_janitor-options.IZJanitorOptionsLint.html +42 -0
  39. package/dist/media/CONTRIBUTING.md +3 -3
  40. package/dist/modules/_zthun_janitor-build-config.html +6 -0
  41. package/dist/modules/_zthun_janitor-build-config.typedoc.html +1 -0
  42. package/dist/modules/_zthun_janitor-build-config.vite.html +1 -0
  43. package/dist/modules/_zthun_janitor-eslint-config.html +13 -0
  44. package/dist/modules/_zthun_janitor-htmlhint-config.html +14 -0
  45. package/dist/modules/_zthun_janitor-lint-config.html +6 -0
  46. package/dist/modules/{_zthun_lint-janitor.html → _zthun_janitor-lint.html} +53 -95
  47. package/dist/modules/_zthun_janitor-markdownlint-config.html +11 -0
  48. package/dist/modules/_zthun_janitor-options.html +2 -0
  49. package/dist/modules/_zthun_janitor-prettier-config.html +10 -0
  50. package/dist/modules/_zthun_janitor-stylelint-config-less.html +11 -0
  51. package/dist/modules/_zthun_janitor-stylelint-config-sass.html +11 -0
  52. package/dist/modules/_zthun_janitor-stylelint-config.html +10 -0
  53. package/dist/modules.html +1 -1
  54. package/dist/variables/_zthun_janitor-eslint-config.environments.html +1 -0
  55. package/dist/variables/_zthun_janitor-eslint-config.imports.html +1 -0
  56. package/dist/variables/_zthun_janitor-eslint-config.javascript.html +1 -0
  57. package/dist/variables/_zthun_janitor-eslint-config.prettier.html +1 -0
  58. package/dist/variables/_zthun_janitor-eslint-config.react.html +1 -0
  59. package/dist/variables/_zthun_janitor-eslint-config.recommended.html +1 -0
  60. package/dist/variables/_zthun_janitor-eslint-config.typescript.html +1 -0
  61. package/dist/variables/_zthun_janitor-htmlhint-config.default.html +1 -0
  62. package/dist/variables/_zthun_janitor-lint-config.environments.html +1 -0
  63. package/dist/variables/_zthun_janitor-lint-config.imports.html +1 -0
  64. package/dist/variables/_zthun_janitor-lint-config.javascript.html +1 -0
  65. package/dist/variables/_zthun_janitor-lint-config.prettier.html +1 -0
  66. package/dist/variables/_zthun_janitor-lint-config.react.html +1 -0
  67. package/dist/variables/_zthun_janitor-lint-config.recommended.html +1 -0
  68. package/dist/variables/_zthun_janitor-lint-config.typescript.html +1 -0
  69. package/dist/variables/_zthun_janitor-markdownlint-config.default.html +1 -0
  70. package/dist/variables/_zthun_janitor-prettier-config.default.html +1 -0
  71. package/dist/variables/_zthun_janitor-stylelint-config-less.default.html +1 -0
  72. package/dist/variables/_zthun_janitor-stylelint-config-sass.default.html +1 -0
  73. package/dist/variables/_zthun_janitor-stylelint-config.default.html +1 -0
  74. package/package.json +6 -5
  75. package/dist/classes/_zthun_lint-janitor.ZLintJanitor.html +0 -39
  76. package/dist/interfaces/_zthun_lint-janitor.IZConfigDiscovery.html +0 -6
  77. package/dist/interfaces/_zthun_lint-janitor.IZConfigReader.html +0 -6
  78. package/dist/interfaces/_zthun_lint-janitor.IZContentLinter.html +0 -9
  79. package/dist/interfaces/_zthun_lint-janitor.IZLintJanitorArgs.html +0 -4
  80. package/dist/interfaces/_zthun_lint-janitor.IZLintJanitorOptions.html +0 -21
  81. package/dist/modules/_zthun_eslint-config.html +0 -13
  82. package/dist/modules/_zthun_htmlhint-config.html +0 -14
  83. package/dist/modules/_zthun_lint-janitor-config.html +0 -6
  84. package/dist/modules/_zthun_markdownlint-config.html +0 -17
  85. package/dist/modules/_zthun_prettier-config.html +0 -10
  86. package/dist/modules/_zthun_stylelint-config-less.html +0 -11
  87. package/dist/modules/_zthun_stylelint-config-sass.html +0 -11
  88. package/dist/modules/_zthun_stylelint-config.html +0 -10
@@ -1,4 +1,4 @@
1
- <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>@zthun/lint-janitor | Janitor</title><link rel="icon" href="../assets/favicon.svg" type="image/svg+xml"/><meta name="description" content="Documentation for Janitor"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">Janitor</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">@zthun/lint-janitor</a></li></ul><h1>Module @zthun/lint-janitor</h1></div><section class="tsd-panel tsd-typography"><h1 id="lint-janitor" class="tsd-anchor-link">Lint Janitor<a href="#lint-janitor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h1><p>Code gets messy. You will find that most places you work at will always have a
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>@zthun/janitor-lint | Documentation</title><link rel="icon" href="../assets/favicon.svg" type="image/svg+xml"/><meta name="description" content="Documentation for Documentation"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">Documentation</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">@zthun/janitor-lint</a></li></ul><h1>Module @zthun/janitor-lint</h1></div><section class="tsd-panel tsd-typography"><h1 id="janitor-lint" class="tsd-anchor-link">Janitor Lint<a href="#janitor-lint" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h1><p>Code gets messy. You will find that most places you work at will always have a
2
2
  big long list of tech debt tasks that need to be taken care of and this becomes
3
3
  a maintenance nightmare as it becomes very expensive to fix. Companies rarely
4
4
  want to let developers fix these issues because they tend to only look at the
@@ -18,29 +18,29 @@ amount of them out there and you have to be well versed in each one of them in
18
18
  order to set each one of them up and run them in your pipeline to verify all of
19
19
  the different code files you have. There's linters for code, applications,
20
20
  spelling, and formatting; it's easy to get overwhelmed.</p>
21
- <p><strong>Lint Janitor</strong> was created under the guise that there is beauty in simplicity.
21
+ <p><strong>Janitor Lint</strong> was created under the guise that there is beauty in simplicity.
22
22
  Having a single application that takes care of ones needs leads to greater
23
23
  happiness then having to piece meal together tons of tools, each with individual
24
- needs and maintainability issues. Just let <strong>Lint Janitor</strong> do the heavy lifting
24
+ needs and maintainability issues. Just let <strong>Janitor Lint</strong> do the heavy lifting
25
25
  for you.</p>
26
- <h2 id="getting-started" class="tsd-anchor-link">Getting Started<a href="#getting-started" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2><pre><code class="sh"><span class="hl-0"># NPM</span><br/><span class="hl-1">npm</span><span class="hl-2"> </span><span class="hl-3">install</span><span class="hl-2"> </span><span class="hl-3">@zthun/lint-janitor</span><span class="hl-2"> </span><span class="hl-4">--save-dev</span><br/><span class="hl-0"># Yarn</span><br/><span class="hl-1">yarn</span><span class="hl-2"> </span><span class="hl-3">add</span><span class="hl-2"> </span><span class="hl-3">@zthun/lint-janitor</span><span class="hl-2"> </span><span class="hl-4">--dev</span>
26
+ <h2 id="getting-started" class="tsd-anchor-link">Getting Started<a href="#getting-started" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2><pre><code class="sh"><span class="hl-0"># NPM</span><br/><span class="hl-1">npm</span><span class="hl-2"> </span><span class="hl-3">install</span><span class="hl-2"> </span><span class="hl-3">@zthun/janitor-lint</span><span class="hl-2"> </span><span class="hl-4">--save-dev</span><br/><span class="hl-0"># Yarn</span><br/><span class="hl-1">yarn</span><span class="hl-2"> </span><span class="hl-3">add</span><span class="hl-2"> </span><span class="hl-3">@zthun/janitor-lint</span><span class="hl-2"> </span><span class="hl-4">--dev</span>
27
27
  </code><button type="button">Copy</button></pre>
28
28
 
29
- <h2 id="configuration" class="tsd-anchor-link">Configuration<a href="#configuration" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2><p>Lint Janitor uses an opt-in approach to linting, meaning that it will not lint
29
+ <h2 id="configuration" class="tsd-anchor-link">Configuration<a href="#configuration" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2><p>Janitor Lint uses an opt-in approach to linting, meaning that it will not lint
30
30
  any files that you do not tell it to lint. You will need to add a configuration
31
31
  file that describes the list of files to lint and the sub configurations of each
32
32
  internal linter. Each linter is described in further detail. In the end, the
33
33
  expectation is that you will provide you're own collection of shared
34
34
  configurations that you can reuse in all your projects.</p>
35
- <p>Lint Janitor uses the <a href="https://www.npmjs.com/package/cosmiconfig">cosmiconfig</a>
35
+ <p>Janitor Lint uses the <a href="https://www.npmjs.com/package/cosmiconfig">cosmiconfig</a>
36
36
  standard for loading its configuration. In short, it will search the current
37
37
  working directory for the following files:</p>
38
38
  <ol>
39
- <li>A property in your package.json named <strong>lint-janitor</strong>.</li>
40
- <li>A json file or yaml file named <strong>lint-janitorrc</strong>.</li>
41
- <li>A json file named <strong>lint-janitorrc.json</strong>.</li>
42
- <li>A yaml file named <strong>lint-janitorrc.yaml</strong> or <strong>lint-janitorrc.yml</strong>.</li>
43
- <li>A javascript file named <strong>lint-janitorrc.js</strong>, <strong>lint-janitor.config.js</strong>.</li>
39
+ <li>A property in your package.json named <strong>janitor-lint</strong>.</li>
40
+ <li>A json file or yaml file named <strong>janitor-lintrc</strong>.</li>
41
+ <li>A json file named <strong>janitor-lintrc.json</strong>.</li>
42
+ <li>A yaml file named <strong>janitor-lintrc.yaml</strong> or <strong>janitor-lintrc.yml</strong>.</li>
43
+ <li>A javascript file named <strong>janitor-lintrc.js</strong>, <strong>janitor-lint.config.js</strong>.</li>
44
44
  </ol>
45
45
  <blockquote>
46
46
  <p>It is highly recommended to use a config.js convention for these types of
@@ -52,34 +52,34 @@ syntax to import other configurations.</p>
52
52
  <pre><code class="ts"><span class="hl-2">{</span><br/><span class="hl-2"> </span><span class="hl-0">// The configuration file or module for ECMAScript based linting.</span><br/><span class="hl-2"> </span><span class="hl-6">esConfig</span><span class="hl-2">?: </span><span class="hl-6">string</span><span class="hl-2">;</span><br/><span class="hl-2"> </span><span class="hl-0">// The configuration file or module for CSS, Less, and Sass based linting.</span><br/><span class="hl-2"> </span><span class="hl-6">styleConfig</span><span class="hl-2">?: </span><span class="hl-6">string</span><span class="hl-2">;</span><br/><span class="hl-2"> </span><span class="hl-0">// The configuration file or module for HTML linting.</span><br/><span class="hl-2"> </span><span class="hl-6">htmlConfig</span><span class="hl-2">?: </span><span class="hl-6">string</span><span class="hl-2">;</span><br/><span class="hl-2"> </span><span class="hl-0">// The configuration file or module for Markdown based linting</span><br/><span class="hl-2"> </span><span class="hl-6">markdownConfig</span><span class="hl-2">?: </span><span class="hl-6">string</span><span class="hl-2">;</span><br/><span class="hl-2"> </span><span class="hl-0">// The configuration file or module for Spelling checks</span><br/><span class="hl-2"> </span><span class="hl-6">spellingConfig</span><span class="hl-2">?: </span><span class="hl-6">string</span><span class="hl-2">;</span><br/><span class="hl-2"> </span><span class="hl-0">// The configuration file or module for formatting checks</span><br/><span class="hl-2"> </span><span class="hl-6">prettyConfig</span><span class="hl-2">?: </span><span class="hl-6">string</span><span class="hl-2">;</span><br/><br/><span class="hl-2"> </span><span class="hl-0">// The white list of ECMAScript globs to lint. This should</span><br/><span class="hl-2"> </span><span class="hl-0">// include JavaScript and TypeScript based files</span><br/><span class="hl-2"> </span><span class="hl-0">// Note that eslint supports excludes directly in the</span><br/><span class="hl-2"> </span><span class="hl-0">// config file so there is no exclude support for it here.</span><br/><span class="hl-2"> </span><span class="hl-6">esFiles</span><span class="hl-2">?: </span><span class="hl-6">string</span><span class="hl-2">[];</span><br/><span class="hl-2"> </span><span class="hl-0">// The white list of CSS, Less, and Sass globs to lint.</span><br/><span class="hl-2"> </span><span class="hl-0">// Note that stylelint supports excludes directly in</span><br/><span class="hl-2"> </span><span class="hl-0">// the config file so there is no exclude support for it here.</span><br/><span class="hl-2"> </span><span class="hl-6">styleFiles</span><span class="hl-2">?: </span><span class="hl-6">string</span><span class="hl-2">[];</span><br/><span class="hl-2"> </span><span class="hl-0">// The white list of HTML globs to lint.</span><br/><span class="hl-2"> </span><span class="hl-6">htmlFiles</span><span class="hl-2">?: </span><span class="hl-6">string</span><span class="hl-2">[];</span><br/><span class="hl-2"> </span><span class="hl-0">// The black list of HTML globs to exclude from linting.</span><br/><span class="hl-2"> </span><span class="hl-6">htmlFilesExclude</span><span class="hl-2">?: </span><span class="hl-6">string</span><span class="hl-2">[];</span><br/><span class="hl-2"> </span><span class="hl-0">// The white list of Markdown globs to lint.</span><br/><span class="hl-2"> </span><span class="hl-6">markdownFiles</span><span class="hl-2">?: </span><span class="hl-6">string</span><span class="hl-2">[];</span><br/><span class="hl-2"> </span><span class="hl-0">// The black list of Markdown globs to exclude from linting.</span><br/><span class="hl-2"> </span><span class="hl-6">markdownFilesExclude</span><span class="hl-2">?: </span><span class="hl-6">string</span><span class="hl-2">[];</span><br/><span class="hl-2"> </span><span class="hl-0">// The white list of JSON globs to lint.</span><br/><span class="hl-2"> </span><span class="hl-6">jsonFiles</span><span class="hl-2">?: </span><span class="hl-6">string</span><span class="hl-2">[];</span><br/><span class="hl-2"> </span><span class="hl-0">// The black list of JSON globs to exclude from linting.</span><br/><span class="hl-2"> </span><span class="hl-6">jsonFilesExclude</span><span class="hl-2">?: </span><span class="hl-6">string</span><span class="hl-2">[];</span><br/><span class="hl-2"> </span><span class="hl-0">// The white list of YAML globs to lint.</span><br/><span class="hl-2"> </span><span class="hl-6">yamlFiles</span><span class="hl-2">?: </span><span class="hl-6">string</span><span class="hl-2">[];</span><br/><span class="hl-2"> </span><span class="hl-0">// The black list of YAML globs to exclude from linting.</span><br/><span class="hl-2"> </span><span class="hl-6">yamlFilesExclude</span><span class="hl-2">?: </span><span class="hl-6">string</span><span class="hl-2">[];</span><br/><span class="hl-2"> </span><span class="hl-0">// The white list of globs to check for spelling errors.</span><br/><span class="hl-2"> </span><span class="hl-6">spellingFiles</span><span class="hl-2">?: </span><span class="hl-6">string</span><span class="hl-2">[];</span><br/><span class="hl-2"> </span><span class="hl-0">// The black list of globs to exclude from spell checking.</span><br/><span class="hl-2"> </span><span class="hl-6">spellingFilesExclude</span><span class="hl-2">?: </span><span class="hl-6">string</span><span class="hl-2">[];</span><br/><span class="hl-2"> </span><span class="hl-0">// The white list of globs to check for code formatting.</span><br/><span class="hl-2"> </span><span class="hl-6">prettyFiles</span><span class="hl-2">?: </span><span class="hl-6">string</span><span class="hl-2">[];</span><br/><span class="hl-2"> </span><span class="hl-0">// The black list of globs to exclude from code formatting.</span><br/><span class="hl-2"> </span><span class="hl-6">prettyFilesExclude</span><span class="hl-2">?: </span><span class="hl-6">string</span><span class="hl-2">[];</span><br/><span class="hl-2">}</span>
53
53
  </code><button type="button">Copy</button></pre>
54
54
 
55
- <p>The following is an example configuration that lint-janitor will read.</p>
56
- <pre><code class="js"><span class="hl-0">// lint-janitor.config.js</span><br/><br/><span class="hl-7">module</span><span class="hl-2">.</span><span class="hl-7">exports</span><span class="hl-2"> = {</span><br/><span class="hl-2"> </span><span class="hl-0">// Configurations are generally optional and will load using the</span><br/><span class="hl-2"> </span><span class="hl-0">// default rules of the application if not specified. However, you</span><br/><span class="hl-2"> </span><span class="hl-0">// can always override the configurations in this file.</span><br/><span class="hl-2"> </span><span class="hl-6">esConfig:</span><span class="hl-2"> </span><span class="hl-3">&#39;configs/.eslintrc&#39;</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-0">// Using globs to find files</span><br/><span class="hl-2"> </span><span class="hl-6">esFiles:</span><span class="hl-2"> [</span><span class="hl-3">&#39;packages/**/src/**/*.ts&#39;</span><span class="hl-2">],</span><br/><span class="hl-2"> </span><span class="hl-0">// The configurations can also be shared configuration modules</span><br/><span class="hl-2"> </span><span class="hl-0">// found in node_modules if you&#39;re not using IDE extensions.</span><br/><span class="hl-2"> </span><span class="hl-6">styleConfig:</span><span class="hl-2"> </span><span class="hl-3">&#39;@zthun/stylelint-config&#39;</span><span class="hl-2">;</span><br/><span class="hl-2"> </span><span class="hl-0">// Globs are relative to the current working directory.</span><br/><span class="hl-2"> </span><span class="hl-6">styleFiles</span><span class="hl-2">: [</span><span class="hl-3">&#39;packages/**/src/**/*.less&#39;</span><span class="hl-2">],</span><br/><span class="hl-2"> </span><span class="hl-0">// See notes on html below</span><br/><span class="hl-2"> </span><span class="hl-6">htmlFiles:</span><span class="hl-2"> [</span><span class="hl-3">&#39;packages/**/src/**/*.html&#39;</span><span class="hl-2">],</span><br/><span class="hl-2"> </span><span class="hl-0">// You can have as many globs as you want.</span><br/><span class="hl-2"> </span><span class="hl-6">markdownFiles:</span><span class="hl-2"> [</span><span class="hl-3">&#39;packages/**/*.md&#39;</span><span class="hl-2">, </span><span class="hl-3">&#39;*.md&#39;</span><span class="hl-2">],</span><br/><span class="hl-2"> </span><span class="hl-0">// You can also exclude files from the include list. These are normally</span><br/><span class="hl-2"> </span><span class="hl-0">// used for code generated files and should not be linted.</span><br/><span class="hl-2"> </span><span class="hl-6">markdownFilesExclude:</span><span class="hl-2"> [</span><span class="hl-3">&#39;**/CHANGELOG.md&#39;</span><span class="hl-2">],</span><br/><span class="hl-2"> </span><span class="hl-0">// You can also specify specific files - json and yaml have no</span><br/><span class="hl-2"> </span><span class="hl-0">// configurations as they are very specific formats.</span><br/><span class="hl-2"> </span><span class="hl-6">jsonFiles:</span><span class="hl-2"> [</span><span class="hl-3">&#39;package.json&#39;</span><span class="hl-2">],</span><br/><span class="hl-2"> </span><span class="hl-0">// Removes the linter</span><br/><span class="hl-2"> </span><span class="hl-6">spellingFiles:</span><span class="hl-2"> </span><span class="hl-4">null</span><br/><span class="hl-2">};</span>
55
+ <p>The following is an example configuration that janitor-lint will read.</p>
56
+ <pre><code class="js"><span class="hl-0">// janitor-lint.config.js</span><br/><br/><span class="hl-9">module</span><span class="hl-2">.</span><span class="hl-9">exports</span><span class="hl-2"> = {</span><br/><span class="hl-2"> </span><span class="hl-0">// Configurations are generally optional and will load using the</span><br/><span class="hl-2"> </span><span class="hl-0">// default rules of the application if not specified. However, you</span><br/><span class="hl-2"> </span><span class="hl-0">// can always override the configurations in this file.</span><br/><span class="hl-2"> </span><span class="hl-6">esConfig:</span><span class="hl-2"> </span><span class="hl-3">&#39;configs/.eslintrc&#39;</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-0">// Using globs to find files</span><br/><span class="hl-2"> </span><span class="hl-6">esFiles:</span><span class="hl-2"> [</span><span class="hl-3">&#39;packages/**/src/**/*.ts&#39;</span><span class="hl-2">],</span><br/><span class="hl-2"> </span><span class="hl-0">// The configurations can also be shared configuration modules</span><br/><span class="hl-2"> </span><span class="hl-0">// found in node_modules if you&#39;re not using IDE extensions.</span><br/><span class="hl-2"> </span><span class="hl-6">styleConfig:</span><span class="hl-2"> </span><span class="hl-3">&#39;@zthun/janitor-stylelint-config&#39;</span><span class="hl-2">;</span><br/><span class="hl-2"> </span><span class="hl-0">// Globs are relative to the current working directory.</span><br/><span class="hl-2"> </span><span class="hl-6">styleFiles</span><span class="hl-2">: [</span><span class="hl-3">&#39;packages/**/src/**/*.less&#39;</span><span class="hl-2">],</span><br/><span class="hl-2"> </span><span class="hl-0">// See notes on html below</span><br/><span class="hl-2"> </span><span class="hl-6">htmlFiles:</span><span class="hl-2"> [</span><span class="hl-3">&#39;packages/**/src/**/*.html&#39;</span><span class="hl-2">],</span><br/><span class="hl-2"> </span><span class="hl-0">// You can have as many globs as you want.</span><br/><span class="hl-2"> </span><span class="hl-6">markdownFiles:</span><span class="hl-2"> [</span><span class="hl-3">&#39;packages/**/*.md&#39;</span><span class="hl-2">, </span><span class="hl-3">&#39;*.md&#39;</span><span class="hl-2">],</span><br/><span class="hl-2"> </span><span class="hl-0">// You can also exclude files from the include list. These are normally</span><br/><span class="hl-2"> </span><span class="hl-0">// used for code generated files and should not be linted.</span><br/><span class="hl-2"> </span><span class="hl-6">markdownFilesExclude:</span><span class="hl-2"> [</span><span class="hl-3">&#39;**/CHANGELOG.md&#39;</span><span class="hl-2">],</span><br/><span class="hl-2"> </span><span class="hl-0">// You can also specify specific files - json and yaml have no</span><br/><span class="hl-2"> </span><span class="hl-0">// configurations as they are very specific formats.</span><br/><span class="hl-2"> </span><span class="hl-6">jsonFiles:</span><span class="hl-2"> [</span><span class="hl-3">&#39;package.json&#39;</span><span class="hl-2">],</span><br/><span class="hl-2"> </span><span class="hl-0">// Removes the linter</span><br/><span class="hl-2"> </span><span class="hl-6">spellingFiles:</span><span class="hl-2"> </span><span class="hl-4">null</span><br/><span class="hl-2">};</span>
57
57
  </code><button type="button">Copy</button></pre>
58
58
 
59
59
  <p>In your package json, add the following</p>
60
- <pre><code class="sh"><span class="hl-1">&quot;scripts&quot;</span><span class="hl-1">:</span><span class="hl-2"> </span><span class="hl-3">{</span><br/><span class="hl-2"> </span><span class="hl-1">&quot;lint&quot;</span><span class="hl-1">:</span><span class="hl-2"> </span><span class="hl-3">&quot;lint-janitor&quot;</span><br/><span class="hl-2">}</span>
60
+ <pre><code class="json"><span class="hl-2">{</span><br/><span class="hl-2"> </span><span class="hl-8">&quot;scripts&quot;</span><span class="hl-2">: {</span><br/><span class="hl-2"> </span><span class="hl-8">&quot;lint&quot;</span><span class="hl-2">: </span><span class="hl-3">&quot;janitor-lint&quot;</span><br/><span class="hl-2"> }</span><br/><span class="hl-2">}</span>
61
61
  </code><button type="button">Copy</button></pre>
62
62
 
63
63
  <p>Now you can lint everything with a single command.</p>
64
- <pre><code class="sh"><span class="hl-0"># NPM</span><br/><span class="hl-1">npm</span><span class="hl-2"> </span><span class="hl-3">run</span><span class="hl-2"> </span><span class="hl-3">lint</span><br/><span class="hl-0"># Yarn</span><br/><span class="hl-1">yarn</span><span class="hl-2"> </span><span class="hl-3">lint</span><br/><span class="hl-0"># NPX</span><br/><span class="hl-1">npx</span><span class="hl-2"> </span><span class="hl-3">lint-janitor</span>
64
+ <pre><code class="sh"><span class="hl-0"># NPM</span><br/><span class="hl-1">npm</span><span class="hl-2"> </span><span class="hl-3">run</span><span class="hl-2"> </span><span class="hl-3">lint</span><br/><span class="hl-0"># Yarn</span><br/><span class="hl-1">yarn</span><span class="hl-2"> </span><span class="hl-3">lint</span><br/><span class="hl-0"># NPX</span><br/><span class="hl-1">npx</span><span class="hl-2"> </span><span class="hl-3">janitor-lint</span>
65
65
  </code><button type="button">Copy</button></pre>
66
66
 
67
- <h2 id="command-line" class="tsd-anchor-link">Command Line<a href="#command-line" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2><p>You can always run lint-janitor on the command line using npx or if it is
67
+ <h2 id="command-line" class="tsd-anchor-link">Command Line<a href="#command-line" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2><p>You can always run janitor-lint on the command line using npx or if it is
68
68
  installed globally, which is not recommended. There are very few command line
69
- options, as lint-janitor intends to be fully driven by the config file.</p>
70
- <p><strong>lint-janitor</strong> [options]</p>
71
- <pre><code class="json"><span class="hl-2">[</span><br/><span class="hl-2"> {</span><br/><span class="hl-2"> </span><span class="hl-5">&quot;option&quot;</span><span class="hl-2">: </span><span class="hl-3">&quot;--version&quot;</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-5">&quot;description&quot;</span><span class="hl-2">: </span><span class="hl-3">&quot;Show version number&quot;</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-5">&quot;type&quot;</span><span class="hl-2">: </span><span class="hl-3">&quot;boolean&quot;</span><br/><span class="hl-2"> },</span><br/><span class="hl-2"> {</span><br/><span class="hl-2"> </span><span class="hl-5">&quot;option&quot;</span><span class="hl-2">: </span><span class="hl-3">&quot;--config&quot;</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-5">&quot;alias&quot;</span><span class="hl-2">: </span><span class="hl-3">&quot;-c&quot;</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-5">&quot;description&quot;</span><span class="hl-2">: </span><span class="hl-3">&quot;Optional config file to use&quot;</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-5">&quot;type&quot;</span><span class="hl-2">: </span><span class="hl-3">&quot;string&quot;</span><br/><span class="hl-2"> },</span><br/><span class="hl-2"> {</span><br/><span class="hl-2"> </span><span class="hl-5">&quot;option&quot;</span><span class="hl-2">: </span><span class="hl-3">&quot;--help&quot;</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-5">&quot;description&quot;</span><span class="hl-2">: </span><span class="hl-3">&quot;Show help&quot;</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-5">&quot;type&quot;</span><span class="hl-2">: </span><span class="hl-3">&quot;boolean&quot;</span><br/><span class="hl-2"> }</span><br/><span class="hl-2">]</span>
69
+ options, as janitor-lint intends to be fully driven by the config file.</p>
70
+ <p><strong>janitor-lint</strong> [options]</p>
71
+ <pre><code class="json"><span class="hl-2">[</span><br/><span class="hl-2"> {</span><br/><span class="hl-2"> </span><span class="hl-8">&quot;option&quot;</span><span class="hl-2">: </span><span class="hl-3">&quot;--version&quot;</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-8">&quot;description&quot;</span><span class="hl-2">: </span><span class="hl-3">&quot;Show version number&quot;</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-8">&quot;type&quot;</span><span class="hl-2">: </span><span class="hl-3">&quot;boolean&quot;</span><br/><span class="hl-2"> },</span><br/><span class="hl-2"> {</span><br/><span class="hl-2"> </span><span class="hl-8">&quot;option&quot;</span><span class="hl-2">: </span><span class="hl-3">&quot;--config&quot;</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-8">&quot;alias&quot;</span><span class="hl-2">: </span><span class="hl-3">&quot;-c&quot;</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-8">&quot;description&quot;</span><span class="hl-2">: </span><span class="hl-3">&quot;Optional config file to use&quot;</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-8">&quot;type&quot;</span><span class="hl-2">: </span><span class="hl-3">&quot;string&quot;</span><br/><span class="hl-2"> },</span><br/><span class="hl-2"> {</span><br/><span class="hl-2"> </span><span class="hl-8">&quot;option&quot;</span><span class="hl-2">: </span><span class="hl-3">&quot;--help&quot;</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-8">&quot;description&quot;</span><span class="hl-2">: </span><span class="hl-3">&quot;Show help&quot;</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-8">&quot;type&quot;</span><span class="hl-2">: </span><span class="hl-3">&quot;boolean&quot;</span><br/><span class="hl-2"> }</span><br/><span class="hl-2">]</span>
72
72
  </code><button type="button">Copy</button></pre>
73
73
 
74
74
  <h2 id="linters" class="tsd-anchor-link">Linters<a href="#linters" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2><h3 id="shared-configurations" class="tsd-anchor-link">Shared Configurations<a href="#shared-configurations" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><p>While you can always recreate individual configurations for each linter, it is
75
75
  <strong>HIGHLY</strong> recommended to create a set of shared configurations for your
76
- organization. Most linters supported by Lint Janitor have some form of support
76
+ organization. Most linters supported by Janitor Lint have some form of support
77
77
  for extending configurations and sharing them so you don't need to reinvent the
78
- wheel. In the place that such extensions are missing, Lint Janitor attempts to
78
+ wheel. In the place that such extensions are missing, Janitor Lint attempts to
79
79
  bridge this gap but it will not add support for IDE based tooling and
80
80
  extensions. You'll have to decide what's best for your project and your
81
81
  organization.</p>
82
- <p>One note is that the housing repository for lint-janitor contains multiple
82
+ <p>One note is that the housing repository for janitor-lint contains multiple
83
83
  shared configurations used by zthun scoped projects. You can use them, but it is
84
84
  recommended for your organization to create it's own set of configurations that
85
85
  meets its needs.</p>
@@ -97,25 +97,17 @@ has a very large eco system with support for shared configurations and plugins.
97
97
  It supports both TypeScript and JavaScript so it covers the entire feature
98
98
  spectrum. The configuration file for ESLint uses something similar to a
99
99
  <a href="https://www.npmjs.com/package/cosmiconfig">cosmiconfig</a> standard but it's more
100
- restrictive. Instead, it looks for the following files in the current working
101
- directory.</p>
102
- <ol>
103
- <li>.eslintrc.js</li>
104
- <li>.eslintrc.cjs</li>
105
- <li>.eslintrc.yaml</li>
106
- <li>.eslintrc.yml</li>
107
- <li>.eslintrc.json</li>
108
- <li>package.json</li>
109
- </ol>
100
+ restrictive.</p>
110
101
  <p>There is also a
111
102
  <a href="https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint">VisualStudio Code plugin</a>
112
103
  that will give you highlighting for any linting errors while you type. This
113
104
  makes ESLint the go to linter for web based ECMAScript code.</p>
114
105
  <p>For the configuration schema, you can find it
115
- <a href="https://eslint.org/docs/user-guide/configuring/">here</a>. If you create a shared
116
- configuration, as recommended, you can simply add that to the extends key in the
117
- ESLint configuration file to share configuration throughout your organization.</p>
118
- <pre><code class="js"><span class="hl-0">// .eslintrc.js</span><br/><span class="hl-7">module</span><span class="hl-2">.</span><span class="hl-7">exports</span><span class="hl-2"> = </span><span class="hl-1">require</span><span class="hl-2">(</span><span class="hl-3">&quot;@zthun/eslint-config&quot;</span><span class="hl-2">);</span>
106
+ <a href="https://eslint.org/docs/user-guide/configuring/">at the eslint configuration guide</a>.
107
+ If you create a shared configuration, as recommended, you can simply add that to
108
+ the extends key in the ESLint configuration file to share configuration throughout
109
+ your organization.</p>
110
+ <pre><code class="js"><span class="hl-0">// .eslintrc.js</span><br/><span class="hl-9">module</span><span class="hl-2">.</span><span class="hl-9">exports</span><span class="hl-2"> = </span><span class="hl-1">require</span><span class="hl-2">(</span><span class="hl-3">&quot;@zthun/janitor-eslint-config&quot;</span><span class="hl-2">);</span>
119
111
  </code><button type="button">Copy</button></pre>
120
112
 
121
113
  <h3 id="styles-css-less-sass" class="tsd-anchor-link">Styles (CSS, Less, SASS)<a href="#styles-css-less-sass" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><p>There are several linters for style based files.</p>
@@ -125,31 +117,18 @@ ESLint configuration file to share configuration throughout your organization.</
125
117
  <li><a href="https://stylelint.io/">StyleLint</a></li>
126
118
  </ol>
127
119
  <p>CSSLint and SassLint are no longer actively maintained. Thus, for linting style
128
- based files, Lint Janitor uses StyleLint under the hood.</p>
120
+ based files, Janitor Lint uses StyleLint under the hood.</p>
129
121
  <p>StyleLint is similar to <a href="https://eslint.org/">ESLint</a>. It too, has a nice
130
- ecosystem of plugins and it supports shared configurations. Stylelint, unlike
131
- ESLint, does support the
132
- <a href="https://www.npmjs.com/package/cosmiconfig">cosmiconfig</a> standard, but it is
133
- recommended to use .stylelintrc.json convention. The main reason is that the
134
- actual
135
- <a href="https://marketplace.visualstudio.com/items?itemName=stylelint.vscode-stylelint">VisualStudio Code plugin</a>
136
- specifically looks for this file so you can get lint errors directly in your
137
- IDE.</p>
138
- <p>You can find the configuration schema
139
- <a href="https://stylelint.io/user-guide/configure">here</a> and you can use the extends
140
- key in the configuration to load a shared configuration.</p>
141
- <pre><code class="jsonc"><span class="hl-0">// .stylelintrc.json</span><br/><span class="hl-2">{</span><br/><span class="hl-2"> </span><span class="hl-5">&quot;extends&quot;</span><span class="hl-2">: [</span><span class="hl-3">&quot;@zthun/stylelint-config&quot;</span><span class="hl-2">],</span><br/><span class="hl-2">}</span>
122
+ ecosystem of plugins and it supports shared configurations.</p>
123
+ <p>You can find the configuration schema <a href="https://stylelint.io/user-guide/configure">in the user guid for stylelint</a>
124
+ and you can use the extends key in the configuration to load a shared configuration.</p>
125
+ <pre><code class="jsonc"><span class="hl-0">// .stylelintrc.json</span><br/><span class="hl-2">{</span><br/><span class="hl-2"> </span><span class="hl-8">&quot;extends&quot;</span><span class="hl-2">: [</span><span class="hl-3">&quot;@zthun/janitor-stylelint-config&quot;</span><span class="hl-2">],</span><br/><span class="hl-2">}</span>
142
126
  </code><button type="button">Copy</button></pre>
143
127
 
144
- <p>As usual, the list of html rules are
145
- <a href="https://htmlhint.com/docs/user-guide/list-rules">here</a>.</p>
146
- <h3 id="html" class="tsd-anchor-link">HTML<a href="#html" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><p>There is not a lot of support for HTML linters. There is only really one that is
147
- used and it is somewhat old and doesn't have a lot of support. A promise of a
148
- 1.0.0 release has been made, but we will have to wait and see what happens. That
149
- application is <a href="https://github.com/htmlhint/HTMLHint">HTMLHint</a>.</p>
128
+ <h3 id="html" class="tsd-anchor-link">HTML<a href="#html" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><p>There is not a lot of support for HTML linters, so we are using HTMLHint.</p>
150
129
  <p>HTMLHint does NOT support shared configurations at all. To do that,
151
130
  <a href="https://github.com/htmlhint/HTMLHint/issues/621">this issue</a> would need to be
152
- approved and supported. In the meantime, Lint Janitor bridges this gap by
131
+ approved and supported. In the meantime, Janitor Lint bridges this gap by
153
132
  sending just the content to HTMLHint instead of the file list. This allows Lint
154
133
  Janitor to implement a <a href="https://www.npmjs.com/package/cosmiconfig">cosmiconfig</a>
155
134
  standard for loading and extending the configuration to support shared configs.
@@ -159,36 +138,15 @@ does not support this and expects the standard json file to be at the root of
159
138
  your project.</p>
160
139
  <p>If you do choose to use a shared configuration, you can just use a
161
140
  htmlhint.config.js file at the root of your repository.</p>
162
- <pre><code class="js"><span class="hl-0">//htmlhint.config.js</span><br/><span class="hl-7">module</span><span class="hl-2">.</span><span class="hl-7">exports</span><span class="hl-2"> = </span><span class="hl-1">require</span><span class="hl-2">(</span><span class="hl-3">&quot;@zthun/htmlhint-config&quot;</span><span class="hl-2">);</span>
141
+ <pre><code class="js"><span class="hl-0">//htmlhint.config.js</span><br/><span class="hl-9">module</span><span class="hl-2">.</span><span class="hl-9">exports</span><span class="hl-2"> = </span><span class="hl-1">require</span><span class="hl-2">(</span><span class="hl-3">&quot;@zthun/janitor-htmlhint-config&quot;</span><span class="hl-2">);</span>
163
142
  </code><button type="button">Copy</button></pre>
164
143
 
165
144
  <h3 id="markdown" class="tsd-anchor-link">Markdown<a href="#markdown" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Good old markdown has a couple of linters available, but considering that
166
145
  <a href="https://github.com/DavidAnson/markdownlint">MarkdownLint</a> has a working
167
146
  <a href="https://marketplace.visualstudio.com/items?itemName=DavidAnson.vscode-markdownlint">VisualStudio Code plugin</a>,
168
- that's the one that Lint Janitor uses.</p>
169
- <p>MarkdownLint searches for the following configuration files at the root of your
170
- repository.</p>
171
- <ol>
172
- <li>.markdownlint.json</li>
173
- <li>.markdownlint.yaml or .markdownlint.yml</li>
174
- <li>.markdownlintrc</li>
175
- </ol>
176
- <p>Strangely enough, if you are using the vscode plugin, then it is recommended to
177
- just use the .markdownlint.json name because that seems to be the only one that
178
- the plugin will respect. There's not a lot of rules to markdown. You can find
179
- the list of rules <a href="https://github.com/DavidAnson/markdownlint">here</a>. While it's
180
- not documented, MarkdownLint does have support for shared configurations, but
181
- there is a gotcha with it. The actual shared configuration MUST be in a json
182
- format. If you are creating a shared configuration for markdown, you will want
183
- to export a module of it and also have an actual json formatted file that comes
184
- along with it.</p>
185
- <pre><code class="json"><span class="hl-2">{</span><br/><span class="hl-2"> </span><span class="hl-5">&quot;extends&quot;</span><span class="hl-2">: </span><span class="hl-3">&quot;@zthun/markdownlint-config/as-json&quot;</span><br/><span class="hl-2">}</span><br/><br/><span class="hl-0">// node_modules/@zthun/markdownlint-config/as-json.json</span><br/><span class="hl-2">{</span><br/><span class="hl-2"> </span><span class="hl-5">&quot;line-length&quot;</span><span class="hl-2">: </span><span class="hl-4">false</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-5">&quot;no-inline-html&quot;</span><span class="hl-2">: </span><span class="hl-4">false</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-5">&quot;no-duplicate-heading&quot;</span><span class="hl-2">: </span><span class="hl-4">false</span><br/><span class="hl-2">}</span>
186
- </code><button type="button">Copy</button></pre>
187
-
188
- <p>You can still export a node module that has your shared configuration.</p>
189
- <pre><code class="js"><span class="hl-0">// index.js</span><br/><span class="hl-7">module</span><span class="hl-2">.</span><span class="hl-7">exports</span><span class="hl-2"> = </span><span class="hl-1">require</span><span class="hl-2">(</span><span class="hl-3">&quot;./as-json.json&quot;</span><span class="hl-2">);</span>
190
- </code><button type="button">Copy</button></pre>
191
-
147
+ that's the one that Janitor Lint uses.</p>
148
+ <p>There's not a lot of rules to markdown. You can find
149
+ the list of rules <a href="https://github.com/DavidAnson/markdownlint">at the markdown lint github</a>.</p>
192
150
  <h3 id="spelling" class="tsd-anchor-link">Spelling<a href="#spelling" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><p>This one is pretty optional, but it's useful in that it keeps you honest. With
193
151
  spelling, you won't use a shared configuration as this is truly unique across
194
152
  all projects. It is not possible to have a be all end all language that knows
@@ -204,7 +162,7 @@ words and dictionaries.</p>
204
162
  <p>You may want to consider having a shared dictionary for your organizations
205
163
  custom lingo. You can do this through the dictionaryDefinitions key, but you'll
206
164
  have to export a txt file for reuse.</p>
207
- <pre><code class="json"><span class="hl-0">// cspell.json</span><br/><span class="hl-2">{</span><br/><span class="hl-2"> </span><span class="hl-5">&quot;version&quot;</span><span class="hl-2">: </span><span class="hl-3">&quot;0.1&quot;</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-5">&quot;$schema&quot;</span><span class="hl-2">: </span><span class="hl-3">&quot;https://raw.githubusercontent.com/streetsidesoftware/cspell/master/cspell.schema.json&quot;</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-5">&quot;language&quot;</span><span class="hl-2">: </span><span class="hl-3">&quot;en&quot;</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-5">&quot;words&quot;</span><span class="hl-2">: [</span><span class="hl-3">&quot;errored&quot;</span><span class="hl-2">],</span><br/><span class="hl-2"> </span><span class="hl-5">&quot;dictionaries&quot;</span><span class="hl-2">: [</span><span class="hl-3">&quot;typescript&quot;</span><span class="hl-2">, </span><span class="hl-3">&quot;en_US&quot;</span><span class="hl-2">]</span><br/><span class="hl-2">}</span>
165
+ <pre><code class="json"><span class="hl-0">// cspell.json</span><br/><span class="hl-2">{</span><br/><span class="hl-2"> </span><span class="hl-8">&quot;version&quot;</span><span class="hl-2">: </span><span class="hl-3">&quot;0.1&quot;</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-8">&quot;$schema&quot;</span><span class="hl-2">: </span><span class="hl-3">&quot;https://raw.githubusercontent.com/streetsidesoftware/cspell/master/cspell.schema.json&quot;</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-8">&quot;language&quot;</span><span class="hl-2">: </span><span class="hl-3">&quot;en&quot;</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-8">&quot;words&quot;</span><span class="hl-2">: [</span><span class="hl-3">&quot;errored&quot;</span><span class="hl-2">],</span><br/><span class="hl-2"> </span><span class="hl-8">&quot;dictionaries&quot;</span><span class="hl-2">: [</span><span class="hl-3">&quot;typescript&quot;</span><span class="hl-2">, </span><span class="hl-3">&quot;en_US&quot;</span><span class="hl-2">]</span><br/><span class="hl-2">}</span>
208
166
  </code><button type="button">Copy</button></pre>
209
167
 
210
168
  <h3 id="formatting" class="tsd-anchor-link">Formatting<a href="#formatting" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Finally, and possibly most importantly, is code formatting consistency. There
@@ -213,7 +171,7 @@ are generally two tools that are used for this.</p>
213
171
  <li><a href="https://editorconfig.org/">EditorConfig</a></li>
214
172
  <li><a href="https://prettier.io/">Prettier</a></li>
215
173
  </ol>
216
- <p>For code formatting, Lint Janitor went with Prettier since it supports all the
174
+ <p>For code formatting, Janitor Lint went with Prettier since it supports all the
217
175
  features of EditorConfig and a bunch of others. Prettier also supports shared
218
176
  configurations and is highly recommended to use them because the
219
177
  <a href="https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode">VisualStudio Code plugin</a>
@@ -221,30 +179,30 @@ has support to auto format your files when you save them, making sure that your
221
179
  teams formatting is completely consistent.</p>
222
180
  <p>It's file lookup is similar to that of ESLint, but we recommended using
223
181
  .prettierrc.js to enable support for shared configurations.</p>
224
- <pre><code class="js"><span class="hl-0">//.prettierrc.js</span><br/><span class="hl-7">module</span><span class="hl-2">.</span><span class="hl-7">exports</span><span class="hl-2"> = </span><span class="hl-1">require</span><span class="hl-2">(</span><span class="hl-3">&quot;@zthun/prettier-config&quot;</span><span class="hl-2">);</span>
182
+ <pre><code class="js"><span class="hl-0">//.prettierrc.js</span><br/><span class="hl-9">module</span><span class="hl-2">.</span><span class="hl-9">exports</span><span class="hl-2"> = </span><span class="hl-1">require</span><span class="hl-2">(</span><span class="hl-3">&quot;@zthun/janitor-prettier-config&quot;</span><span class="hl-2">);</span>
225
183
  </code><button type="button">Copy</button></pre>
226
184
 
227
- <p>Options are <a href="https://prettier.io/docs/en/options.html">here</a>, and there's not a
228
- lot of them. See <a href="https://prettier.io/docs/en/option-philosophy.html">why</a>, as
229
- there's a good reason for this.</p>
185
+ <p>Options are <a href="https://prettier.io/docs/en/options.html">located at the prettier documentation</a>,
186
+ and there's not a lot of them. See <a href="https://prettier.io/docs/en/option-philosophy.html">why</a>,
187
+ as there's a good reason for this.</p>
230
188
  <p>When doing formatting linting, only the formatting is checked and you are
231
189
  notified if the files are formatted or unformatted. The best way to prevent
232
190
  these issues all together is to just use the Prettier IDE extension and auto
233
191
  format as you type.</p>
234
192
  <h3 id="faq" class="tsd-anchor-link">FAQ<a href="#faq" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Q. Can this support my other favorite linter?</p>
235
- <p>A. Possibly, but whether or not Lint Janitor will bother at the moment depends
193
+ <p>A. Possibly, but whether or not Janitor Lint will bother at the moment depends
236
194
  on a few factors:</p>
237
195
  <ol>
238
196
  <li>Is there an IDE plugin that makes it so you can validate, lint, and cleanup
239
197
  while you go along so you're not left with a lot of surprises at the end?</li>
240
198
  <li>Does the linter support shared configuration to not reinvent the wheel
241
- everywhere? Does Lint Janitor have to bridge that gap?</li>
199
+ everywhere? Does Janitor Lint have to bridge that gap?</li>
242
200
  <li>Is the linter in question a node linter that has its API exported and can be
243
201
  integrated into a node application? <strong>Important!</strong></li>
244
202
  </ol>
245
- <p>If you answered No to the last question, then the answer is No. Lint Janitor
203
+ <p>If you answered No to the last question, then the answer is No. Janitor Lint
246
204
  does not invoke external command lines of linters and instead calls into their
247
- node API directly. This is how Lint Janitor succeeds in not having you worry
205
+ node API directly. This is how Janitor Lint succeeds in not having you worry
248
206
  about what tools to install and what versions to use; it uses transitive
249
207
  dependencies.</p>
250
208
  <p>If the last question is a Yes, then it becomes a question of, is it worth it?
@@ -254,11 +212,11 @@ may not need more than what is available here. If you need the mother of all
254
212
  linters, there is the heavy
255
213
  <a href="https://github.com/nvuillam/mega-linter">Mega Linter</a> which aggregates every
256
214
  linter in existence. Very cool, but a bit overkill for the solution we are
257
- trying to solve with Lint Janitor.</p>
258
- <p>Q. Is there an IDE plugin for Lint Janitor?</p>
215
+ trying to solve with Janitor Lint.</p>
216
+ <p>Q. Is there an IDE plugin for Janitor Lint?</p>
259
217
  <p>A. Not yet. That would solve the issue of wanting an IDE plugin for each
260
218
  individual linter and would allow you to just have a single
261
- lint-janitor.config.js file at the root of your repository that would handle all
219
+ janitor-lint.config.js file at the root of your repository that would handle all
262
220
  linting needs. There is one planned, but it still need to be researched and
263
221
  scoped out.</p>
264
- </section><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Classes"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Classes</h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="zconfigextender"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/_zthun_lint-janitor.ZConfigExtender.html">ZConfigExtender</a><a href="#zconfigextender" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="zconfigreadercosmic"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/_zthun_lint-janitor.ZConfigReaderCosmic.html">ZConfigReaderCosmic</a><a href="#zconfigreadercosmic" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="zconfigreadernull"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/_zthun_lint-janitor.ZConfigReaderNull.html">ZConfigReaderNull</a><a href="#zconfigreadernull" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="zconfigreaderprettier"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/_zthun_lint-janitor.ZConfigReaderPrettier.html">ZConfigReaderPrettier</a><a href="#zconfigreaderprettier" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="zcontentlinterhtml"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/_zthun_lint-janitor.ZContentLinterHtml.html">ZContentLinterHtml</a><a href="#zcontentlinterhtml" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="zcontentlinterjson"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/_zthun_lint-janitor.ZContentLinterJson.html">ZContentLinterJson</a><a href="#zcontentlinterjson" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="zcontentlinterpretty"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/_zthun_lint-janitor.ZContentLinterPretty.html">ZContentLinterPretty</a><a href="#zcontentlinterpretty" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="zcontentlinteryaml"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/_zthun_lint-janitor.ZContentLinterYaml.html">ZContentLinterYaml</a><a href="#zcontentlinteryaml" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="zfilereportlint"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/_zthun_lint-janitor.ZFileReportLint.html">ZFileReportLint</a><a href="#zfilereportlint" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="zlinteres"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/_zthun_lint-janitor.ZLinterEs.html">ZLinterEs</a><a href="#zlinteres" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="zlinterfile"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/_zthun_lint-janitor.ZLinterFile.html">ZLinterFile</a><a href="#zlinterfile" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="zlintermarkdown"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/_zthun_lint-janitor.ZLinterMarkdown.html">ZLinterMarkdown</a><a href="#zlintermarkdown" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="zlintersilent"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/_zthun_lint-janitor.ZLinterSilent.html">ZLinterSilent</a><a href="#zlintersilent" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="zlinterspelling"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/_zthun_lint-janitor.ZLinterSpelling.html">ZLinterSpelling</a><a href="#zlinterspelling" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="zlinterstyle"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/_zthun_lint-janitor.ZLinterStyle.html">ZLinterStyle</a><a href="#zlinterstyle" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="zlintjanitor"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/_zthun_lint-janitor.ZLintJanitor.html">ZLintJanitor</a><a href="#zlintjanitor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Interfaces"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Interfaces</h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="izconfigdiscovery"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><a href="../interfaces/_zthun_lint-janitor.IZConfigDiscovery.html">IZConfigDiscovery</a><a href="#izconfigdiscovery" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="izconfigextender"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><a href="../interfaces/_zthun_lint-janitor.IZConfigExtender.html">IZConfigExtender</a><a href="#izconfigextender" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="izconfigreader"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><a href="../interfaces/_zthun_lint-janitor.IZConfigReader.html">IZConfigReader</a><a href="#izconfigreader" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="izcontentlinter"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><a href="../interfaces/_zthun_lint-janitor.IZContentLinter.html">IZContentLinter</a><a href="#izcontentlinter" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="izlinter"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><a href="../interfaces/_zthun_lint-janitor.IZLinter.html">IZLinter</a><a href="#izlinter" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="izlintjanitorargs"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><a href="../interfaces/_zthun_lint-janitor.IZLintJanitorArgs.html">IZLintJanitorArgs</a><a href="#izlintjanitorargs" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="izlintjanitoroptions"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><a href="../interfaces/_zthun_lint-janitor.IZLintJanitorOptions.html">IZLintJanitorOptions</a><a href="#izlintjanitoroptions" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#lint-janitor"><span>Lint <wbr/>Janitor</span></a><ul><li><a href="#getting-started"><span>Getting <wbr/>Started</span></a></li><li><a href="#configuration"><span>Configuration</span></a></li><li><a href="#command-line"><span>Command <wbr/>Line</span></a></li><li><a href="#linters"><span>Linters</span></a></li><li><ul><li><a href="#shared-configurations"><span>Shared <wbr/>Configurations</span></a></li><li><a href="#json-and-yaml"><span>JSON and <wbr/>YAML</span></a></li><li><a href="#ecmascript"><span>ECMA<wbr/>Script</span></a></li><li><a href="#styles-css-less-sass"><span>Styles (<wbr/>CSS, <wbr/>Less, <wbr/>SASS)</span></a></li><li><a href="#html"><span>HTML</span></a></li><li><a href="#markdown"><span>Markdown</span></a></li><li><a href="#spelling"><span>Spelling</span></a></li><li><a href="#formatting"><span>Formatting</span></a></li><li><a href="#faq"><span>FAQ</span></a></li></ul></li></ul><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Classes"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Classes</summary><div><a href="#zconfigextender"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Z<wbr/>Config<wbr/>Extender</span></a><a href="#zconfigreadercosmic"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Z<wbr/>Config<wbr/>Reader<wbr/>Cosmic</span></a><a href="#zconfigreadernull"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Z<wbr/>Config<wbr/>Reader<wbr/>Null</span></a><a href="#zconfigreaderprettier"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Z<wbr/>Config<wbr/>Reader<wbr/>Prettier</span></a><a href="#zcontentlinterhtml"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Z<wbr/>Content<wbr/>Linter<wbr/>Html</span></a><a href="#zcontentlinterjson"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Z<wbr/>Content<wbr/>Linter<wbr/>Json</span></a><a href="#zcontentlinterpretty"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Z<wbr/>Content<wbr/>Linter<wbr/>Pretty</span></a><a href="#zcontentlinteryaml"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Z<wbr/>Content<wbr/>Linter<wbr/>Yaml</span></a><a href="#zfilereportlint"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Z<wbr/>File<wbr/>Report<wbr/>Lint</span></a><a href="#zlinteres"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Z<wbr/>Linter<wbr/>Es</span></a><a href="#zlinterfile"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Z<wbr/>Linter<wbr/>File</span></a><a href="#zlintermarkdown"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Z<wbr/>Linter<wbr/>Markdown</span></a><a href="#zlintersilent"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Z<wbr/>Linter<wbr/>Silent</span></a><a href="#zlinterspelling"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Z<wbr/>Linter<wbr/>Spelling</span></a><a href="#zlinterstyle"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Z<wbr/>Linter<wbr/>Style</span></a><a href="#zlintjanitor"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Z<wbr/>Lint<wbr/>Janitor</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Interfaces"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Interfaces</summary><div><a href="#izconfigdiscovery"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><span>IZ<wbr/>Config<wbr/>Discovery</span></a><a href="#izconfigextender"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><span>IZ<wbr/>Config<wbr/>Extender</span></a><a href="#izconfigreader"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><span>IZ<wbr/>Config<wbr/>Reader</span></a><a href="#izcontentlinter"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><span>IZ<wbr/>Content<wbr/>Linter</span></a><a href="#izlinter"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><span>IZ<wbr/>Linter</span></a><a href="#izlintjanitorargs"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><span>IZ<wbr/>Lint<wbr/>Janitor<wbr/>Args</span></a><a href="#izlintjanitoroptions"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><span>IZ<wbr/>Lint<wbr/>Janitor<wbr/>Options</span></a></div></details></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">Janitor</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
222
+ </section><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Classes"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Classes</h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="zconfigextender"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/_zthun_janitor-lint.ZConfigExtender.html">ZConfigExtender</a><a href="#zconfigextender" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="zconfigreadercosmic"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/_zthun_janitor-lint.ZConfigReaderCosmic.html">ZConfigReaderCosmic</a><a href="#zconfigreadercosmic" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="zconfigreadernull"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/_zthun_janitor-lint.ZConfigReaderNull.html">ZConfigReaderNull</a><a href="#zconfigreadernull" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="zconfigreaderprettier"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/_zthun_janitor-lint.ZConfigReaderPrettier.html">ZConfigReaderPrettier</a><a href="#zconfigreaderprettier" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="zcontentlinterhtml"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/_zthun_janitor-lint.ZContentLinterHtml.html">ZContentLinterHtml</a><a href="#zcontentlinterhtml" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="zcontentlinterjson"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/_zthun_janitor-lint.ZContentLinterJson.html">ZContentLinterJson</a><a href="#zcontentlinterjson" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="zcontentlinterpretty"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/_zthun_janitor-lint.ZContentLinterPretty.html">ZContentLinterPretty</a><a href="#zcontentlinterpretty" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="zcontentlinteryaml"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/_zthun_janitor-lint.ZContentLinterYaml.html">ZContentLinterYaml</a><a href="#zcontentlinteryaml" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="zjanitorlint"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/_zthun_janitor-lint.ZJanitorLint.html">ZJanitorLint</a><a href="#zjanitorlint" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="zlinteres"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/_zthun_janitor-lint.ZLinterEs.html">ZLinterEs</a><a href="#zlinteres" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="zlinterfile"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/_zthun_janitor-lint.ZLinterFile.html">ZLinterFile</a><a href="#zlinterfile" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="zlintermarkdown"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/_zthun_janitor-lint.ZLinterMarkdown.html">ZLinterMarkdown</a><a href="#zlintermarkdown" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="zlinterreport"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/_zthun_janitor-lint.ZLinterReport.html">ZLinterReport</a><a href="#zlinterreport" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="zlintersilent"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/_zthun_janitor-lint.ZLinterSilent.html">ZLinterSilent</a><a href="#zlintersilent" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="zlinterspelling"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/_zthun_janitor-lint.ZLinterSpelling.html">ZLinterSpelling</a><a href="#zlinterspelling" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="zlinterstyle"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/_zthun_janitor-lint.ZLinterStyle.html">ZLinterStyle</a><a href="#zlinterstyle" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Interfaces"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Interfaces</h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="izconfigdiscovery"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><a href="../interfaces/_zthun_janitor-lint.IZConfigDiscovery.html">IZConfigDiscovery</a><a href="#izconfigdiscovery" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="izconfigextender"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><a href="../interfaces/_zthun_janitor-lint.IZConfigExtender.html">IZConfigExtender</a><a href="#izconfigextender" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="izconfigreader"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><a href="../interfaces/_zthun_janitor-lint.IZConfigReader.html">IZConfigReader</a><a href="#izconfigreader" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="izcontentlinter"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><a href="../interfaces/_zthun_janitor-lint.IZContentLinter.html">IZContentLinter</a><a href="#izcontentlinter" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="izjanitorlintargs"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><a href="../interfaces/_zthun_janitor-lint.IZJanitorLintArgs.html">IZJanitorLintArgs</a><a href="#izjanitorlintargs" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="izlinter"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><a href="../interfaces/_zthun_janitor-lint.IZLinter.html">IZLinter</a><a href="#izlinter" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#janitor-lint"><span>Janitor <wbr/>Lint</span></a><ul><li><a href="#getting-started"><span>Getting <wbr/>Started</span></a></li><li><a href="#configuration"><span>Configuration</span></a></li><li><a href="#command-line"><span>Command <wbr/>Line</span></a></li><li><a href="#linters"><span>Linters</span></a></li><li><ul><li><a href="#shared-configurations"><span>Shared <wbr/>Configurations</span></a></li><li><a href="#json-and-yaml"><span>JSON and <wbr/>YAML</span></a></li><li><a href="#ecmascript"><span>ECMA<wbr/>Script</span></a></li><li><a href="#styles-css-less-sass"><span>Styles (<wbr/>CSS, <wbr/>Less, <wbr/>SASS)</span></a></li><li><a href="#html"><span>HTML</span></a></li><li><a href="#markdown"><span>Markdown</span></a></li><li><a href="#spelling"><span>Spelling</span></a></li><li><a href="#formatting"><span>Formatting</span></a></li><li><a href="#faq"><span>FAQ</span></a></li></ul></li></ul><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Classes"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Classes</summary><div><a href="#zconfigextender"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Z<wbr/>Config<wbr/>Extender</span></a><a href="#zconfigreadercosmic"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Z<wbr/>Config<wbr/>Reader<wbr/>Cosmic</span></a><a href="#zconfigreadernull"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Z<wbr/>Config<wbr/>Reader<wbr/>Null</span></a><a href="#zconfigreaderprettier"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Z<wbr/>Config<wbr/>Reader<wbr/>Prettier</span></a><a href="#zcontentlinterhtml"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Z<wbr/>Content<wbr/>Linter<wbr/>Html</span></a><a href="#zcontentlinterjson"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Z<wbr/>Content<wbr/>Linter<wbr/>Json</span></a><a href="#zcontentlinterpretty"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Z<wbr/>Content<wbr/>Linter<wbr/>Pretty</span></a><a href="#zcontentlinteryaml"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Z<wbr/>Content<wbr/>Linter<wbr/>Yaml</span></a><a href="#zjanitorlint"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Z<wbr/>Janitor<wbr/>Lint</span></a><a href="#zlinteres"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Z<wbr/>Linter<wbr/>Es</span></a><a href="#zlinterfile"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Z<wbr/>Linter<wbr/>File</span></a><a href="#zlintermarkdown"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Z<wbr/>Linter<wbr/>Markdown</span></a><a href="#zlinterreport"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Z<wbr/>Linter<wbr/>Report</span></a><a href="#zlintersilent"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Z<wbr/>Linter<wbr/>Silent</span></a><a href="#zlinterspelling"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Z<wbr/>Linter<wbr/>Spelling</span></a><a href="#zlinterstyle"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Z<wbr/>Linter<wbr/>Style</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Interfaces"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Interfaces</summary><div><a href="#izconfigdiscovery"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><span>IZ<wbr/>Config<wbr/>Discovery</span></a><a href="#izconfigextender"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><span>IZ<wbr/>Config<wbr/>Extender</span></a><a href="#izconfigreader"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><span>IZ<wbr/>Config<wbr/>Reader</span></a><a href="#izcontentlinter"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><span>IZ<wbr/>Content<wbr/>Linter</span></a><a href="#izjanitorlintargs"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><span>IZ<wbr/>Janitor<wbr/>Lint<wbr/>Args</span></a><a href="#izlinter"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="../assets/icons.svg#icon-256"></use></svg><span>IZ<wbr/>Linter</span></a></div></details></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">Documentation</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>