Skip to content

A GitHub Action to run the markdownlint-cli2 tool for linting Markdown/CommonMark files with the markdownlint library

License

Notifications You must be signed in to change notification settings

DavidAnson/markdownlint-cli2-action

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

markdownlint-cli2-action

A GitHub Action to run the markdownlint-cli2 tool for linting Markdown/CommonMark files with markdownlint

markdownlint-cli2 has extensive support for configuring options and disabling or customizing markdownlint rules. See the markdownlint-cli2 README for more information. markdownlint includes a wide variety of rules for analyzing and improving Markdown content. See the markdownlint README for more information.

Inputs

command (optional)

Deprecated in favor of the "fix" and "config" inputs

Command to run (unset, fix, or config)

If unspecified or "", the markdownlint-cli2 command is run.

If set to fix, the markdownlint-cli2-fix command is run and supported issues will be fixed automatically.

If set to config, the markdownlint-cli2-config command is run and the first element of globs should specify a supported configuration file.

For more detail: documentation for markdownlint-cli2.

config (optional)

Path of a file to use for the base configuration object (defaults to none)

Equivalent to using the --config command-line option and passing the specified configuration file.

fix (optional)

Whether to fix supported issues automatically (any truthy value enables)

Equivalent to specifying the --fix command-line option.

globs (optional)

Glob expression(s) of files to lint (newline-delimited by default)

The default *.{md,markdown} lints all Markdown files in the base directory of a project.

For more detail: glob syntax in markdownlint-cli2.

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@v11

To lint all Markdown files in a project:

- uses: DavidAnson/markdownlint-cli2-action@v11
  with:
    globs: '**/*.md'

To lint specific Markdown files in a project:

- uses: DavidAnson/markdownlint-cli2-action@v11
  with:
    globs: |
      README.md
      CHANGELOG.md
      docs/*.md

To use a custom separator:

- uses: DavidAnson/markdownlint-cli2-action@v11
  with:
    globs: 'README.md,CHANGELOG.md,docs/*.md'
    separator: ','

To fix supported issues when linting:

- uses: DavidAnson/markdownlint-cli2-action@v11
  with:
    fix: true
    globs: '**/*.md'

To specify a custom configuration file:

- uses: DavidAnson/markdownlint-cli2-action@v11
  with:
    config: 'config/custom.markdownlint.jsonc'
    globs: '**/*.md'

To prevent linting issues from failing the workflow run:

- uses: DavidAnson/markdownlint-cli2-action@v11
  continue-on-error: true

See example.yml for a simple GitHub workflow that uses markdownlint-cli2-action.

See 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).