remark-lint-code-block-style

remark-lint rule to warn when code blocks do not adhere to a given style

Usage no npm install needed!

<script type="module">
  import remarkLintCodeBlockStyle from 'https://cdn.skypack.dev/remark-lint-code-block-style';
</script>

README

remark-lint-code-block-style

Build Coverage Downloads Size Sponsors Backers Chat

Warn when code blocks do not adhere to a given style.

Options: 'consistent', 'fenced', or 'indented', default: 'consistent'.

'consistent' detects the first used code block style and warns when subsequent code blocks uses different styles.

Fix

remark-stringify formats code blocks using a fence if they have a language flag and indentation if not. Pass fences: true to always use fences for code blocks.

See Using remark to fix your Markdown on how to automatically fix warnings for this rule.

Presets

This rule is included in the following presets:

| Preset | Setting | | - | - | | remark-preset-lint-consistent | 'consistent' | | remark-preset-lint-markdown-style-guide | 'fenced' |

Example

ok.md

When configured with 'indented'.

In
    alpha()

Paragraph.

    bravo()
Out

No messages.

not-ok.md

When configured with 'indented'.

In
```
alpha()
```

Paragraph.

```
bravo()
```
Out
1:1-3:4: Code blocks should be indented
7:1-9:4: Code blocks should be indented
ok.md

When configured with 'fenced'.

In
```
alpha()
```

Paragraph.

```
bravo()
```
Out

No messages.

not-ok-fenced.md

When configured with 'fenced'.

In
    alpha()

Paragraph.

    bravo()
Out
1:1-1:12: Code blocks should be fenced
5:1-5:12: Code blocks should be fenced
not-ok-consistent.md
In
    alpha()

Paragraph.

```
bravo()
```
Out
5:1-7:4: Code blocks should be indented
not-ok-incorrect.md

When configured with '💩'.

Out
1:1: Incorrect code block style `💩`: use either `'consistent'`, `'fenced'`, or `'indented'`

Install

This package is ESM only: Node 12+ is needed to use it and it must be importeded instead of requiredd.

npm:

npm install remark-lint-code-block-style

This package exports no identifiers. The default export is remarkLintCodeBlockStyle.

Use

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

 …
 "remarkConfig": {
   "plugins": [
     …
     "lint",
+    "lint-code-block-style",
     …
   ]
 }
 …

Or use it on the CLI directly

remark -u lint -u lint-code-block-style readme.md

Or use this on the API:

 import {remark} from 'remark'
 import {reporter} from 'vfile-reporter'
 import remarkLint from 'remark-lint'
 import remarkLintCodeBlockStyle from 'remark-lint-code-block-style'

 remark()
   .use(remarkLint)
+  .use(remarkLintCodeBlockStyle)
   .process('_Emphasis_ and **importance**')
   .then((file) => {
     console.error(reporter(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