unified

Project: remarkjs/remark-lint

Package: remark-lint-list-item-spacing@2.0.1

  1. Dependencies: 4·Dependents: 6
  2. remark-lint rule to warn when list looseness is incorrect
  1. remark 182
  2. lint 68
  3. rule 64
  4. remark-lint-rule 63
  5. list 9
  6. item 4

remark-lint-list-item-spacing

Build Coverage Downloads Size Sponsors Backers Chat

Warn when list looseness is incorrect, such as being tight when it should be loose, and vice versa.

According to the markdown-style-guide, if one or more list items in a list spans more than one line, the list is required to have blank lines between each item. And otherwise, there should not be blank lines between items.

By default, all items must be “loose” (a blank line must be between them) if one or more items are multiline (span more than one line). Otherwise, the list must be tight (no blank line must be between items).

If you pass {checkBlanks: true}, all items must be “loose” if one or more items contain blank lines. Otherwise, the list must be tight.

Presets

This rule is included in the following presets:

PresetSetting
remark-preset-lint-markdown-style-guide

Example

ok.md
In
A tight list:

-   item 1
-   item 2
-   item 3

A loose list:

-   Wrapped
    item

-   item 2

-   item 3
Out

No messages.

not-ok.md
In
A tight list:

-   Wrapped
    item
-   item 2
-   item 3

A loose list:

-   item 1

-   item 2

-   item 3
Out
4:9-5:1: Missing new line after list item
5:11-6:1: Missing new line after list item
11:1-12:1: Extraneous new line after list item
13:1-14:1: Extraneous new line after list item
ok.md

When configured with { checkBlanks: true }.

In
A tight list:

-   item 1
    - item 1.A
-   item 2
    > Block quote

A loose list:

-   item 1

    - item 1.A

-   item 2

    > Block quote
Out

No messages.

not-ok.md

When configured with { checkBlanks: true }.

In
A tight list:

-   item 1

    - item 1.A
-   item 2

    > Block quote
-   item 3

A loose list:

-   item 1
    - item 1.A

-   item 2
    > Block quote
Out
5:15-6:1: Missing new line after list item
8:18-9:1: Missing new line after list item
15:1-16:1: Extraneous new line after list item

Install

npm:

npm install remark-lint-list-item-spacing

Use

You probably want to use it on the CLI through a config file:

 …
 "remarkConfig": {
   "plugins": [
     …
     "lint",
+    "lint-list-item-spacing",
     …
   ]
 }
 …

Or use it on the CLI directly

remark -u lint -u lint-list-item-spacing readme.md

Or use this on the API:

 var remark = require('remark')
 var report = require('vfile-reporter')

 remark()
   .use(require('remark-lint'))
+  .use(require('remark-lint-list-item-spacing'))
   .process('_Emphasis_ and **importance**', function (err, file) {
     console.error(report(err || file))
   })

Contribute

See contributing.md in remarkjs/.github for ways to get started. See support.md for ways to get help.

This project has a code of conduct. By interacting with this repository, organization, or community you agree to abide by its terms.

License

MIT © Titus Wormer