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

Version Path
trusty-cms-5.0.7 node_modules/remark-stringify/lib/macro/block.js
trusty-cms-5.0.6 node_modules/remark-stringify/lib/macro/block.js
trusty-cms-5.0.5 node_modules/remark-stringify/lib/macro/block.js
trusty-cms-5.0.4 node_modules/remark-stringify/lib/macro/block.js
trusty-cms-5.0.3 node_modules/remark-stringify/lib/macro/block.js
trusty-cms-5.0.2 node_modules/remark-stringify/lib/macro/block.js
trusty-cms-5.0.1 node_modules/remark-stringify/lib/macro/block.js
trusty-cms-4.3.5 node_modules/remark-stringify/lib/macro/block.js
trusty-cms-5.0.0 node_modules/remark-stringify/lib/macro/block.js
trusty-cms-4.3.4 node_modules/remark-stringify/lib/macro/block.js
trusty-cms-4.3.3 node_modules/remark-stringify/lib/macro/block.js
trusty-cms-4.3.2 node_modules/remark-stringify/lib/macro/block.js
trusty-cms-4.3.1 node_modules/remark-stringify/lib/macro/block.js
trusty-cms-4.3 node_modules/remark-stringify/lib/macro/block.js
trusty-cms-4.2.3 node_modules/remark-stringify/lib/macro/block.js
trusty-cms-4.2.2 node_modules/remark-stringify/lib/macro/block.js
trusty-cms-4.2.1 node_modules/remark-stringify/lib/macro/block.js
trusty-cms-4.2 node_modules/remark-stringify/lib/macro/block.js
trusty-cms-4.1.9 node_modules/remark-stringify/lib/macro/block.js
trusty-cms-4.1.8 node_modules/remark-stringify/lib/macro/block.js