0.0.2 • Published 8 months ago

markdownlint-cli2-formatter-template v0.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
8 months ago

markdownlint-cli2-formatter-template

An output formatter for markdownlint-cli2 that displays results using a template.

npm version License

Install

npm install markdownlint-cli2-formatter-template --save-dev

Use

This output formatter makes it easy to custom-format linting violations. To specify an output format, set the template parameter to a string with text and one or more tokens representing any of the following elements. The specified template will be applied once for each violation.

These tokens are always defined:

TokenMeaning
fileNameFile name
lineNumberLine number (1-based)
ruleNameRule name (full)
ruleDescriptionRule description
ruleInformationInformational URL

These tokens are sometimes defined (depending on the rule/violation):

TokenMeaning
columnNumberColumn number (1-based)
errorContextContext information
errorDetailAdditional detail

In the simplest case, tokens are specified with the syntax ${token}. This is all that's needed for tokens that are always defined. To support scenarios where a token may not be defined, the syntaxes ${token:text if present} and ${token!text if not present} are also supported. This allows for templates to accommodate missing data. Only one level of token nesting is supported.

A few examples demonstrate the concept:

TemplateOutput if definedOutput if not defined
Column=${columnNumber}Column=10Column=
${columnNumber:Column=${columnNumber}}Column=10
${columnNumber!No column number}No column number
${columnNumber:Column=${columnNumber}}${columnNumber!No column number}Column=10No column number

Example

To output in the Azure Pipelines Task command LogIssue format, use something like the following .markdownlint-cli2.jsonc:

{
  "outputFormatters": [
    [
      "markdownlint-cli2-formatter-template",
      {
        "template": "##vso[task.logissue type=error;sourcepath=${fileName};linenumber=${lineNumber};${columnNumber:columnumber=${columnNumber};}code=${ruleName}]${ruleDescription}"
      }
    ]
  ]
}

Which produces output like:

##vso[task.logissue type=error;sourcepath=viewme.md;linenumber=3;columnumber=10;code=MD009/no-trailing-spaces]Trailing spaces
##vso[task.logissue type=error;sourcepath=viewme.md;linenumber=5;code=MD012/no-multiple-blanks]Multiple consecutive blank lines
##vso[task.logissue type=error;sourcepath=viewme.md;linenumber=6;code=MD025/single-title/single-h1]Multiple top-level headings in the same document
##vso[task.logissue type=error;sourcepath=viewme.md;linenumber=12;columnumber=4;code=MD019/no-multiple-space-atx]Multiple spaces after hash on atx style heading
##vso[task.logissue type=error;sourcepath=viewme.md;linenumber=14;columnumber=14;code=MD047/single-trailing-newline]Files should end with a single newline character
0.0.2

8 months ago

0.0.1

8 months ago