remark-lint-no-consecutive-blank-lines

remark-lint rule to warn for too many consecutive blank lines

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
remark-lint-no-consecutive-blank-lines
5.0.010 days ago7 years agoMinified + gzip package size for remark-lint-no-consecutive-blank-lines in KB

Readme

remark-lint-no-consecutive-blank-lines
!Buildbadge-build-imagebadge-build-url !Coveragebadge-coverage-imagebadge-coverage-url !Downloadsbadge-downloads-imagebadge-downloads-url !Sizebadge-size-imagebadge-size-url !Sponsorsbadge-funding-sponsors-imagebadge-funding-url !Backersbadge-funding-backers-imagebadge-funding-url !Chatbadge-chat-imagebadge-chat-url
remark-lintgithub-remark-lint rule to warn when multiple blank lines are used.

Contents

unified().use(remarkLintNoConsecutiveBlankLines)

What is this?

This package checks the number of blank lines.

When should I use this?

You can use this package to check that there are no unneeded blank lines.

Presets

This plugin is included in the following presets:
| Preset | Options | | - | - | | remark-preset-lint-markdown-style-guide | |

Install

This package is ESM onlygithub-gist-esm. In Node.js (version 16+), install with npmnpm-install:
npm install remark-lint-no-consecutive-blank-lines

In Deno with esm.shesm-sh:
import remarkLintNoConsecutiveBlankLines from 'https://esm.sh/remark-lint-no-consecutive-blank-lines@5'

In browsers with esm.shesm-sh:
<script type="module">
  import remarkLintNoConsecutiveBlankLines from 'https://esm.sh/remark-lint-no-consecutive-blank-lines@5?bundle'
</script>

Use

On the API:
import remarkLint from 'remark-lint'
import remarkLintNoConsecutiveBlankLines from 'remark-lint-no-consecutive-blank-lines'
import remarkParse from 'remark-parse'
import remarkStringify from 'remark-stringify'
import {read} from 'to-vfile'
import {unified} from 'unified'
import {reporter} from 'vfile-reporter'

const file = await read('example.md')

await unified()
  .use(remarkParse)
  .use(remarkLint)
  .use(remarkLintNoConsecutiveBlankLines)
  .use(remarkStringify)
  .process(file)

console.error(reporter(file))

On the CLI:
remark --frail --use remark-lint --use remark-lint-no-consecutive-blank-lines .

On the CLI in a config file (here a package.json):
…
"remarkConfig": {
  "plugins": [
    …
    "remark-lint",
+    "remark-lint-no-consecutive-blank-lines",
    …
  ]
}
…

API

This package exports no identifiers. It exports no additional TypeScripttypescript types. The default export is remarkLintNoConsecutiveBlankLinesapi-remark-lint-no-consecutive-blank-lines.

unified().use(remarkLintNoConsecutiveBlankLines)

Warn when multiple blank lines are used.
Parameters
There are no options.
Returns
Transform (Transformer from unifiedgithub-unified-transformer).

Recommendation

More than one blank line has no effect between blocks.

Fix

remark-stringifygithub-remark-stringify adds exactly one blank line between any block. It has a join option to configure more complex cases.

Examples

ok.md
In
# Planets

Mercury.

Venus.
Out
No messages.
not-ok.md
In
# Planets


Mercury.



Venus.
Out
4:1: Unexpected `2` blank lines before node, expected up to `1` blank line, remove `1` blank line
8:1: Unexpected `3` blank lines before node, expected up to `1` blank line, remove `2` blank lines
initial.md
In
␊Mercury.
Out
2:1: Unexpected `1` blank line before node, expected `0` blank lines, remove `1` blank line
final-one.md
In
Mercury.␊
Out
No messages.
final-more.md
In
Mercury.␊␊
Out
1:9: Unexpected `1` blank line after node, expected `0` blank lines, remove `1` blank line
empty-document.md
Out
No messages.
block-quote.md
In
> Mercury.

Venus.

>
> Earth.
>
Out
6:3: Unexpected `1` blank line before node, expected `0` blank lines, remove `1` blank line
6:9: Unexpected `1` blank line after node, expected `0` blank lines, remove `1` blank line
directive.md
In
👉 Note: this example uses directives (remark-directivegithub-remark-directive).

:::mercury
Venus.


Earth.
:::
Out
5:1: Unexpected `2` blank lines before node, expected up to `1` blank line, remove `1` blank line
footnote.md
In
👉 Note: this example uses GFM (remark-gfmgithub-remark-gfm).

Venus.




    Mars.
Out
8:5: Unexpected `1` blank line before node, expected `0` blank lines, remove `1` blank line
11:5: Unexpected `2` blank lines before node, expected up to `1` blank line, remove `1` blank line
jsx.md
In
👉 Note: this example uses MDX (remark-mdxgithub-remark-mdx).

<Mercury>
  Venus.


  Earth.
</Mercury>
Out
5:3: Unexpected `2` blank lines before node, expected up to `1` blank line, remove `1` blank line
list.md
In
* Mercury.
* Venus.

***

* Mercury.

* Venus.

***

* Mercury.


* Venus.
Out
15:1: Unexpected `2` blank lines before node, expected up to `1` blank line, remove `1` blank line
list-item.md
In
* Mercury.
  Venus.

***

* Mercury.

  Venus.

***

* Mercury.


  Venus.

***

*
  Mercury.
Out
15:3: Unexpected `2` blank lines before node, expected up to `1` blank line, remove `1` blank line
20:3: Unexpected `1` blank line before node, expected `0` blank lines, remove `1` blank line
deep-block-quote.md
In
* > * > # Venus␊␊
Out
1:16: Unexpected `1` blank line after node, expected `0` blank lines, remove `1` blank line
deep-list-item.md
In
> * > * # Venus␊␊
Out
1:16: Unexpected `1` blank line after node, expected `0` blank lines, remove `1` blank line

Compatibility

Projects maintained by the unified collective are compatible with maintained versions of Node.js.
When we cut a new major release, we drop support for unmaintained versions of Node. This means we try to keep the current release line, remark-lint-no-consecutive-blank-lines@5, compatible with Node.js 16.

Contribute

See contributing.mdgithub-dotfiles-contributing in remarkjs/.githubgithub-dotfiles-health for ways to get started. See support.mdgithub-dotfiles-support for ways to get help.
This project has a code of conductgithub-dotfiles-coc. By interacting with this repository, organization, or community you agree to abide by its terms.

License

MITfile-license © Titus Wormerauthor