{"id":29630833,"url":"https://github.com/redbug312/markdown-it-multimd-table","last_synced_at":"2026-02-19T08:37:13.357Z","repository":{"id":38550112,"uuid":"100126066","full_name":"redbug312/markdown-it-multimd-table","owner":"redbug312","description":"Multimarkdown table syntax plugin for markdown-it markdown parser","archived":false,"fork":false,"pushed_at":"2026-01-21T23:24:59.000Z","size":787,"stargazers_count":154,"open_issues_count":10,"forks_count":39,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-01-22T03:52:46.379Z","etag":null,"topics":["markdown","markdown-it-plugin","multimarkdown","table"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/redbug312.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-08-12T16:59:53.000Z","updated_at":"2026-01-10T12:41:41.000Z","dependencies_parsed_at":"2024-06-18T12:40:19.591Z","dependency_job_id":"278c3cb7-d3cd-49e9-88a0-62d3e7536a00","html_url":"https://github.com/redbug312/markdown-it-multimd-table","commit_stats":{"total_commits":170,"total_committers":13,"mean_commits":"13.076923076923077","dds":"0.16470588235294115","last_synced_commit":"3477cd3c46ddfecb534189e089192fad06e390a7"},"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"purl":"pkg:github/redbug312/markdown-it-multimd-table","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redbug312%2Fmarkdown-it-multimd-table","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redbug312%2Fmarkdown-it-multimd-table/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redbug312%2Fmarkdown-it-multimd-table/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redbug312%2Fmarkdown-it-multimd-table/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/redbug312","download_url":"https://codeload.github.com/redbug312/markdown-it-multimd-table/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redbug312%2Fmarkdown-it-multimd-table/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29608599,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-19T06:47:36.664Z","status":"ssl_error","status_checked_at":"2026-02-19T06:45:47.551Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["markdown","markdown-it-plugin","multimarkdown","table"],"created_at":"2025-07-21T11:02:12.680Z","updated_at":"2026-02-19T08:37:13.352Z","avatar_url":"https://github.com/redbug312.png","language":"JavaScript","readme":"[![GitHub Action](https://github.com/redbug312/markdown-it-multimd-table/workflows/Node.js/badge.svg)](https://github.com/redbug312/markdown-it-multimd-table/actions)\n[![NPM version](https://img.shields.io/npm/v/markdown-it-multimd-table.svg?style=flat)](https://www.npmjs.org/package/markdown-it-multimd-table)\n[![Coverage Status](https://coveralls.io/repos/redbug312/markdown-it-multimd-table/badge.svg?branch=master\u0026service=github)](https://coveralls.io/github/redbug312/markdown-it-multimd-table?branch=master)\n\nMultiMarkdown table syntax plugin for markdown-it markdown parser\n\n## Intro\n\nMarkdown specs defines only the basics for tables. When users want common\nfeatures like `colspan`, they must fallback to raw HTML. And writing tables in\nHTML is truly *lengthy and troublesome*.\n\nThis plugin extends markdown-it with MultiMarkdown table syntax.\n[MultiMarkdown][mmd6] is an extended Markdown spec. It defines clear rules for\nadvanced Markdown table syntax, while being consistent with original pipe\ntable; [markdown-it][mdit] is a popular Markdown parser in JavaScript and\nallows plugins extending itself.\n\n[mmd6]: https://fletcher.github.io/MultiMarkdown-6/\n[mdit]: https://markdown-it.github.io/\n\nThe features are provided:\n- Cell spans over columns\n- Cell spans over rows (optional)\n- Divide rows into sections\n- Multiple table headers\n- Table caption\n- Block-level elements such as lists, codes... (optional)\n- Omitted table header (optional)\n\nNoted that the plugin is not a re-written of MultiMarkdown. This plugin will\nbehave differently from the official compiler, but doing its best to obey rules\ndefined in [MultiMarkdown User's Guide][mmd6-table]. Please pose an issue if\nthere are weird results for sensible inputs.\n\n[mmd6-table]: https://fletcher.github.io/MultiMarkdown-6/syntax/tables.html\n\n## Usage\n\n```javascript\n// defaults\nvar md = require('markdown-it')()\n            .use(require('markdown-it-multimd-table'));\n\n// full options list (equivalent to defaults)\nvar md = require('markdown-it')()\n            .use(require('markdown-it-multimd-table'), {\n              multiline:  false,\n              rowspan:    false,\n              headerless: false,\n              multibody:  true,\n              autolabel:  true,\n            });\n\nmd.render(/*...*/)\n```\n\nFor a quick demo:\n```javascript\n$ mkdir markdown-it-multimd-table\n$ cd markdown-it-multimd-table\n$ npm install markdown-it markdown-it-multimd-table --prefix .\n$ vim test.js\n\n    var md = require('markdown-it')()\n                .use(require('markdown-it-multimd-table'));\n\n    const exampleTable =\n    \"|             |          Grouping           || \\n\" +\n    \"First Header  | Second Header | Third Header | \\n\" +\n    \" ------------ | :-----------: | -----------: | \\n\" +\n    \"Content       |          *Long Cell*        || \\n\" +\n    \"Content       |   **Cell**    |         Cell | \\n\" +\n    \"                                               \\n\" +\n    \"New section   |     More      |         Data | \\n\" +\n    \"And more      | With an escaped '\\\\|'       || \\n\" +\n    \"[Prototype table]                              \\n\";\n\n    console.log(md.render(exampleTable));\n\n$ node test.js \u003e test.html\n$ firefox test.html\n```\n\nHere's the table expected on browser:\n\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003e\u003c/th\u003e\n\u003cth align=\"center\" colspan=\"2\"\u003eGrouping\u003c/th\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eFirst Header\u003c/th\u003e\n\u003cth align=\"center\"\u003eSecond Header\u003c/th\u003e\n\u003cth align=\"right\"\u003eThird Header\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003eContent\u003c/td\u003e\n\u003ctd align=\"center\" colspan=\"2\"\u003e\u003cem\u003eLong Cell\u003c/em\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eContent\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\u003cstrong\u003eCell\u003c/strong\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003eCell\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003eNew section\u003c/td\u003e\n\u003ctd align=\"center\"\u003eMore\u003c/td\u003e\n\u003ctd align=\"right\"\u003eData\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eAnd more\u003c/td\u003e\n\u003ctd align=\"center\" colspan=\"2\"\u003eWith an escaped '|'\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003ccaption id=\"prototypetable\"\u003ePrototype table\u003c/caption\u003e\n\u003c/table\u003e\n\nNoted that GitHub filters out `style` property, so the example uses `align` the\nobsolete one. However it outputs `style=\"text-align: ...\"` in actual.\n\n## Options\n\n### Multiline\n\nBackslash at end merges with line content below.\u003cbr\u003e\nFeature contributed by [Lucas-C](https://github.com/Lucas-C).\n\n```markdown\n|   Markdown   | Rendered HTML |\n|--------------|---------------|\n|    *Italic*  | *Italic*      | \\\n|              |               |\n|    - Item 1  | - Item 1      | \\\n|    - Item 2  | - Item 2      |\n|    ```python | ```python       \\\n|    .1 + .2   | .1 + .2         \\\n|    ```       | ```           |\n```\n\nThis is parsed below when the option enabled:\n\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eMarkdown\u003c/th\u003e\n\u003cth\u003eRendered HTML\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\u003cpre\u003e\u003ccode\u003e*Italic*\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/td\u003e\n\u003ctd\u003e\n\u003cp\u003e\u003cem\u003eItalic\u003c/em\u003e\u003c/p\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\u003cpre\u003e\u003ccode\u003e- Item 1\n- Item 2\u003c/code\u003e\u003c/pre\u003e\n\u003c/td\u003e\n\u003ctd\u003e\n\u003cul\u003e\n\u003cli\u003eItem 1\u003c/li\u003e\n\u003cli\u003eItem 2\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\u003cpre\u003e\u003ccode\u003e```python\n.1 + .2\n```\u003c/code\u003e\u003c/pre\u003e\n\u003c/td\u003e\n\u003ctd\u003e\n\u003cpre\u003e\u003ccode class=\"language-python\"\u003e.1 + .2\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\n### Rowspan\n\n`^^` indicates cells being merged above.\u003cbr\u003e\nFeature contributed by [pmccloghrylaing](https://github.com/pmccloghrylaing).\n\n```markdown\nStage | Direct Products | ATP Yields\n----: | --------------: | ---------:\nGlycolysis | 2 ATP ||\n^^ | 2 NADH | 3--5 ATP |\nPyruvaye oxidation | 2 NADH | 5 ATP |\nCitric acid cycle | 2 ATP ||\n^^ | 6 NADH | 15 ATP |\n^^ | 2 FADH2 | 3 ATP |\n**30--32** ATP |||\n[Net ATP yields per hexose]\n```\n\nThis is parsed below when the option enabled:\n\n\u003ctable\u003e\n\u003ccaption id=\"netatpyieldsperhexose\"\u003eNet ATP yields per hexose\u003c/caption\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth align=\"right\"\u003eStage\u003c/th\u003e\n\u003cth align=\"right\"\u003eDirect Products\u003c/th\u003e\n\u003cth align=\"right\"\u003eATP Yields\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd align=\"right\" rowspan=\"2\"\u003eGlycolysis\u003c/td\u003e\n\u003ctd align=\"right\" colspan=\"2\"\u003e2 ATP\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd align=\"right\"\u003e2 NADH\u003c/td\u003e\n\u003ctd align=\"right\"\u003e3–5 ATP\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd align=\"right\"\u003ePyruvaye oxidation\u003c/td\u003e\n\u003ctd align=\"right\"\u003e2 NADH\u003c/td\u003e\n\u003ctd align=\"right\"\u003e5 ATP\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd align=\"right\" rowspan=\"3\"\u003eCitric acid cycle\u003c/td\u003e\n\u003ctd align=\"right\" colspan=\"2\"\u003e2 ATP\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd align=\"right\"\u003e6 NADH\u003c/td\u003e\n\u003ctd align=\"right\"\u003e15 ATP\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd align=\"right\"\u003e2 FADH2\u003c/td\u003e\n\u003ctd align=\"right\"\u003e3 ATP\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd align=\"right\" colspan=\"3\"\u003e\u003cstrong\u003e30–32\u003c/strong\u003e ATP\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\n### Headerless\n\nTable header can be eliminated.\n\n```markdown\n|--|--|--|--|--|--|--|--|\n|♜|  |♝|♛|♚|♝|♞|♜|\n|  |♟|♟|♟|  |♟|♟|♟|\n|♟|  |♞|  |  |  |  |  |\n|  |♗|  |  |♟|  |  |  |\n|  |  |  |  |♙|  |  |  |\n|  |  |  |  |  |♘|  |  |\n|♙|♙|♙|♙|  |♙|♙|♙|\n|♖|♘|♗|♕|♔|  |  |♖|\n```\n\nThis is parsed below when the option enabled:\n\n\u003ctable\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e♜\u003c/td\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003ctd\u003e♝\u003c/td\u003e\n\u003ctd\u003e♛\u003c/td\u003e\n\u003ctd\u003e♚\u003c/td\u003e\n\u003ctd\u003e♝\u003c/td\u003e\n\u003ctd\u003e♞\u003c/td\u003e\n\u003ctd\u003e♜\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003ctd\u003e♟\u003c/td\u003e\n\u003ctd\u003e♟\u003c/td\u003e\n\u003ctd\u003e♟\u003c/td\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003ctd\u003e♟\u003c/td\u003e\n\u003ctd\u003e♟\u003c/td\u003e\n\u003ctd\u003e♟\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e♟\u003c/td\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003ctd\u003e♞\u003c/td\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003ctd\u003e♗\u003c/td\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003ctd\u003e♟\u003c/td\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003ctd\u003e♙\u003c/td\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003ctd\u003e♘\u003c/td\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e♙\u003c/td\u003e\n\u003ctd\u003e♙\u003c/td\u003e\n\u003ctd\u003e♙\u003c/td\u003e\n\u003ctd\u003e♙\u003c/td\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003ctd\u003e♙\u003c/td\u003e\n\u003ctd\u003e♙\u003c/td\u003e\n\u003ctd\u003e♙\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e♖\u003c/td\u003e\n\u003ctd\u003e♘\u003c/td\u003e\n\u003ctd\u003e♗\u003c/td\u003e\n\u003ctd\u003e♕\u003c/td\u003e\n\u003ctd\u003e♔\u003c/td\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003ctd\u003e♖\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\n### Multibody\n\nAn empty line separates consecutive table bodies. When disabled, an empty line\nalways cuts off the tables.\n\n### Autolabel\n\nTable `id` attribute follows the table caption if not labeled. When disabled,\ncaption without labels cannot generate the attribute.\n\n## Credits\n\n* [MultiMarkdown][mmd6], Lightweight\n  markup processor to produce HTML, LaTeX, and more.\n* [markdown-it][mdit], Markdown parser, done right.\n  100% CommonMark support, extensions, syntax plugins \u0026amp; high speed.\n\n## License\n\nThis software is licensed under the [MIT license][license] \u0026copy; RedBug312.\n\n[license]: https://opensource.org/licenses/mit-license.php\n","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredbug312%2Fmarkdown-it-multimd-table","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fredbug312%2Fmarkdown-it-multimd-table","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredbug312%2Fmarkdown-it-multimd-table/lists"}