Sha256: 0f9ef31e8717e1d280f48945e96dddd33f67390b3f535bc84412f71469712082
Contents?: true
Size: 1.47 KB
Versions: 23
Compression:
Stored size: 1.47 KB
Contents
'use strict' module.exports = block var lineFeed = '\n' var blank = lineFeed + lineFeed var triple = blank + lineFeed var comment = blank + '<!---->' + blank // Stringify a block node with block children (e.g., `root` or `blockquote`). // Knows about code following a list, or adjacent lists with similar bullets, // and places an extra line feed between them. function block(node) { var self = this var options = self.options var fences = options.fences var gap = options.commonmark ? comment : triple var values = [] var children = node.children var length = children.length var index = -1 var previous var child while (++index < length) { previous = child child = children[index] if (previous) { // A list preceding another list that are equally ordered, or a // list preceding an indented code block, need a gap between them, // so as not to see them as one list, or content of the list, // respectively. // // In commonmark, only something that breaks both up can do that, // so we opt for an empty, invisible comment. In other flavours, // two blank lines are fine. if ( previous.type === 'list' && ((child.type === 'list' && previous.ordered === child.ordered) || (child.type === 'code' && !child.lang && !fences)) ) { values.push(gap) } else { values.push(blank) } } values.push(self.visit(child, node)) } return values.join('') }
Version data entries
23 entries across 23 versions & 1 rubygems