21 lines
530 B
JavaScript
21 lines
530 B
JavaScript
|
const is = require('unist-util-is');
|
||
|
|
||
|
// TODO: specific tests for this would be nice, even though it is somewhat
|
||
|
// covered by the plugins that use it.
|
||
|
function splitOnThematicBreak(nodes) {
|
||
|
return nodes.reduce(
|
||
|
(prev, curr) => {
|
||
|
if (is(curr, 'thematicBreak')) {
|
||
|
return [...prev, []];
|
||
|
} else {
|
||
|
const first = prev.slice(0, -1);
|
||
|
const last = prev.slice(-1)[0];
|
||
|
return [...first, [...last, curr]];
|
||
|
}
|
||
|
},
|
||
|
[[]]
|
||
|
);
|
||
|
}
|
||
|
|
||
|
exports.splitOnThematicBreak = splitOnThematicBreak;
|