{"id":26288,"library":"remark-lint-table-pipes","title":"remark-lint-table-pipes","description":"A remark-lint rule that warns when GFM table rows lack initial or final pipe delimiters. Current stable version is 5.0.1. This is an ESM-only package for Node.js 16+. It is part of the remark-lint ecosystem and included in the markdown-style-guide preset. Unlike other table lint rules that check alignment or cell padding, this rule specifically enforces that every row starts and ends with a pipe character, which is recommended by the markdown style guide and automatically fixed by remark-stringify.","status":"active","version":"5.0.1","language":"javascript","source_language":"en","source_url":"https://github.com/remarkjs/remark-lint#main","tags":["javascript","lint","pipe","remark","remark-lint","remark-lint-rule","row","rule","table","typescript"],"install":[{"cmd":"npm install remark-lint-table-pipes","lang":"bash","label":"npm"},{"cmd":"yarn add remark-lint-table-pipes","lang":"bash","label":"yarn"},{"cmd":"pnpm add remark-lint-table-pipes","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Required as a peer dependency for lint rule integration","package":"remark-lint","optional":true},{"reason":"Required to parse GFM tables; without it, the rule has no effect","package":"remark-gfm","optional":true}],"imports":[{"note":"Package is ESM-only; require() will throw a MODULE_NOT_FOUND error.","wrong":"const remarkLintTablePipes = require('remark-lint-table-pipes')","symbol":"default","correct":"import remarkLintTablePipes from 'remark-lint-table-pipes'"},{"note":"The package exports a default export, not a named export.","wrong":"import { remarkLintTablePipes } from 'remark-lint-table-pipes'","symbol":"remarkLintTablePipes","correct":"import remarkLintTablePipes from 'remark-lint-table-pipes'"},{"note":"unified is a named export from the unified package.","wrong":"import unified from 'unified'","symbol":"Unified","correct":"import { unified } from 'unified'"}],"quickstart":{"code":"import { unified } from 'unified';\nimport remarkParse from 'remark-parse';\nimport remarkStringify from 'remark-stringify';\nimport remarkLint from 'remark-lint';\nimport remarkLintTablePipes from 'remark-lint-table-pipes';\nimport { read } from 'to-vfile';\nimport { reporter } from 'vfile-reporter';\n\nconst file = await read('example.md');\n\nawait unified()\n  .use(remarkParse)\n  .use(remarkLint)\n  .use(remarkLintTablePipes)\n  .use(remarkStringify)\n  .process(file);\n\nconsole.error(reporter(file));","lang":"typescript","description":"Shows how to use the remark-lint-table-pipes rule programmatically with unified."},"warnings":[{"fix":"Use import syntax or dynamic import(). If you must use CommonJS, pin to version 2.x.","message":"Package is ESM-only since v3.0.0. require() will not work.","severity":"breaking","affected_versions":">=3.0.0"},{"fix":"If you previously relied on the rule ignoring missing opening pipes, update your markdown to include pipes at both ends of each row.","message":"The rule now checks both opening and closing pipes. Previous versions only checked closing pipes.","severity":"breaking","affected_versions":">=3.0.0"},{"fix":"Remove any configuration that passes options; the rule no longer accepts options.","message":"The option 'start' and 'end' have been removed. Now the rule always checks both.","severity":"deprecated","affected_versions":">=3.0.0"},{"fix":"Ensure you use .use(remarkGfm) before .use(remarkLintTablePipes).","message":"The rule only works if remark-gfm is loaded before remark-lint-table-pipes in the unified pipeline.","severity":"gotcha","affected_versions":"all"},{"fix":"Always include a header separator row for tables to be parsed correctly.","message":"Tables without header separators (e.g., only one row) are not detected as tables by remark-gfm, so the rule will not warn.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Change to import statement: import remarkLintTablePipes from 'remark-lint-table-pipes'","cause":"Package is ESM-only and cannot be imported via require().","error":"Error [ERR_REQUIRE_ESM]: require() of ES Module /path/to/remark-lint-table-pipes/index.js from /path/to/your/file.js not supported."},{"fix":"Use default import: import remarkLintTablePipes from 'remark-lint-table-pipes'","cause":"Trying to use a named import from a package that only has a default export.","error":"SyntaxError: The requested module 'remark-lint-table-pipes' does not provide an export named 'remarkLintTablePipes'"},{"fix":"Use default import: import remarkLintTablePipes from 'remark-lint-table-pipes' (not require).","cause":"The imported value is not the plugin but an object with a default property (common when mixing CJS/ESM).","error":"TypeError: remarkLintTablePipes is not a function"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}