{"id":26224,"library":"remark-lint-list-item-bullet-indent","title":"remark-lint-list-item-bullet-indent","description":"remark-lint rule to warn when list item markers (bullets or numbers) are indented. The current stable version is 5.0.1, released as part of the remark-lint monorepo with regular updates. It enforces that list items start at column 1, preventing uncommon and hard-to-maintain indented list styles. Key differentiator: it only checks indentation of the marker itself, not content indentation, and is included in the `remark-preset-lint-recommended` preset. It is ESM-only, supports Node.js 16+, and ships TypeScript types.","status":"active","version":"5.0.1","language":"javascript","source_language":"en","source_url":"https://github.com/remarkjs/remark-lint#main","tags":["javascript","indent","item","lint","list","remark","remark-lint","remark-lint-rule","rule","typescript"],"install":[{"cmd":"npm install remark-lint-list-item-bullet-indent","lang":"bash","label":"npm"},{"cmd":"yarn add remark-lint-list-item-bullet-indent","lang":"bash","label":"yarn"},{"cmd":"pnpm add remark-lint-list-item-bullet-indent","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Plugin system; remark-lint-list-item-bullet-indent is a unified plugin.","package":"unified","optional":false},{"reason":"Provides the lint framework and message formatting.","package":"remark-lint","optional":false},{"reason":"Required to parse Markdown before linting.","package":"remark-parse","optional":true},{"reason":"Optional for fix or final output; included in many setups.","package":"remark-stringify","optional":true}],"imports":[{"note":"Package is ESM-only since v3. Use default import; the symbol is also the default export.","wrong":"const { remarkLintListItemBulletIndent } = require('remark-lint-list-item-bullet-indent')","symbol":"remarkLintListItemBulletIndent","correct":"import remarkLintListItemBulletIndent from 'remark-lint-list-item-bullet-indent'"},{"note":"The package exports a single default function; no named exports exist.","wrong":"import { default } from 'remark-lint-list-item-bullet-indent'","symbol":"default export","correct":"import remarkLintListItemBulletIndent from 'remark-lint-list-item-bullet-indent'"},{"note":"In Deno or browsers via esm.sh, the default export is used directly, not as a named export.","wrong":"import { remarkLintListItemBulletIndent } from 'https://esm.sh/remark-lint-list-item-bullet-indent@5'","symbol":"esm.sh usage","correct":"import remarkLintListItemBulletIndent from 'https://esm.sh/remark-lint-list-item-bullet-indent@5'"},{"note":"Package ships types but exposes no named types; the default import includes types automatically.","wrong":"import type { remarkLintListItemBulletIndent } from 'remark-lint-list-item-bullet-indent'","symbol":"TypeScript type imports","correct":"import remarkLintListItemBulletIndent from 'remark-lint-list-item-bullet-indent'"}],"quickstart":{"code":"import { read } from 'to-vfile';\nimport { reporter } from 'vfile-reporter';\nimport { unified } from 'unified';\nimport remarkParse from 'remark-parse';\nimport remarkStringify from 'remark-stringify';\nimport remarkLint from 'remark-lint';\nimport remarkLintListItemBulletIndent from 'remark-lint-list-item-bullet-indent';\n\nconst file = await read('example.md');\n\nawait unified()\n  .use(remarkParse)\n  .use(remarkStringify)\n  .use(remarkLint)\n  .use(remarkLintListItemBulletIndent)\n  .process(file);\n\nconsole.error(reporter(file));","lang":"typescript","description":"Shows how to integrate remark-lint-list-item-bullet-indent into a unified pipeline to lint a Markdown file for indented list markers."},"warnings":[{"fix":"Upgrade to Node.js 12+ and use remark-lint-list-item-bullet-indent@3+.","message":"Version 3.0.0 dropped support for Node.js < 12.","severity":"breaking","affected_versions":"<3.0.0"},{"fix":"Switch to ESM imports: use `import` instead of `require()`. If using CommonJS, consider dynamic import or stick with version 4.","message":"Version 5.0.0 became ESM-only; CJS require() no longer works.","severity":"breaking","affected_versions":">=5.0.0"},{"fix":"Use `import` or upgrade to 5.x pure ESM.","message":"Version 4.x was a transitional ESM/CJS hybrid; using require() with it triggered deprecation warnings.","severity":"deprecated","affected_versions":">=4.0.0 <5.0.0"},{"fix":"If you need to allow a specific indent (e.g., 2 spaces for nested list), this rule is not suitable; consider a custom plugin.","message":"The rule reports the number of spaces indented; it does not allow configuration of the expected indent count.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Ensure your task list items also start at column 0.","message":"The rule applies to both ordered and unordered list markers, including task list items (`- [ ]`).","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Always place `.use(remarkLint)` before this rule.","message":"The plugin must be used after `remarkLint` in the unified pipeline; otherwise, messages may not be captured.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Add `'remark-lint-list-item-bullet-indent'` to the plugins array, not a shorthand.","message":"When using with remark-cli, the rule name in config must match the npm package name exactly.","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Run `npm install remark-lint-list-item-bullet-indent` (or equivalent for yarn/pnpm).","cause":"Package not installed or not accessible in node_modules.","error":"Cannot find module 'remark-lint-list-item-bullet-indent'"},{"fix":"Use `import remarkLintListItemBulletIndent from 'remark-lint-list-item-bullet-indent'` or downgrade to version 4.","cause":"Using require() on an ESM-only version (>=5.0.0).","error":"TypeError: remarkLintListItemBulletIndent is not a function"},{"fix":"Either rename file to .mjs, add `\"type\": \"module\"` to package.json, or use dynamic import().","cause":"Running ESM code in a CommonJS file or environment without type: module.","error":"Error: Cannot use import statement outside a module"},{"fix":"Remove leading spaces before the marker (e.g., `  * Item` → `* Item`).","cause":"A list item marker is indented by spaces where the rule expects zero indent.","error":"Unexpected `2` spaces before list item, expected `0` spaces, remove them"},{"fix":"Upgrade Node.js to version 16+ or use the CJS-compatible version 4.x.","cause":"Using older Node.js (e.g., Node 14) with ESM-only package.","error":"SyntaxError: Unexpected token 'export'"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}