markdownlint-cli2-action
A GitHub Action to run the [markdownlint-cli2][markdownlint-cli2] tool for
linting [Markdown][markdown]/[CommonMark][commonmark] files with
[markdownlint][markdownlint]
markdownlint-cli2 has extensive support for configuring options and disabling
or customizing markdownlint rules. See the
[markdownlint-cli2 README][markdownlint-cli2] for more information.
markdownlint includes a wide variety of rules for analyzing and improving
Markdown content. See the [markdownlint README][markdownlint] for more
information.
Inputs
config (optional)
Path of a file to use for the base configuration object (defaults to none)
Equivalent to using the --config [command-line option][command-line] and
passing the specified configuration file.
configPointer (optional)
[JSON Pointer][json-pointer] to a configuration object within the --config
file (defaults to none)
Equivalent to using the --configPointer [command-line option][command-line]
and passing the specified JSON Pointer.
fix (optional)
Whether to fix supported issues automatically (true/false, defaults to
false)
Equivalent to specifying the --fix [command-line option][command-line].
globs (optional)
Glob expression(s) of files to lint (newline-delimited, defaults to
*.{md,markdown})
The default lints all Markdown files in the base directory of a project.
For more detail: [glob syntax in markdownlint-cli2][glob-syntax].
separator (optional)
String to use as a separator for the globs input (defaults to newline)
Allows the globs input to use something other than \n to separate glob
expressions.
Outputs
[None]
Examples
To lint Markdown files in the base directory of a project:
- uses: DavidAnson/markdownlint-cli2-action@v25
To lint all Markdown files in a project:
- uses: DavidAnson/markdownlint-cli2-action@v25
with:
globs: '*/.md'
To lint specific Markdown files in a project:
- uses: DavidAnson/markdownlint-cli2-action@v25
with:
globs: |
README.md
CHANGELOG.md
docs/*.md
To use a custom separator:
- uses: DavidAnson/markdownlint-cli2-action@v25
with:
globs: 'README.md,CHANGELOG.md,docs/*.md'
separator: ','
To fix supported issues when linting:
- uses: DavidAnson/markdownlint-cli2-action@v25
with:
fix: true
globs: '*/.md'
To specify a custom configuration file:
- uses: DavidAnson/markdownlint-cli2-action@v25
with:
config: 'config/custom.markdownlint.jsonc'
globs: '*/.md'
To specify an embedded object in package.json:
- uses: DavidAnson/markdownlint-cli2-action@v25
with:
config: 'package.json'
configPointer: '/markdownlint-cli2'
globs: '*/.md'
To specify an embedded object in pyproject.toml:
- uses: DavidAnson/markdownlint-cli2-action@v25
with:
config: 'pyproject.toml'
configPointer: '/tool/markdownlint-cli2'
globs: '*/.md'
To prevent linting issues from failing the workflow run:
- uses: DavidAnson/markdownlint-cli2-action@v25
continue-on-error: true
See [example.yml][example-yml] for a simple GitHub workflow that uses
markdownlint-cli2-action.
See [changed.yml][changed-yml] for a GitHub workflow that lints only the
Markdown files that changed in the most recent commit (useful for Pull Requests
and/or gradually introducing linting rules to a new repository).
[changed-yml]: .github/workflows/changed.yml [command-line]: https://github.com/DavidAnson/markdownlint-cli2#command-line [commonmark]: https://commonmark.org/ [example-yml]: .github/workflows/example.yml [glob-syntax]: https://github.com/DavidAnson/markdownlint-cli2#use [json-pointer]: https://datatracker.ietf.org/doc/html/rfc6901 [markdown]: https://wikipedia.org/wiki/Markdown [markdownlint]: https://github.com/DavidAnson/markdownlint [markdownlint-cli2]: https://github.com/DavidAnson/markdownlint-cli2