markdown-table
Generate fancy Markdown or text tables.
Installation
npm:
$ npm install markdown-table
Component:
$ component install wooorm/markdown-table
Bower:
$ bower install markdown-table
Usage
var table = require('markdown-table');
table([
['Branch', 'Commit'],
['master', '0123456789abcdef'],
['staging', 'fedcba9876543210']
]);
table([
['Beep', 'No.', 'Boop'],
['beep', '1024', 'xyz'],
['boop', '3388450', 'tuv'],
['foo', '10106', 'qrstuv'],
['bar', '45', 'lmno']
], {
'align' : ['l', 'c', 'r']
});
table([
['No.'],
['0.1.2'],
['11.22.33'],
['5.6.'],
['1.22222'],
], {
'align' : ['.']
});
API
markdownTable(table, options?)
Turns a given matrix of strings (an array of arrays containing strings) into a table.
The following options are available:
options.align
— Array of strings, each string being either "l"
(left), "r"
(right), c
(center), or .
(dot). Other values are treated as "l"
;options.delimiter
— Value to insert between cells. Carefull, non-pipe values will break GitHub Flavored Markdown;options.start
— Value to insert at the beginning of every row.options.end
— Value to insert at the end of every row.options.rule
— Whether to display a rule between the header and the body of the table. Carefull, will break GitHub Flavored Markdown when false
;options.stringLength
— The method to detect the length of a cell (see below).
options.stringLength(cell)
ANSI-sequences mess up table creation. To fix this, you have to pass in a stringLength
option to detect the “visible” length of a cell.
var chalk = require('chalk');
function stringLength(cell) {
return chalk.stripColor(cell).length;
}
See the tests for an example.
Inspiration
The original idea and basic implementation was inspired by James Halliday's text-table library.
License
MIT © Titus Wormer