
remark-lint rule to warn when block quotes are indented too much or too little.
Contents
What is this?
This package checks the “indent” of block quotes: the > (greater than) marker and the spaces before content.
When should I use this?
You can use this rule to check markdown code style.
Presets
This plugin is included in the following presets:
Install
This package is ESM only. In Node.js (version 16+), install with npm:
npm install remark-lint-blockquote-indentation
In Deno with esm.sh:
import remarkLintBlockquoteIndentation from 'https://esm.sh/remark-lint-blockquote-indentation@4'
In browsers with esm.sh:
<script type="module">
import remarkLintBlockquoteIndentation from 'https://esm.sh/remark-lint-blockquote-indentation@4?bundle'
</script>
Use
On the API:
import remarkLint from 'remark-lint'
import remarkLintBlockquoteIndentation from 'remark-lint-blockquote-indentation'
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(remarkLintBlockquoteIndentation)
.use(remarkStringify)
.process(file)
console.error(reporter(file))
On the CLI:
remark --frail --use remark-lint --use remark-lint-blockquote-indentation .
On the CLI in a config file (here a package.json):
…
"remarkConfig": {
"plugins": [
…
"remark-lint",
+ "remark-lint-blockquote-indentation",
…
]
}
…
API
This package exports no identifiers. It exports the TypeScript type Options. The default export is remarkLintBlockquoteIndentation.
Warn when block quotes are indented too much or too little.
Parameters
options (Options, default: 'consistent') — either a preferred indent or whether to detect the first style and warn for further differences
Returns
Transform (Transformer from unified).
Options
Configuration (TypeScript type).
Type
type Options = number | 'consistent'
Recommendation
CommonMark specifies that when block quotes are used the > markers can be followed by an optional space. No space at all arguably looks rather ugly:
>Mars and
>Venus.
There is no specific handling of more that one space, so if 5 spaces were used after >, then indented code kicks in:
> neptune()
Due to this, it’s recommended to configure this rule with 2.
Examples
ok-2.md
When configured with 2.
In
> Mercury.
Venus.
> Earth.
Out
No messages.
ok-4.md
When configured with 4.
In
> Mercury.
Venus.
> Earth.
Out
No messages.
ok-tab.md
In
>␉Mercury.
Out
No messages.
not-ok.md
In
> Mercury.
Venus.
> Earth.
Mars.
> Jupiter
Out
5:5: Unexpected `4` spaces between block quote marker and content, expected `3` spaces, remove `1` space
9:3: Unexpected `2` spaces between block quote marker and content, expected `3` spaces, add `1` space
not-ok-options.md
When configured with '🌍'.
Out
1:1: Unexpected value `🌍` for `options`, expected `number` or `'consistent'`
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-blockquote-indentation@4, compatible with Node.js 16.
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