{"_id":"@truto/turndown-plugin-gfm","_rev":"6-47bd6f8dbe6a1be967e9136f4b96e2e5","name":"@truto/turndown-plugin-gfm","dist-tags":{"latest":"1.0.5"},"versions":{"1.0.0":{"name":"@truto/turndown-plugin-gfm","version":"1.0.0","keywords":["turndown","turndown-plugin","html-to-markdown","html","markdown","github-flavored-markdown","gfm","table-conversion","performance"],"author":{"name":"Truto","email":"eng@truto.one"},"license":"MIT","_id":"@truto/turndown-plugin-gfm@1.0.0","maintainers":[{"name":"truto","email":"eng@truto.one"}],"homepage":"https://github.com/trutohq/turndown-plugin-gfm#readme","bugs":{"url":"https://github.com/trutohq/turndown-plugin-gfm/issues"},"dist":{"shasum":"d7c0561904f66a8bc043d427ec93a775e3e48567","tarball":"https://registry.npmjs.org/@truto/turndown-plugin-gfm/-/turndown-plugin-gfm-1.0.0.tgz","fileCount":6,"integrity":"sha512-tv9VkWg0N5qEotUYvHVIeffeeG22RS+H8w52X2vIB7QK40TLzLualgFaZiqwdCgj+j3hMhUj9SyEjQOIHrEy2g==","signatures":[{"sig":"MEUCIBhseGOps++bg+CS/C7CyuPyUP3Tyz6J/wrSlSr7IuwBAiEAh++QIGJjirfx5xOYu67v+BzkDfY3ub/1Tdxw1gjFmt0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29998},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","volta":{"node":"22.17.1"},"module":"./lib/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"}},"gitHead":"ecbab4189ef15a362042e671f3fbff7d12f1ffcd","scripts":{"dev":"vitest","lint":"eslint src test --ext .js","test":"vitest","build":"vite build","lint:fix":"eslint src test --ext .js --fix","test:run":"vitest run","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"truto","email":"eng@truto.one"},"repository":{"url":"git+https://github.com/trutohq/turndown-plugin-gfm.git","type":"git"},"_npmVersion":"10.9.2","description":"Enhanced Turndown plugin for GitHub Flavored Markdown with improved table conversion and performance.","directories":{},"_nodeVersion":"22.17.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"7.0.5","eslint":"9.31.0","vitest":"3.2.4","turndown":"7.2.0","typescript":"5.8.3","@types/turndown":"5.0.5","@vitest/coverage-v8":"3.2.4"},"peerDependencies":{"turndown":"^7.0.0"},"optionalDependencies":{"@rollup/rollup-linux-x64-gnu":"4.45.1"},"_npmOperationalInternal":{"tmp":"tmp/turndown-plugin-gfm_1.0.0_1753192608968_0.5236618326742979","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@truto/turndown-plugin-gfm","version":"1.0.1","keywords":["turndown","turndown-plugin","html-to-markdown","html","markdown","github-flavored-markdown","gfm","table-conversion","performance"],"author":{"name":"Truto","email":"eng@truto.one"},"license":"MIT","_id":"@truto/turndown-plugin-gfm@1.0.1","maintainers":[{"name":"truto","email":"eng@truto.one"}],"homepage":"https://github.com/trutohq/turndown-plugin-gfm#readme","bugs":{"url":"https://github.com/trutohq/turndown-plugin-gfm/issues"},"dist":{"shasum":"f3ca82a6e26158721a91d5938497f2d867191e16","tarball":"https://registry.npmjs.org/@truto/turndown-plugin-gfm/-/turndown-plugin-gfm-1.0.1.tgz","fileCount":6,"integrity":"sha512-HMPmWpBBCbs+8wbLz5PL4ocD9bzm/jP3mJsyUxfLBS0+UVqbgIk19JJ9okob6DtNo7AKTWuy4TJizKFsQR+Otw==","signatures":[{"sig":"MEYCIQCJiTWCQRm8lc0qgbdxRXmQ+g7kTkkoxEmFTx2ieE3fyQIhAPPVfhrEsUZs/gqGt4l6OQ/nMZN8SWVpGqwdJPFvJ1nl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30068},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","volta":{"node":"22.17.1"},"module":"./lib/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js","require":"./lib/index.js"}},"gitHead":"8eead5d87f7ba34f613b9a21e24e7c1d3c3a4e05","scripts":{"dev":"vitest","lint":"eslint src test --ext .js","test":"vitest","build":"vite build","lint:fix":"eslint src test --ext .js --fix","test:run":"vitest run","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"truto","email":"eng@truto.one"},"repository":{"url":"git+https://github.com/trutohq/turndown-plugin-gfm.git","type":"git"},"_npmVersion":"10.9.2","description":"Enhanced Turndown plugin for GitHub Flavored Markdown with improved table conversion and performance.","directories":{},"_nodeVersion":"22.17.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"7.0.5","eslint":"9.31.0","vitest":"3.2.4","turndown":"7.2.0","typescript":"5.8.3","@types/turndown":"5.0.5","@vitest/coverage-v8":"3.2.4"},"peerDependencies":{"turndown":"^7.0.0"},"optionalDependencies":{"@rollup/rollup-linux-x64-gnu":"4.45.1"},"_npmOperationalInternal":{"tmp":"tmp/turndown-plugin-gfm_1.0.1_1753699884378_0.41088294040853346","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@truto/turndown-plugin-gfm","version":"1.0.2","keywords":["turndown","turndown-plugin","html-to-markdown","html","markdown","github-flavored-markdown","gfm","table-conversion","performance"],"author":{"name":"Truto","email":"eng@truto.one"},"license":"MIT","_id":"@truto/turndown-plugin-gfm@1.0.2","maintainers":[{"name":"truto","email":"eng@truto.one"}],"homepage":"https://github.com/trutohq/turndown-plugin-gfm#readme","bugs":{"url":"https://github.com/trutohq/turndown-plugin-gfm/issues"},"dist":{"shasum":"cb97beb90fc295c2b9e9cf0e91c643027e6fd6c5","tarball":"https://registry.npmjs.org/@truto/turndown-plugin-gfm/-/turndown-plugin-gfm-1.0.2.tgz","fileCount":6,"integrity":"sha512-EayTVTfRg4cTIPTIwC7bwY4jvCy4lz2V4NBDf1OHPr0fH044K5xs1LRy5tcjspOrL1do7FerVw2iqBglO2gxlg==","signatures":[{"sig":"MEYCIQCm0matq4KKcyA6Wl/f5zDZEpQ4iXLNR6V9FvUEDaWIOAIhAOz97p/sEyOSI6v4JEUe0qVvxH1RTkhLfqeWVoJpdREq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30067},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","volta":{"node":"22.17.1"},"module":"./lib/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js","require":"./lib/index.js"}},"gitHead":"50cd897602ffcb92bef5daf06bf63ffdd64bd4a1","scripts":{"dev":"vitest","lint":"eslint src test --ext .js","test":"vitest","build":"vite build","lint:fix":"eslint src test --ext .js --fix","test:run":"vitest run","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"truto","email":"eng@truto.one"},"repository":{"url":"git+https://github.com/trutohq/turndown-plugin-gfm.git","type":"git"},"_npmVersion":"10.9.2","description":"Enhanced Turndown plugin for GitHub Flavored Markdown with improved table conversion and performance.","directories":{},"_nodeVersion":"22.17.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"7.0.5","eslint":"9.31.0","vitest":"3.2.4","turndown":"7.2.0","typescript":"5.8.3","@types/turndown":"5.0.5","@vitest/coverage-v8":"3.2.4"},"peerDependencies":{"turndown":"^7.0.0"},"optionalDependencies":{"@rollup/rollup-linux-x64-gnu":"4.45.1"},"_npmOperationalInternal":{"tmp":"tmp/turndown-plugin-gfm_1.0.2_1753700158361_0.035671901846697995","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@truto/turndown-plugin-gfm","version":"1.0.3","keywords":["turndown","turndown-plugin","html-to-markdown","html","markdown","github-flavored-markdown","gfm","table-conversion","performance"],"author":{"name":"Truto","email":"eng@truto.one"},"license":"MIT","_id":"@truto/turndown-plugin-gfm@1.0.3","maintainers":[{"name":"truto","email":"eng@truto.one"}],"homepage":"https://github.com/trutohq/turndown-plugin-gfm#readme","bugs":{"url":"https://github.com/trutohq/turndown-plugin-gfm/issues"},"dist":{"shasum":"3d2abd31a89200773764a94d867e96d5c4f4c707","tarball":"https://registry.npmjs.org/@truto/turndown-plugin-gfm/-/turndown-plugin-gfm-1.0.3.tgz","fileCount":6,"integrity":"sha512-hPRuRSogYnjyRKBAHCE3YwR1VczFN2lshUMpsSl+Asb77rD52KrdkO0zWipX/1ikgx8GiA1qytPs7r/rgKd9Sg==","signatures":[{"sig":"MEQCIGFMv2HIXjECoP+EJtdiM4DcW0dMOhyBr5neV2KRESHzAiArBFbLbZ7gd2Ox1EpVrJh/2FFcu9oftU8WUpOxgCMkNA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30296},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","volta":{"node":"22.17.1"},"module":"./lib/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js","require":"./lib/index.js"}},"gitHead":"db8bdb792eb814816b3933d569e3d595fe5a62b8","scripts":{"dev":"vitest","lint":"eslint src test --ext .js","test":"vitest","build":"vite build","lint:fix":"eslint src test --ext .js --fix","test:run":"vitest run","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"truto","email":"eng@truto.one"},"repository":{"url":"git+https://github.com/trutohq/turndown-plugin-gfm.git","type":"git"},"_npmVersion":"10.9.2","description":"Enhanced Turndown plugin for GitHub Flavored Markdown with improved table conversion and performance.","directories":{},"resolutions":{"rollup":"4.61.0","esbuild":"0.28.1","flatted":"3.4.2","js-yaml":"4.3.0","postcss":"8.5.18","minimatch":"9.0.7","picomatch":"4.0.4","brace-expansion":"5.0.8"},"_nodeVersion":"22.17.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"7.3.5","eslint":"9.31.0","vitest":"4.1.0","turndown":"7.2.0","typescript":"5.8.3","@types/turndown":"5.0.5","@vitest/coverage-v8":"4.1.0"},"peerDependencies":{"turndown":"^7.0.0"},"optionalDependencies":{"@rollup/rollup-linux-x64-gnu":"4.59.1"},"_npmOperationalInternal":{"tmp":"tmp/turndown-plugin-gfm_1.0.3_1785409696346_0.006062805117395431","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@truto/turndown-plugin-gfm","version":"1.0.4","keywords":["turndown","turndown-plugin","html-to-markdown","html","markdown","github-flavored-markdown","gfm","table-conversion","performance"],"author":{"name":"Truto","email":"eng@truto.one"},"license":"MIT","_id":"@truto/turndown-plugin-gfm@1.0.4","maintainers":[{"name":"truto","email":"eng@truto.one"}],"homepage":"https://github.com/trutohq/turndown-plugin-gfm#readme","bugs":{"url":"https://github.com/trutohq/turndown-plugin-gfm/issues"},"dist":{"shasum":"f2c9c22cee5bd2bee485070583fcbb2bdf899ed6","tarball":"https://registry.npmjs.org/@truto/turndown-plugin-gfm/-/turndown-plugin-gfm-1.0.4.tgz","fileCount":6,"integrity":"sha512-yjhZKtVcBRc1ED49XO+C3nJbHXuL0IicgFHTpTwMLQF4qPx/Ep252NsPl4xl9egZi/1rVDqKYcVdah8vP/lqoQ==","signatures":[{"sig":"MEUCIGawTrcHynUdDcetRNZe7/FDOCenn8Y1szT9HwgAP8foAiEArXyUEC9/LEK4aVyGSMmuaSrrZM4tqp8+f+FzRB+JfMU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIG7kCMISppTnxusW+3n8pn/Yrb0Ls595hkqrpEhY8f3GAiAmEwl8UOBNRXTApV+of2p1ov4wlW8L5rnjqwi4D0+Z2w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30523},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","volta":{"node":"22.17.1"},"module":"./lib/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js","require":"./lib/index.js"}},"gitHead":"d4343fe620f896222b283d30a8fc4a97bd5e0e69","scripts":{"dev":"vitest","lint":"eslint src test --ext .js","test":"vitest","build":"vite build","lint:fix":"eslint src test --ext .js --fix","test:run":"vitest run","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"truto","email":"eng@truto.one"},"overrides":{"rollup":"4.61.0","esbuild":"0.28.1","flatted":"3.4.2","js-yaml":"4.3.2","postcss":"8.5.26","minimatch":"9.0.7","picomatch":"4.0.4","brace-expansion":"5.0.9"},"repository":{"url":"git+https://github.com/trutohq/turndown-plugin-gfm.git","type":"git"},"_npmVersion":"10.9.2","description":"Enhanced Turndown plugin for GitHub Flavored Markdown with improved table conversion and performance.","directories":{},"resolutions":{"rollup":"4.61.0","esbuild":"0.28.1","flatted":"3.4.2","js-yaml":"4.3.2","postcss":"8.5.26","minimatch":"9.0.7","picomatch":"4.0.4","brace-expansion":"5.0.9"},"_nodeVersion":"22.17.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"7.3.5","eslint":"9.31.0","vitest":"4.1.0","turndown":"7.2.0","typescript":"5.8.3","@types/turndown":"5.0.5","@vitest/coverage-v8":"4.1.0"},"peerDependencies":{"turndown":"^7.0.0"},"optionalDependencies":{"@rollup/rollup-linux-x64-gnu":"4.59.1"},"_npmOperationalInternal":{"tmp":"tmp/turndown-plugin-gfm_1.0.4_1790246047155_0.3931756757012821","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"_id":"@truto/turndown-plugin-gfm@1.0.5","bugs":{"url":"https://github.com/trutohq/turndown-plugin-gfm/issues"},"dist":{"shasum":"32aff43570a981c2d5509951c8a47c80e7bb1c1d","tarball":"https://registry.npmjs.org/@truto/turndown-plugin-gfm/-/turndown-plugin-gfm-1.0.5.tgz","fileCount":6,"integrity":"sha512-h/xbPeTGLlFsKR9WTUEtdZwaM42N0CSy0bUUtyzSWSSUS7YUnOY9d5MkZKI/bsZ2mbfBih9A7by05GJoAeT8tQ==","signatures":[{"sig":"MEYCIQCQ7VxUoDJTpIQNrMw4WDt7NQCYsjWe8kf/Sg3cFAF+6QIhAOdjl2KVpkcqxtAEmwu+BOrfrtkpA2P/mZKq6jBMXCqD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGnbK+NiPxsGmybFYN7Ri1p8nmREjBLgBbFjYquoOsNRAiEApJsbCZs0h3blJA3udn5BG1f5FiZ5aAVBMpKEjCRkEwg="}],"unpackedSize":30546},"main":"./lib/index.js","name":"@truto/turndown-plugin-gfm","type":"module","types":"./lib/index.d.ts","volta":{"node":"22.17.1"},"author":{"name":"Truto","email":"eng@truto.one"},"module":"./lib/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js","require":"./lib/index.js"}},"gitHead":"a4597d5071d07b490dd2587519bed22440414711","license":"MIT","scripts":{"dev":"vitest","lint":"eslint src test --ext .js","test":"vitest","build":"vite build","lint:fix":"eslint src test --ext .js --fix","test:run":"vitest run","test:coverage":"vitest run --coverage"},"version":"1.0.5","_npmUser":{"name":"truto","email":"eng@truto.one"},"homepage":"https://github.com/trutohq/turndown-plugin-gfm#readme","keywords":["turndown","turndown-plugin","html-to-markdown","html","markdown","github-flavored-markdown","gfm","table-conversion","performance"],"overrides":{"vite":"7.3.5","rollup":"4.61.0","esbuild":"0.28.1","flatted":"3.4.2","js-yaml":"4.3.2","postcss":"8.5.26","minimatch":"9.0.7","picomatch":"4.0.4","brace-expansion":"5.0.9"},"repository":{"url":"git+https://github.com/trutohq/turndown-plugin-gfm.git","type":"git"},"_npmVersion":"10.9.2","description":"Enhanced Turndown plugin for GitHub Flavored Markdown with improved table conversion and performance.","directories":{},"maintainers":[{"name":"truto","email":"eng@truto.one"}],"resolutions":{"rollup":"4.61.0","esbuild":"0.28.1","flatted":"3.4.2","js-yaml":"4.3.2","postcss":"8.5.26","minimatch":"9.0.7","picomatch":"4.0.4","brace-expansion":"5.0.9"},"_nodeVersion":"22.17.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"7.3.5","eslint":"9.31.0","vitest":"4.1.11","turndown":"7.2.0","typescript":"5.8.3","@types/turndown":"5.0.5","@vitest/coverage-v8":"4.1.11"},"peerDependencies":{"turndown":"^7.0.0"},"optionalDependencies":{"@rollup/rollup-linux-x64-gnu":"4.59.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/turndown-plugin-gfm_1.0.5_1790336699961_0.7017016911485636"}}},"time":{"created":"2025-07-22T13:56:48.881Z","modified":"2026-09-25T11:45:00.202Z","1.0.0":"2025-07-22T13:56:49.166Z","1.0.1":"2025-07-28T10:51:24.575Z","1.0.2":"2025-07-28T10:55:58.600Z","1.0.3":"2026-07-30T11:08:16.502Z","1.0.4":"2026-09-24T10:34:07.250Z","1.0.5":"2026-09-25T11:45:00.045Z"},"bugs":{"url":"https://github.com/trutohq/turndown-plugin-gfm/issues"},"author":{"name":"Truto","email":"eng@truto.one"},"license":"MIT","homepage":"https://github.com/trutohq/turndown-plugin-gfm#readme","keywords":["turndown","turndown-plugin","html-to-markdown","html","markdown","github-flavored-markdown","gfm","table-conversion","performance"],"repository":{"url":"git+https://github.com/trutohq/turndown-plugin-gfm.git","type":"git"},"description":"Enhanced Turndown plugin for GitHub Flavored Markdown with improved table conversion and performance.","maintainers":[{"name":"truto","email":"eng@truto.one"}],"readme":"# @truto/turndown-plugin-gfm\n\n> Enhanced Turndown plugin for GitHub Flavored Markdown with improved table conversion and performance\n\nAn ESM-only fork of the original [`@joplin/turndown-plugin-gfm`](https://github.com/laurent22/joplin-turndown-plugin-gfm) with significant improvements:\n\n## ✨ Key Improvements\n\n- **🚀 20x Performance Boost**: Table conversion optimized from 13+ seconds to ~600ms\n- **🔧 Enhanced Edge Case Handling**: Robust handling of malformed HTML, special characters, and edge cases\n- **📦 ESM-Only**: Modern ES module format with clean exports\n- **🧪 Comprehensive Testing**: Full vitest test suite with 100% coverage\n- **⚡ Simplified Logic**: Streamlined codebase focused on GitHub-flavored markdown\n- **🔧 Modern Tooling**: Built with latest Vite 7.x and Vitest 3.x for optimal development experience\n- **📝 TypeScript Support**: Complete TypeScript declarations included\n\n## 🚨 Breaking Changes from Original\n\n- **ESM Only**: Requires Node.js 18+ and ES module imports\n- **Simplified Table Logic**: No complex alignment or Joplin-specific features\n- **Modern Dependencies**: Updated to latest tooling (Vitest 3.x, Vite 7.x, ESLint 9.x)\n\n## 📦 Installation\n\n```bash\nnpm install @truto/turndown-plugin-gfm\n```\n\n## 🎯 Usage\n\n### Basic Usage\n\n```javascript\nimport TurndownService from 'turndown'\nimport { gfm } from '@truto/turndown-plugin-gfm'\n\nconst turndownService = new TurndownService()\nturndownService.use(gfm)\n\nconst markdown = turndownService.turndown('<table><tr><th>Name</th></tr><tr><td>John</td></tr></table>')\nconsole.log(markdown)\n// | Name |\n// | --- |\n// | John |\n```\n\n### TypeScript Usage\n\n```typescript\nimport TurndownService from 'turndown'\nimport { gfm, TurndownPlugin } from '@truto/turndown-plugin-gfm'\n\nconst turndownService = new TurndownService()\nturndownService.use(gfm)\n\n// Type-safe plugin usage\nconst customPlugin: TurndownPlugin = (turndownService) => {\n  // Your custom plugin logic\n}\n\nturndownService.use([gfm, customPlugin])\n```\n\n### Individual Plugins\n\n```javascript\nimport TurndownService from 'turndown'\nimport { tables, strikethrough, taskListItems, highlightedCodeBlock } from '@truto/turndown-plugin-gfm'\n\nconst turndownService = new TurndownService()\n\n// Use only specific plugins\nturndownService.use([tables, strikethrough])\n\n// Or use them individually\nturndownService.use(tables)\nturndownService.use(taskListItems)\n```\n\n### Available Plugins\n\n- **`tables`**: Convert HTML tables to GitHub-flavored markdown tables\n- **`strikethrough`**: Convert `<del>`, `<s>`, `<strike>` to `~~text~~`\n- **`taskListItems`**: Convert checkbox inputs to `[x]` and `[ ]`\n- **`highlightedCodeBlock`**: Convert highlighted code blocks to fenced code blocks\n- **`gfm`**: All plugins combined\n\n## 🏗️ Table Conversion Features\n\n### Edge Cases Handled\n\n- ✅ Empty tables and cells\n- ✅ Single-cell tables\n- ✅ Tables without headers\n- ✅ Colspan and rowspan attributes\n- ✅ Malformed HTML structures\n- ✅ Special characters (`|`, `\\`, quotes, etc.)\n- ✅ Nested content (lists, paragraphs, formatting)\n- ✅ Line breaks and whitespace normalization\n- ✅ Very wide tables (15+ columns)\n\n### Performance\n\n- **Large Tables**: Handles 1000+ row tables in under 1 second\n- **Complex Content**: Processes nested HTML efficiently\n- **Memory Efficient**: No memory leaks or degradation over time\n\n## 🧪 Development\n\n### Requirements\n\n- Node.js 18+\n- ES modules support\n\n### Scripts\n\n```bash\n# Run tests\nnpm test\n\n# Run tests with coverage\nnpm run test:coverage\n\n# Build the library\nnpm run build\n\n# Lint code\nnpm run lint\n\n# Fix linting issues\nnpm run lint:fix\n```\n\n### Testing & Build\n\nThe project uses modern tooling for an optimal development experience:\n\n- **[Vitest 3.x](https://vitest.dev/)**: Fast unit testing with coverage\n- **[Vite 7.x](https://vitejs.dev/)**: Lightning fast build tool  \n- **[ESLint 9.x](https://eslint.org/)**: Code quality and consistency\n\nTest coverage includes:\n- **Unit Tests**: Individual plugin functionality\n- **Integration Tests**: Combined plugin usage\n- **Edge Case Tests**: Malformed HTML, special characters, performance\n- **Performance Tests**: Large table processing benchmarks\n\n## 📊 Compatibility\n\n### Supported\n\n- ✅ Node.js 18+\n- ✅ ES modules\n- ✅ Modern bundlers (Vite, Rollup, Webpack 5+)\n- ✅ TypeScript (with generated types)\n\n### Not Supported\n\n- ❌ CommonJS `require()`\n- ❌ Node.js < 18\n- ❌ Legacy bundlers\n\n## 🔄 Migration from Original\n\n```javascript\n// Before (CommonJS)\nconst gfm = require('@joplin/turndown-plugin-gfm')\n\n// After (ESM)\nimport { gfm } from '@truto/turndown-plugin-gfm'\n```\n\n## 📄 License\n\nMIT © [Truto](https://github.com/trutohq)\n\nEnhanced by the community with performance improvements and modern tooling.\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create a feature branch: `git checkout -b feature/amazing-feature`\n3. Make your changes\n4. Add tests for new functionality\n5. Run tests: `npm test`\n6. Commit changes: `git commit -m 'Add amazing feature'`\n7. Push to branch: `git push origin feature/amazing-feature`\n8. Open a Pull Request\n\n## 🙏 Acknowledgments\n\n- Original [`turndown-plugin-gfm`](https://github.com/mixmark-io/turndown-plugin-gfm) by Dom Christie\n- Joplin team for the enhanced version that served as the base\n- Community contributors for edge case testing and feedback\n","readmeFilename":"README.md"}