{"id":19832,"library":"eslint-plugin-md","title":"eslint-plugin-md","description":"An ESLint plugin for linting and fixing Markdown files using remark-lint under the hood. Version 1.0.19 is the latest stable release, with no regular release cadence. Unlike eslint-plugin-markdown (which only lints JavaScript inside markdown), eslint-plugin-md lints the markdown content itself, supporting style enforcement and integration with prettier. It provides a single ESLint rule 'md/remark' that wraps remark-lint rules, and requires a custom parser 'markdown-eslint-parser'.","status":"active","version":"1.0.19","language":"javascript","source_language":"en","source_url":"https://github.com/leo-buneev/eslint-plugin-md","tags":["javascript","markdown","md","eslint-markdown","eslint","eslintplugin","eslint-plugin"],"install":[{"cmd":"npm install eslint-plugin-md","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-plugin-md","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-plugin-md","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency; required as a host for the plugin.","package":"eslint","optional":false},{"reason":"Underlying linting engine; used to enforce markdown style rules.","package":"remark-lint","optional":false}],"imports":[{"note":"Must include 'plugin:' prefix in extends array. This is a common ESLint plugin convention.","wrong":"module.exports = { extends: ['md/recommended'] }","symbol":"plugin","correct":"module.exports = { extends: ['plugin:md/recommended'] }"},{"note":"The rule name is 'md/remark' (with the plugin prefix as namespace). Just 'remark' won't work.","wrong":"module.exports = { rules: { remark: ['error', {}] } }","symbol":"rules (md/remark)","correct":"module.exports = { rules: { 'md/remark': ['error', { /* remark options */ }] } }"},{"note":"Parser must be specified inside an override for markdown files only, not globally, to avoid conflicts with JS files.","wrong":"module.exports = { parser: 'markdown-eslint-parser' }","symbol":"parser","correct":"module.exports = { overrides: [{ files: ['*.md'], parser: 'markdown-eslint-parser' }] }"}],"quickstart":{"code":"// Install dependencies\nnpm install eslint eslint-plugin-md markdown-eslint-parser --save-dev\n\n// .eslintrc.js\nmodule.exports = {\n  extends: ['plugin:md/recommended'],\n  overrides: [\n    {\n      files: ['*.md'],\n      parser: 'markdown-eslint-parser',\n    },\n  ],\n};\n\n// Lint markdown files (CLI)\neslint . --ext js,md","lang":"javascript","description":"Minimal setup to lint markdown files with default remark rules using eslint-plugin-md."},"warnings":[{"fix":"Add --ext js,md to eslint command or set eslint.validate to ['markdown'] in VSCode settings.","message":"By default ESLint does not lint .md files; must use --ext js,md on CLI or configure VSCode.","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Use overrides with files: ['*.md'] and parser: 'markdown-eslint-parser' inside that override.","message":"Parser 'markdown-eslint-parser' must be set in an overrides section for '*.md' files only, not globally.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Configure rule as 'md/remark': ['error', { /* remark options */ }].","message":"The plugin exports a single rule 'md/remark'; custom remark options are passed as second argument to that rule.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Add an override for files: ['*.md.js'] to apply different rules for JS snippets inside markdown.","message":"JS code within fenced code blocks in .md files is linted with the same base ESLint config unless overridden.","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"search_vec":"'1.0.19':22 'cadenc':32 'content':51 'custom':76 'enforc':55 'eslint':2,6,35,45,64,80,86,88,91 'eslint-markdown':85 'eslint-plugin':90 'eslint-plugin-markdown':34 'eslint-plugin-md':1,44 'eslintplugin':89 'file':13 'fix':11 'hood':20 'insid':42 'integr':57 'javascript':41,82 'latest':25 'lint':9,17,40,48,71 'markdown':12,37,43,50,79,83,87 'markdown-eslint-pars':78 'md':4,47,84 'md/remark':66 'parser':77,81 'plugin':3,7,36,46,92 'prettier':59 'provid':61 'regular':30 'releas':27,31 'remark':16,70 'remark-lint':15,69 'requir':74 'rule':65,72 'singl':63 'stabl':26 'style':54 'support':53 'unlik':33 'use':14 'version':21 'wrap':68","created_at":"2026-04-25T11:19:54.126955+00:00","updated_at":"2026-04-25T11:19:54.126955+00:00","problems":[{"fix":"Run npm install eslint-plugin-md --save-dev and ensure extends includes 'plugin:md/recommended'.","cause":"Plugin not installed or not loaded correctly in ESLint config.","error":"ESLint couldn't find the plugin \"eslint-plugin-md\"."},{"fix":"Set rule as 'md/remark': ['error', { /* options */ }] (array with two elements).","cause":"Rule configuration passed incorrectly (maybe extra array nesting).","error":"Configuration for rule \"md/remark\" is invalid: Value \"[object Object]\" is not a valid severity."},{"fix":"Run npm install markdown-eslint-parser --save-dev.","cause":"markdown-eslint-parser not installed.","error":"Error: Cannot find module 'markdown-eslint-parser'"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":"","cli_version":null,"type":"library","homepage":null,"github":"https://github.com/leo-buneev/eslint-plugin-md","docs":null,"changelog":null,"pypi":null,"npm":"https://www.npmjs.com/package/eslint-plugin-md","openapi_spec":null,"status_page":null,"smithery":null,"categories":["testing"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-17","next_check":"2026-07-24","install_tag":null}}