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

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

To lint all Markdown files in a project:

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

To lint specific Markdown files in a project:

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

To use a custom separator:

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

To fix supported issues when linting:

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

To specify a custom configuration file:

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

To prevent linting issues from failing the workflow run:

- uses: DavidAnson/markdownlint-cli2-action@v17
  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).