function insert_whitespace(page_height, previous) {
if (previous != null)
previous.splice(0).forEach(e => { e.style.paddingTop = null; e.style.display = null; });
else
previous = [];
const cells = document.getElementsByClassName("observablehq");
let offset = 0;
let diff = start_offset;
for (let i = 0; i < cells.length; i++) {
const cell = cells[i],
rect = cell.getBoundingClientRect(),
height = i === cells.length - 1
? rect.height
: cells[i + 1].getBoundingClientRect().top - rect.top - diff;
while (offset < diff + rect.top)
offset += page_height;
if (diff + rect.top + height > offset) {
if (height < page_height) {
cell.firstElementChild.style.paddingTop = `${offset - rect.top - diff}px`;
cell.firstElementChild.style.display = `block`;
previous.push(cell.firstElementChild);
}
diff = 0;
}
}
return previous;
}