@mieweb/wikigdrive
Version:
Google Drive to MarkDown synchronization
41 lines (40 loc) • 1.6 kB
JavaScript
import { walkRecursiveSync } from '../markdownNodesUtils.js';
// @TODO: no test
export function trimParagraphs(markdownChunks) {
walkRecursiveSync(markdownChunks.body, (chunk) => {
if (chunk.isTag === true && ['P', 'H1', 'H2', 'H3', 'H4'].includes(chunk.tag)) {
while (chunk.children.length > 0) {
const lastChunk = chunk.children[chunk.children.length - 1];
if (lastChunk.isTag === false) {
let origText = lastChunk.text;
lastChunk.text = lastChunk.text.replace(/\s+$/, '');
if (lastChunk.text === '') {
chunk.children.splice(chunk.children.length - 1, 1);
continue;
}
if (origText === lastChunk.text) {
break;
}
continue;
}
break;
}
while (chunk.children.length > 0) {
const firstChunk = chunk.children[0];
if (firstChunk.isTag === false) {
const origText = firstChunk.text;
firstChunk.text = firstChunk.text.replace(/^\s+/, '');
if (firstChunk.text === '') {
chunk.children.splice(0, 1);
continue;
}
if (origText === firstChunk.text) {
break;
}
continue;
}
break;
}
}
});
}