You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
928 B
47 lines
928 B
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' |
|
} |
|
}
|
|
|