What is remark-lint?
remark-lint is a plugin for remark, a Markdown processor powered by plugins. It provides a framework for analyzing and reporting on Markdown code quality issues, ensuring consistency and adherence to specified style guidelines.
What are remark-lint's main functionalities?
Linting Markdown Files
This feature allows you to lint Markdown files to ensure they adhere to specified style guidelines. The code sample demonstrates how to use remark-lint to process a simple Markdown string and report any issues.
const remark = require('remark');
const lint = require('remark-lint');
remark()
.use(lint)
.process('# Hello world!', function (err, file) {
console.error(report(err || file));
});
Custom Rules
remark-lint supports custom rules, allowing you to enforce specific style guidelines. The code sample shows how to use a custom rule (remark-lint-no-emphasis-as-heading) to lint a Markdown string.
const remark = require('remark');
const lint = require('remark-lint');
const noEmphasisAsHeading = require('remark-lint-no-emphasis-as-heading');
remark()
.use(lint)
.use(noEmphasisAsHeading)
.process('# Hello *world*!', function (err, file) {
console.error(report(err || file));
});
Configurable Presets
remark-lint provides configurable presets that bundle multiple rules together for convenience. The code sample demonstrates how to use the 'remark-preset-lint-recommended' preset to lint a Markdown string.
const remark = require('remark');
const lint = require('remark-lint');
const presetLintRecommended = require('remark-preset-lint-recommended');
remark()
.use(lint)
.use(presetLintRecommended)
.process('# Hello world!', function (err, file) {
console.error(report(err || file));
});
Other packages similar to remark-lint
markdownlint
markdownlint is a Node.js style checker and lint tool for Markdown files. It provides a set of rules to enforce consistent Markdown style and can be customized with configuration files. Compared to remark-lint, markdownlint is more focused on providing a comprehensive set of built-in rules and is often used as a standalone tool.
markdown-it
markdown-it is a Markdown parser that can be extended with plugins to add custom functionality, including linting. While markdown-it is primarily a parser, it can be combined with plugins to achieve similar linting capabilities as remark-lint. However, it is more flexible and less opinionated about style rules.
textlint
textlint is a text linting framework that supports multiple file formats, including Markdown. It allows users to define custom rules and plugins to enforce style guidelines. textlint is more versatile than remark-lint, as it can be used to lint various types of text files, not just Markdown.
remark plugin to support configuration comments for remark lint rules.
See the monorepo readme for more info on remark lint.
Contents
What is this?
This package is a unified (remark) plugin to add support for
configuration comments to control remark lint rule messages.
When should I use this?
This project is useful when you’re using remark lint rules and want to let
authors ignore messages in certain cases.
This package is already included in all our presets.
If you’re building a preset yourself, you should include this package.
Install
This package is ESM only.
In Node.js (version 12.20+, 14.14+, or 16.0+), install with npm:
npm install remark-lint
In Deno with Skypack:
import remarkLint from 'https://cdn.skypack.dev/remark-lint@9?dts'
In browsers with Skypack:
<script type="module">
import remarkLint from 'https://cdn.skypack.dev/remark-lint@9?min'
</script>
Use
On the API:
import {read} from 'to-vfile'
import {reporter} from 'vfile-reporter'
import {remark} from 'remark'
import remarkLint from 'remark-lint'
main()
async function main() {
const file = await remark()
.use(remarkLint)
.process(await read('example.md'))
console.error(reporter(file))
}
On the CLI:
remark --use remark-lint example.md
On the CLI in a config file (here a package.json
):
…
"remarkConfig": {
"plugins": [
…
+ "remark-lint",
…
]
}
…
API
This package exports no identifiers.
The default export is remarkLint
.
Add support for configuration comments.
There are no options.
See Ignore warnings in the monorepo readme for how to use it.
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