29 lines
819 B
JavaScript
29 lines
819 B
JavaScript
|
/**
|
||
|
* @typedef {import('nlcst').Paragraph} Paragraph
|
||
|
* @typedef {import('nlcst').Root} Root
|
||
|
*/
|
||
|
|
||
|
import {visitChildren} from 'unist-util-visit-children'
|
||
|
|
||
|
// Move white space starting a sentence up, so they are the siblings of
|
||
|
// sentences.
|
||
|
export const makeInitialWhiteSpaceSiblings = visitChildren(
|
||
|
/**
|
||
|
* @type {import('unist-util-visit-children').Visitor<Paragraph | Root>}
|
||
|
*/
|
||
|
function (child, index, parent) {
|
||
|
if ('children' in child && child.children) {
|
||
|
const head = child.children[0]
|
||
|
if (head && head.type === 'WhiteSpaceNode') {
|
||
|
child.children.shift()
|
||
|
parent.children.splice(index, 0, head)
|
||
|
const next = child.children[0]
|
||
|
|
||
|
if (next && next.position && child.position) {
|
||
|
child.position.start = next.position.start
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
)
|