github actions codecov npm version npm downloads
A CLI to lint and format MDX content.
- Installation
- Usage
- Configuration file
- API
- Examples
- Prettier
- Compatibility
- Related projects
- Sponsoring
- License
npm install mdxlint
Check all .mdx files for lint violations:
mdxlint . --frailTransform and format all .mdx files:
mdxlint . --outputFor more options, see:
mdxlint --help
The mdxlint CLI loads one the following configuration files:
- The
mdxlintkey inpackage.json .mdxlintrc.mdxlintrc.json.mdxlintrc.js.mdxlintrc.cjs.mdxlintrc.mjs.mdxlintrc.yml.mdxlintrc.yaml
Ignore patterns can be specified in .mdxlintignore.
The plugins property specifies which plugins or presets to load. All
remark plugins and
remark-lint rules are supported.
The settings property specifies how content is formatted. It accepts the same fields as the
options from
remark-stringify.
A type-safe way to define a mdxlint configuration.
config(Config) — The configuration.
The configuration.
A unified processor which can process MDX content.
The following .mdxlintrc.json file adds support for GFM
and frontmatter with TOML and YAML syntax.
{
"plugins": ["remark-gfm", ["remark-frontmatter", ["toml", "yaml"]]]
}The following .mdxlintrc.js file reports errors if link definitions or JSX attributes are not
sorted.
import { defineConfig } from 'mdxlint' export default defineConfig({ plugins: ['remark-lint-definition-sort', 'remark-lint-mdx-jsx-attribute-sort'] })
The following .mdxlintrc.mjs file does spell checking based on
retext plugins.
/** * @import { Config } from 'mdxlint' */ import dictionary from 'dictionary-en' import remarkRetext from 'remark-retext' import retextEnglish from 'retext-english' import retextSpell from 'retext-spell' import retextSyntaxURLs from 'retext-syntax-urls' import { unified } from 'unified' /** @type {Config} */ export default { plugins: [ [ remarkRetext, unified().use(retextEnglish).use(retextSyntaxURLs).use(retextSpell, { dictionary }) ] ] }
The following .mdxlintrc.yaml file ensures the file is always formatted, where a hyphen (-) is
used for bullet lists. It also makes sure the table of contents is always up-to-date.
settings: bullet: '-' plugins: - remark-toc - unified-consistency
Unfortunately Prettier doesn’t support MDX 3. If you use Prettier, add the following to your
.prettierignore:
*.mdx
This project is compatible with Node.js 20 or greater.
remark-clican lint and format markdown content.eslint-plugin-mdxcan check MDX files using ESLint. It can also apply remark rules via themdx/remarkrule.mdxlint-language-serverprovides a language server for mdxlint.vscode-mdxlintprovides a Visual Studio Code extension for mdxlint.
If you like this project, consider sponsoring me via GitHub Sponsors.