+++ /dev/null
-'use strict';
-
-module.exports = block;
-
-/* 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 newline
- * between them. */
-function block(node) {
- var self = this;
- var values = [];
- var children = node.children;
- var length = children.length;
- var index = -1;
- var child;
- var prev;
-
- while (++index < length) {
- child = children[index];
-
- if (prev) {
- /* Duplicate nodes, such as a list
- * directly following another list,
- * often need multiple new lines.
- *
- * Additionally, code blocks following a list
- * might easily be mistaken for a paragraph
- * in the list itself. */
- if (child.type === prev.type && prev.type === 'list') {
- values.push(prev.ordered === child.ordered ? '\n\n\n' : '\n\n');
- } else if (prev.type === 'list' && child.type === 'code' && !child.lang) {
- values.push('\n\n\n');
- } else {
- values.push('\n\n');
- }
- }
-
- values.push(self.visit(child, node));
-
- prev = child;
- }
-
- return values.join('');
-}