'use strict'; var markdownTable = require('markdown-table'); module.exports = table; /* Stringify table. * * Creates a fenced table by default, but not in * `looseTable: true` mode: * * Foo | Bar * :-: | --- * Baz | Qux * * NOTE: Be careful with `looseTable: true` mode, as a * loose table inside an indented code block on GitHub * renders as an actual table! * * Creates a spaced table by default, but not in * `spacedTable: false`: * * |Foo|Bar| * |:-:|---| * |Baz|Qux| */ function table(node) { var self = this; var options = self.options; var loose = options.looseTable; var spaced = options.spacedTable; var pad = options.paddedTable; var stringLength = options.stringLength; var rows = node.children; var index = rows.length; var exit = self.enterTable(); var result = []; var start; var end; while (index--) { result[index] = self.all(rows[index]); } exit(); if (loose) { start = ''; end = ''; } else if (spaced) { start = '| '; end = ' |'; } else { start = '|'; end = '|'; } return markdownTable(result, { align: node.align, pad: pad, start: start, end: end, stringLength: stringLength, delimiter: spaced ? ' | ' : '|' }); }