| module.exports = flow |
| |
| var repeat = require('repeat-string') |
| |
| function flow(parent, context) { |
| var children = parent.children || [] |
| var results = [] |
| var index = -1 |
| var child |
| |
| while (++index < children.length) { |
| child = children[index] |
| |
| results.push( |
| context.handle(child, parent, context, {before: '\n', after: '\n'}) |
| ) |
| |
| if (index + 1 < children.length) { |
| results.push(between(child, children[index + 1])) |
| } |
| } |
| |
| return results.join('') |
| |
| function between(left, right) { |
| var index = -1 |
| var result |
| |
| while (++index < context.join.length) { |
| result = context.join[index](left, right, parent, context) |
| |
| if (result === true || result === 1) { |
| break |
| } |
| |
| if (typeof result === 'number') { |
| return repeat('\n', 1 + Number(result)) |
| } |
| |
| if (result === false) { |
| return '\n\n<!---->\n\n' |
| } |
| } |
| |
| return '\n\n' |
| } |
| } |