Sha256: 2ada565bf04f26043e820ad2ed756b5fb9026e7748d98b49b0039f545a4d3f83
Contents?: true
Size: 1.23 KB
Versions: 23
Compression:
Stored size: 1.23 KB
Contents
'use strict' var visit = require('unist-util-visit') module.exports = compact // Make an mdast tree compact by merging adjacent text nodes. function compact(tree, commonmark) { visit(tree, visitor) return tree function visitor(child, index, parent) { var siblings = parent ? parent.children : [] var prev = index && siblings[index - 1] if ( prev && child.type === prev.type && mergeable(prev, commonmark) && mergeable(child, commonmark) ) { if (child.value) { prev.value += child.value } if (child.children) { prev.children = prev.children.concat(child.children) } siblings.splice(index, 1) if (prev.position && child.position) { prev.position.end = child.position.end } return index } } } function mergeable(node, commonmark) { var start var end if (node.type === 'text') { if (!node.position) { return true } start = node.position.start end = node.position.end // Only merge nodes which occupy the same size as their `value`. return ( start.line !== end.line || end.column - start.column === node.value.length ) } return commonmark && node.type === 'blockquote' }
Version data entries
23 entries across 23 versions & 1 rubygems
Version | Path |
---|---|
trusty-cms-4.1.7 | node_modules/mdast-util-compact/index.js |
trusty-cms-4.1.6 | node_modules/mdast-util-compact/index.js |
trusty-cms-4.1.5 | node_modules/mdast-util-compact/index.js |