| module.exports = phrasing |
| |
| function phrasing(parent, context, safeOptions) { |
| var children = parent.children || [] |
| var results = [] |
| var index = -1 |
| var before = safeOptions.before |
| var after |
| var handle |
| var child |
| |
| while (++index < children.length) { |
| child = children[index] |
| |
| if (index + 1 < children.length) { |
| handle = context.handle.handlers[children[index + 1].type] |
| if (handle && handle.peek) handle = handle.peek |
| after = handle |
| ? handle(children[index + 1], parent, context, { |
| before: '', |
| after: '' |
| }).charAt(0) |
| : '' |
| } else { |
| after = safeOptions.after |
| } |
| |
| results.push( |
| context.handle(child, parent, context, { |
| before: before, |
| after: after |
| }) |
| ) |
| before = results[results.length - 1].slice(-1) |
| } |
| |
| return results.join('') |
| } |