A CLI to lint and format MDX content.
- Installation
- Usage
- Configuration file
- API
- Examples
- Prettier
- Compatibility
- Related projects
- Sponsoring
- License
npm install mdxlintCheck all .mdx files for lint violations:
mdxlint . --frailTransform and format all .mdx files:
mdxlint . --outputFor more options, see:
mdxlint --helpThe 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-consistencyUnfortunately Prettier doesn’t support MDX 3. If you use Prettier, add the following to your
.prettierignore:
*.mdxThis 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.