// Support for the newline behavior in markdown that most expect. Look through all text nodes
// in the tree, replace any new lines with `br`s.
export function setup(helper) {
helper.postProcessText((text, event) => {
const { options, insideCounts } = event;
if (options.traditionalMarkdownLinebreaks || (insideCounts.pre > 0)) { return; }
if (text === "\n") {
// If the tag is just a new line, replace it with a `
`
return [['br']];
} else {
// If the text node contains new lines, perhaps with text between them, insert the
// `
` tags.
const split = text.split(/\n+/);
if (split.length) {
const replacement = [];
for (var i=0; i 0) { replacement.push(split[i]); }
if (i !== split.length-1) { replacement.push(['br']); }
}
return replacement;
}
}
});
}