Preset of remark-lint
rules that follow an opinionated style guide.
Contents
What is this?
This package is a unified (remark) preset, specifically consisting of
remark-lint
rules.
Lint rules check markdown code style.
When should I use this?
You can use this package to check that markdown follows the
Markdown Style Guide.
This uses the following style guide option system: wrap:space
,
header:atx
, list-marker:hyphen
, list-space:mixed
, and code:fenced
.
space-sentence
Both space-sentence:1
and space-sentence:2
are not supported by
remark-lint
as they relate to prose rather than markdown syntax.
You could set-up
remark-retext
with
retext-sentence-spacing
to check this.
wrap
wrap:inner-sentence
and wrap:sentence
are not supported by remark-lint
.
The default is wrap:space
.
To use wrap:no
, turn off remark-lint-maximum-line-length
like so:
"plugins": [
…
"remark-preset-lint-markdown-style-guide",
+ ["remark-lint-maximum-line-length", false],
…
]
The default is header:atx
.
To use header:setext
, change the setting for remark-lint-heading-style
like so:
"plugins": [
…
"remark-preset-lint-markdown-style-guide",
+ ["remark-lint-heading-style", "setext"],
…
]
list-marker
The default is list-marker:hyphen
.
For list-marker:asterisk
or list-marker:plus
, change the setting for
remark-lint-unordered-list-marker-style
like so:
"plugins": [
…
"remark-preset-lint-markdown-style-guide",
+ ["remark-lint-unordered-list-marker-style", "*"],
…
]
list-space
The default is list-space:mixed
.
For list-space:1
, change the setting for remark-lint-list-item-indent
like so:
"plugins": [
…
"remark-preset-lint-markdown-style-guide",
+ ["remark-lint-list-item-indent", "space"],
…
]
code
The default is code:fenced
.
For code:indented
, change the setting for remark-lint-code-block-style
like so:
"plugins": [
…
"remark-preset-lint-markdown-style-guide",
+ ["remark-lint-code-block-style", "indented"],
…
]
Rules
This preset configures remark-lint
with the following rules:
Install
This package is ESM only.
In Node.js (version 12.20+, 14.14+, or 16.0+), install with npm:
npm install remark-preset-lint-markdown-style-guide
In Deno with esm.sh
:
import remarkPresetLintMarkdownStyleGuide from 'https://esm.sh/remark-preset-lint-markdown-style-guide@5'
In browsers with esm.sh
:
<script type="module">
import remarkPresetLintMarkdownStyleGuide from 'https://esm.sh/remark-preset-lint-markdown-style-guide@5?bundle'
</script>
Use
On the API:
import {read} from 'to-vfile'
import {reporter} from 'vfile-reporter'
import {remark} from 'remark'
import remarkPresetLintMarkdownStyleGuide from 'remark-preset-lint-markdown-style-guide'
main()
async function main() {
const file = await remark()
.use(remarkPresetLintMarkdownStyleGuide)
.process(await read('example.md'))
console.error(reporter(file))
}
On the CLI:
remark --use remark-preset-lint-markdown-style-guide example.md
On the CLI in a config file (here a package.json
):
…
"remarkConfig": {
"plugins": [
…
+ "remark-preset-lint-markdown-style-guide",
…
]
}
…
API
This package exports no identifiers.
The default export is remarkPresetLintMarkdownStyleGuide
.
Use the preset.
Presets don’t have options.
You can reconfigure rules in them by using the afterwards with different
options.
Compatibility
Projects maintained by the unified collective are compatible with all maintained
versions of Node.js.
As of now, that is Node.js 12.20+, 14.14+, and 16.0+.
Our projects sometimes work with older versions, but this is not guaranteed.
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