Package Exports
- markdown-it-multimd-table
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (markdown-it-multimd-table) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
MultiMarkdown table syntax plugin for markdown-it markdown parser
Intro
In general Markdown syntax, we have to write raw HTML tags when colspan
attribute is needed. Luckily, I found that MultiMarkdown had defined complete and clear rules for advanced Markdown table syntax, and compatible to general Markdown table syntax.
So I extend the table parser in markdown-it to support MultiMarkdown table syntax. For now, the following features are provided:
- Cells spanning multiple columns
- Cells spanning multiple rows (optional)
- Grouped table headers
- Grouped table rows
- Table captions
- Lists in table cell (optional)
- Line breaks in table cells (optional)
Noted that the plugin might behave differently from MultiMarkdown in some edge cases; since the plugin aims just to follow the rules in MultiMarkdown User's Guide.
Usage
var md = require('markdown-it')()
.use(require('markdown-it-multimd-table'));
md.render(/*...*/)
To simply test this plugin, you can do these in terminal:
$ mkdir markdown-it-multimd-table
$ cd markdown-it-multimd-table
$ npm install markdown-it-multimd-table --prefix .
$ vim test.js
var md = require('markdown-it')()
.use(require('markdown-it-multimd-table'));
const exampleTable =
"| | Grouping || \n" +
"First Header | Second Header | Third Header | \n" +
" ------------ | :-----------: | -----------: | \n" +
"Content | *Long Cell* || \n" +
"Content | **Cell** | Cell | \n" +
" \n" +
"New section | More | Data | \n" +
"And more | With an escaped '\\|' || \n" +
"[Prototype table] \n";
console.log(md.render(exampleTable));
$ node test.js > test.html
$ firefox test.html
And you will see the rendered table in the browser:
Grouping | ||
---|---|---|
First Header | Second Header | Third Header |
Content | Long Cell | |
Content | Cell | Cell |
New section | More | Data |
And more | With an escaped '|' |
Multiple lines of row (optional)
Put backslashes at end to make the table rows parsed as multiple lines. This feature is contributed by Lucas-C.
First header | Second header
-------------|---------------
List: | More \
- over | data \
- several | \
- lines |
would be parsed as
First header | Second header |
---|---|
List:
|
More data |
And here's how you enable the feature.
var md = require('markdown-it')()
.use(require('markdown-it-multimd-table'), {enableMultilineRows: true});
Rowspan (optional)
To create cells with a rowspan mark the cells to merge up with ^^
.
This feature is contributed by pmccloghrylaing.
First header | Second header
-------------|---------------
Merged | Cell 1
^^ | Cell 2
^^ | Cell 3
would be parsed as
First header | Second header |
---|---|
Merged | Cell 1 |
Cell 2 | |
Cell 3 |
And here's how you enable the feature.
var md = require('markdown-it')()
.use(require('markdown-it-multimd-table'), {enableRowspan: true});
Credits
- MultiMarkdown, Lightweight markup processor to produce HTML, LaTeX, and more.
- markdown-it, Markdown parser, done right. 100% CommonMark support, extensions, syntax plugins & high speed.
License
This software is licensed under the MIT license © RedBug312.