{"id":26285,"library":"remark-lint-strikethrough-marker","title":"remark-lint-strikethrough-marker","description":"remark-lint rule to enforce consistent GFM strikethrough markers (one tilde vs two). Current stable version is 3.0.1, ESM-only, requires Node.js 16+. Part of the remark-lint monorepo, ships TypeScript definitions. Unopinionated: default 'consistent' detects the first style and warns on deviations. Unlike general Markdown linting, this specifically targets the strikethrough marker count, a common source of inconsistency when using remark-gfm.","status":"active","version":"3.0.1","language":"javascript","source_language":"en","source_url":"https://github.com/remarkjs/remark-lint#main","tags":["javascript","lint","marker","remark","remark-lint","remark-lint-rule","rule","strikethrough","typescript"],"install":[{"cmd":"npm install remark-lint-strikethrough-marker","lang":"bash","label":"npm"},{"cmd":"yarn add remark-lint-strikethrough-marker","lang":"bash","label":"yarn"},{"cmd":"pnpm add remark-lint-strikethrough-marker","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency providing the linting framework and report generation","package":"remark-lint","optional":false},{"reason":"Required to enable GFM strikethrough syntax in parsing; must be added separately","package":"remark-gfm","optional":true}],"imports":[{"note":"Default export only, no named export.","wrong":"import { remarkLintStrikethroughMarker } from 'remark-lint-strikethrough-marker'","symbol":"remarkLintStrikethroughMarker","correct":"import remarkLintStrikethroughMarker from 'remark-lint-strikethrough-marker'"},{"note":"Available as a type import (TypeScript).","wrong":"import { Marker } from 'remark-lint-strikethrough-marker'","symbol":"Marker","correct":"import type { Marker } from 'remark-lint-strikethrough-marker'"},{"note":"Available as a type import (TypeScript).","wrong":"import { Options } from 'remark-lint-strikethrough-marker'","symbol":"Options","correct":"import type { Options } from 'remark-lint-strikethrough-marker'"}],"quickstart":{"code":"import { unified } from 'unified'\nimport remarkParse from 'remark-parse'\nimport remarkStringify from 'remark-stringify'\nimport remarkLint from 'remark-lint'\nimport remarkLintStrikethroughMarker from 'remark-lint-strikethrough-marker'\nimport remarkGfm from 'remark-gfm'\nimport { read } from 'to-vfile'\nimport { reporter } from 'vfile-reporter'\n\nconst file = await unified()\n  .use(remarkParse)\n  .use(remarkGfm)\n  .use(remarkLint)\n  .use(remarkLintStrikethroughMarker, '~~')\n  .use(remarkStringify)\n  .process(await read('example.md'))\n\nconsole.error(reporter(file))","lang":"typescript","description":"Lint an MD file with remark-lint-strikethrough-marker enforcing two-tilde style, including GFM and reporter."},"warnings":[{"fix":"Switch to ESM, use import syntax, or upgrade Node.js to 16+.","message":"ESM-only package: requires Node.js 16+ and cannot be used with CommonJS require()","severity":"breaking","affected_versions":">=3.0.0"},{"fix":"Manually add the plugin to your remark-lint configuration.","message":"Plugin does not provide a preset; will not be auto-configured by remark-preset-lint-consistent or similar","severity":"deprecated","affected_versions":"*"},{"fix":"Ensure .use(remarkGfm) is called before the lint rule.","message":"Requires remark-gfm to be registered before remark-lint-strikethrough-marker, otherwise strikethrough syntax is not parsed","severity":"gotcha","affected_versions":"*"},{"fix":"Use import type { Marker, Options } from 'remark-lint-strikethrough-marker'.","message":"TypeScript types (Marker, Options) are only available via import type, not value imports","severity":"gotcha","affected_versions":"*"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Add .use(remarkGfm) before .use(remarkLintStrikethroughMarker).","cause":"remark-gfm not added before the lint rule","error":"TypeError: Cannot read properties of undefined (reading 'strikethrough')"},{"fix":"Use import syntax or set type: module in package.json.","cause":"Trying to require() an ESM-only package","error":"Error [ERR_REQUIRE_ESM]: require() of ES Module not supported"},{"fix":"Use import remarkLintStrikethroughMarker from 'remark-lint-strikethrough-marker' (default import).","cause":"Using named import instead of default import","error":"Module '\"remark-lint-strikethrough-marker\"' has no exported member 'remarkLintStrikethroughMarker'"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}