snapToBaseline

This commit is contained in:
Julie Blanc 2026-04-10 12:51:41 +02:00
parent 299ffe6c4b
commit 831d276d41
6 changed files with 24 additions and 15 deletions

View file

@ -3,10 +3,29 @@ import { Handler } from '/csspageweaver/lib/paged.esm.js';
export default class snapToBaseline extends Handler {
constructor(chunker, polisher, caller) {
super(chunker, polisher, caller);
this.baseline;
}
beforeParsed(content){
this.baseline = parseFloat(getComputedStyle(document.documentElement).getPropertyValue('--baseline').trim());
// console.log("========================================");
// console.log("baseline = " + this.baseline);
}
renderNode(node, sourceNode){
if (node.nodeName === 'P') {
this.baseline = parseFloat(getComputedStyle(document.documentElement).getPropertyValue('--baseline').trim());
const area = node.closest('.pagedjs_area');
if (area) {
const areaRect = area.getBoundingClientRect();
const nodeRect = node.getBoundingClientRect();
const relativeTop = nodeRect.top - areaRect.top;
const modulo = relativeTop % this.baseline;
if (modulo !== 0) {
let newPadding = this.baseline - modulo;
node.style.paddingTop = newPadding + 'px';
}
}
return node;
}
}