markdown-table-repair
v1.0.0
Published
A zero-dependency utility that fixes broken Markdown tables generated by AI LLMs
Maintainers
Readme
markdown-table-repair
🩹 A zero-dependency utility that fixes broken Markdown tables generated by AI LLMs.
The Problem
When AI models stream responses containing Markdown tables, the output often arrives incomplete or malformed:
- Missing closing pipes
| - Mismatched column counts
- Incomplete separator rows
|---| - Truncated rows mid-stream
This causes Markdown parsers to crash, UI components to break, and users to see garbled output.
The Solution
One line of code to heal the markdown.
const fixed = repairTable(brokenMarkdown);markdown-table-repair intelligently analyzes and reconstructs broken table structures, making it perfect for:
- Streaming AI responses (ChatGPT, Claude, Gemini, etc.)
- Real-time Markdown renderers
- Chat interfaces displaying LLM output
Installation
npm install markdown-table-repairUsage
Works everywhere — Node.js, browsers, and modern bundlers.
Node.js (CommonJS)
const { repairTable } = require('markdown-table-repair');
const broken = `| Name | Age
| Alice | 25
| Bob`;
const fixed = repairTable(broken);
console.log(fixed);ES Modules (React, Next.js, Vite)
import { repairTable } from 'markdown-table-repair';
function ChatMessage({ content }) {
const safeContent = repairTable(content);
return <MarkdownRenderer>{safeContent}</MarkdownRenderer>;
}Browser (CDN)
<script src="https://unpkg.com/markdown-table-repair/dist/index.umd.js"></script>
<script>
const { repairTable } = window.markdownTableRepair;
const fixed = repairTable(brokenTableString);
document.getElementById('output').innerText = fixed;
</script>Before & After
❌ Before (Broken)
| Feature | Status
|---|
| Streaming Support | ✅
| Zero Dependencies
| Universal Module |✅ After (Repaired)
| Feature | Status |
|---|---|
| Streaming Support | ✅ |
| Zero Dependencies | |
| Universal Module | |The table is now valid Markdown with:
- Consistent column counts
- Properly closed pipes
- Complete separator row
Key Features
- 🪶 Zero Dependencies — Lightweight and fast. No bloat in your
node_modules. - ⚡ Streaming-Ready — Handles partial, incomplete tables mid-stream gracefully.
- 🌐 Universal (UMD) — Works in Node.js, ES Modules, and browsers via CDN.
- 🔒 Non-Destructive — Only repairs tables; leaves the rest of your Markdown untouched.
- 📘 TypeScript Support — Includes type definitions out of the box.
API Reference
repairTable(input)
Repairs broken Markdown tables in the provided string.
Parameters
| Parameter | Type | Description |
|-----------|----------|----------------------------------------------------------|
| input | string | The Markdown string containing potentially broken tables |
Returns
| Type | Description |
|----------|----------------------------------------------|
| string | The Markdown string with all tables repaired |
Example
import { repairTable } from 'markdown-table-repair';
const input = `
# My Document
| Header 1 | Header 2
|---|
| Cell 1 | Cell 2
| Cell 3
Some other content here.
`;
const output = repairTable(input);
console.log(output);Output:
# My Document
| Header 1 | Header 2 |
|---|---|
| Cell 1 | Cell 2 |
| Cell 3 | |
Some other content here.Use Cases
- AI Chat Interfaces — Safely render streamed Markdown from LLMs
- Documentation Tools — Clean up auto-generated tables
- Markdown Editors — Provide real-time table validation
- Content Pipelines — Sanitize Markdown before publishing
License
MIT
