JSPM

  • Created
  • Published
  • Downloads 578896
  • Score
    100M100P100Q173412F
  • License MIT

MarkdownLint Command Line Interface

Package Exports

  • markdownlint-cli

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (markdownlint-cli) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

markdownlint-cli Travis CI Build Status AppVeyor CI Build Status

Command Line Interface for MarkdownLint

Installation

npm install -g markdownlint-cli

Usage

markdownlint --help

  Usage: markdownlint [options] <files|directories|globs>

  MarkdownLint Command Line Interface

  Options:

    -h, --help                                  output usage information
    -V, --version                               output the version number
    -f, --fix                                   fix basic errors (does not work with STDIN)
    -s, --stdin                                 read from STDIN (does not work with files)
    -o, --output [outputFile]                   write issues to file (no console)
    -c, --config [configFile]                   configuration file (JSON or YAML)
    -i, --ignore [file|directory|glob]          files to ignore/exclude
    -r, --rules  [file|directory|glob|package]  custom rule files

Globbing

markdownlint-cli supports advanced globbing patterns like **/*.md (more information). With shells like Bash, it may be necessary to quote globs so they are not interpreted by the shell. For example, --ignore *.md would be expanded by Bash to --ignore a.md b.md ... before invoking markdownlint-cli, causing it to ignore only the first file because --ignore takes a single parameter (though it can be used multiple times). Quoting the glob like --ignore '*.md' passes it through unexpanded and ignores the set of files.

Examples

To lint all Markdown files in a Node.js project (excluding dependencies), the following commands might be used:

Windows CMD: markdownlint **/*.md --ignore node_modules

Linux Bash: markdownlint '**/*.md' --ignore node_modules

Fixing errors

When the --fix option is specified, markdownlint-cli tries to apply all fixes reported by the active rules and reports any errors that remain. Because this option makes changes to the input files, it is good to make a backup first or work with files under source control so any unwanted changes can be undone.

Because not all rules include fix information when reporting errors, fixes may overlap, and not all errors are fixable, --fix will not usually address all errors.

Configuration

markdownlint-cli reuses the rules from markdownlint package.

Configuration is stored in JSON, YAML or INI files in the same config format.

The example of configuration file:

{
  "default": true,
  "MD003": { "style": "atx_closed" },
  "MD007": { "indent": 4 },
  "no-hard-tabs": false,
  "whitespace": false
}

See test configuration file or style folder for more examples.

CLI argument --config is not mandatory. If it is not provided, markdownlint-cli looks for file .markdownlint.json/.markdownlint.yaml/.markdownlint.yml in current folder, or for file .markdownlintrc in current or all upper folders. The algorithm is described in details on rc package page. If --config argument is provided, the file must be valid JSON or YAML.

License

MIT © Igor Shubovych