50 lines
984 B
JavaScript
50 lines
984 B
JavaScript
'use strict'
|
|
|
|
var markdownTable = require('markdown-table')
|
|
|
|
module.exports = table
|
|
|
|
// Stringify table.
|
|
//
|
|
// Creates a fenced table.
|
|
// The table has aligned delimiters by default, but not in
|
|
// `tablePipeAlign: false`:
|
|
//
|
|
// ```markdown
|
|
// | Header 1 | Header 2 |
|
|
// | :-: | - |
|
|
// | Alpha | Bravo |
|
|
// ```
|
|
//
|
|
// The table is spaced by default, but not in `tableCellPadding: false`:
|
|
//
|
|
// ```markdown
|
|
// |Foo|Bar|
|
|
// |:-:|---|
|
|
// |Baz|Qux|
|
|
// ```
|
|
function table(node) {
|
|
var self = this
|
|
var options = self.options
|
|
var padding = options.tableCellPadding
|
|
var alignDelimiters = options.tablePipeAlign
|
|
var stringLength = options.stringLength
|
|
var rows = node.children
|
|
var index = rows.length
|
|
var exit = self.enterTable()
|
|
var result = []
|
|
|
|
while (index--) {
|
|
result[index] = self.all(rows[index])
|
|
}
|
|
|
|
exit()
|
|
|
|
return markdownTable(result, {
|
|
align: node.align,
|
|
alignDelimiters: alignDelimiters,
|
|
padding: padding,
|
|
stringLength: stringLength
|
|
})
|
|
}
|