{"id":27341,"library":"remark-lint-no-repeat-punctuation","title":"remark-lint-no-repeat-punctuation","description":"A remark-lint plugin that warns when punctuation characters are repeated in series, such as multiple exclamation marks or ellipsis dots. Version 0.1.4, last updated in 2017, with no recent releases. It is a niche plugin for CJK and punctuation normalization, used with remark-lint. Alternative: remark-lint-no-multiple-full-stops but this covers more characters.","status":"maintenance","version":"0.1.4","language":"javascript","source_language":"en","source_url":"https://github.com/laysent/remark-lint-plugins","tags":["javascript","remark","remark-lint","lint","rule"],"install":[{"cmd":"npm install remark-lint-no-repeat-punctuation","lang":"bash","label":"npm"},{"cmd":"yarn add remark-lint-no-repeat-punctuation","lang":"bash","label":"yarn"},{"cmd":"pnpm add remark-lint-no-repeat-punctuation","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency; must be installed to use this rule","package":"remark-lint","optional":false},{"reason":"used internally for rule infrastructure","package":"unified-lint-rule","optional":true}],"imports":[{"note":"Package uses CommonJS default export; tree-shaking not supported.","wrong":"import { noRepeatPunctuation } from 'remark-lint-no-repeat-punctuation'","symbol":"default","correct":"import noRepeatPunctuation from 'remark-lint-no-repeat-punctuation'"},{"note":"CommonJS require yields the plugin function directly; no named exports.","wrong":"const { remarkLintNoRepeatPunctuation } = require('remark-lint-no-repeat-punctuation')","symbol":"remarkLintNoRepeatPunctuation","correct":"const remarkLintNoRepeatPunctuation = require('remark-lint-no-repeat-punctuation')"},{"note":"Directly pass the required module; no .default needed with require.","wrong":".use(require('remark-lint-no-repeat-punctuation').default)","symbol":"plugin","correct":".use(require('remark-lint-no-repeat-punctuation'))"}],"quickstart":{"code":"import { remark } from 'remark';\nimport remarkLint from 'remark-lint';\nimport noRepeatPunctuation from 'remark-lint-no-repeat-punctuation';\nimport reporter from 'vfile-reporter';\n\nremark()\n  .use(remarkLint)\n  .use(noRepeatPunctuation)\n  .process('Hello!!!', (err, file) => {\n    console.error(reporter(err || file));\n  });\n// Output: no-file:1:8: Should not repeat \"!\"","lang":"typescript","description":"Demonstrates using the plugin with remark-lint to detect repeated punctuation."},"warnings":[{"fix":"If you need to customize punctuation set, fork the package or use a different rule.","message":"Default punctuation list includes Chinese/Japanese punctuation (！～。，·？) and ASCII equivalents (!~.,?). Only these are flagged; custom list not supported.","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"None; behavior by design.","message":"Plugin only warns about repeats of the same character; does not detect mixed repeated punctuation (e.g., !?!) or sequences like ... (three dots are handled but as individual repeats).","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Consider using remark-lint-no-multiple-full-stops for similar functionality or check compatibility with your unified version.","message":"Package has not been updated since 2017; may not work with newer versions of remark/unified ecosystem.","severity":"deprecated","affected_versions":">=0.1.4"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"npm install remark-lint-no-repeat-punctuation","cause":"Package not installed or not in node_modules.","error":"Error: Cannot find module 'remark-lint-no-repeat-punctuation'"},{"fix":"Use remark@^9 or update to unified@^8 and use .use() correctly.","cause":"Unified/remark version mismatch; v10+ changed API.","error":"TypeError: remark(...).use is not a function"},{"fix":"Use require('remark-lint-no-repeat-punctuation') directly without .default.","cause":"Plugin required incorrectly; not a function.","error":"Warning: Plugins must be functions or tuples, got object"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}