Package Exports
- mdxlint
Readme
mdxlint
A CLI to lint and format MDX content.
Table of Contents
- Installation
- Usage
- Configuration file
- API
- Examples
- Prettier
- Compatibility
- Related projects
- Sponsoring
- License
Installation
npm install mdxlintUsage
Check all .mdx files for lint violations:
mdxlint . --frailTransform and format all .mdx files:
mdxlint . --outputFor more options, see:
mdxlint --helpConfiguration file
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.
Plugins
The plugins property specifies which plugins or presets to load. All
remark plugins and
remark-lint rules are supported.
Settings
The settings property specifies how content is formatted. It accepts the same fields as the
options from
remark-stringify.
API
defineConfig(config)
A type-safe way to define a mdxlint configuration.
Arguments
config(Config) — The configuration.
Returns
The configuration.
mdxlint
A unified processor which can process MDX content.
Examples
Syntax extensions
The following .mdxlintrc.json file adds support for GFM
and frontmatter with TOML and YAML syntax.
{
"plugins": ["remark-gfm", ["remark-frontmatter", ["toml", "yaml"]]]
}Linting
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']
})Spell checking
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 })
]
]
}Consistent formatting
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-consistencyPrettier
Unfortunately Prettier doesn’t support MDX 3. If you use Prettier, add the following to your
.prettierignore:
*.mdxCompatibility
This project is compatible with Node.js 20 or greater.
Related projects
remark-clican lint and format markdown content.eslint-plugin-mdxcan check MDX files using ESLint. It can also apply remark rules via themdx/remarkrule.
Sponsoring
If you like this project, consider sponsoring me via GitHub Sponsors.