clone numParagraph (page + column)

This commit is contained in:
Julie Blanc 2026-04-10 11:24:39 +02:00
parent bdb35a7ea6
commit 3b91983491
9 changed files with 147 additions and 86 deletions

View file

@ -5,6 +5,7 @@ $bottom: 18mm;
$inside: 12mm;
$outside: 6mm;
$content-h: calc($height - $top - $bottom - 1mm);
$content-w: calc($width - $inside - $outside);
$gap: 4mm;
$indent: 10mm;

View file

@ -0,0 +1,41 @@
ol[type="1"]{
list-style-type: none;
position: relative;
break-after: avoid;
width: $indent;
// background-color: #efefef;
position: absolute;
display: flex;
align-items: center;
justify-content: center;
// outline: 1px solid red;
&::after{
content: attr(start);
display: block;
position: absolute;
font-size: var(--fs-small);
opacity: 0.5;
}
}
ol[type="1"].ol-clone{
break-before: column;
// outline: 1px solid green;
break-after: avoid;
top: 0;
left: calc($content-w/2 + $gap/2)
}
ol[type="1"].ol-clone-page{
// outline: 1px solid yellow;
}

View file

@ -22,8 +22,8 @@ p{
text-align: justify;
orphans: 2;
widows: 2;
margin-left: $indent*0.8;
padding-left: $indent*0.2;
margin-left: $indent;
// padding-left: $indent*0.2;
}
p, li{
@ -45,11 +45,6 @@ p, li{
blockquote{
font-family: var(--font-quote);
p{
border-left: 1px solid #cfcfcf;
}
}
// blockquote u{
@ -72,7 +67,7 @@ ul{
.p-these{
font-weight: 500;
margin-bottom: calc(var(--baseline)*1);
margin-bottom: calc(var(--baseline)*0.5);
strong{
text-transform: uppercase;
display: inline-block;
@ -88,35 +83,3 @@ ul{
margin-bottom: calc(var(--baseline)*1);
}
ol[type="1"]{
list-style-type: none;
position: relative;
break-after: avoid;
width: $indent;
background-color: #efefef;
position: absolute;
display: flex;
align-items: center;
justify-content: center;
outline: 1px solid red;
&::after{
content: attr(start);
display: block;
position: absolute;
font-size: var(--fs-small);
opacity: 0.5;
// color: #d7d7 d7;
// position: relative;
// top: -1px;
}
}

View file

@ -287,8 +287,7 @@ p {
text-align: justify;
orphans: 2;
widows: 2;
margin-left: 8mm;
padding-left: 2mm;
margin-left: 10mm;
}
p, li {
@ -302,9 +301,6 @@ p, li {
blockquote {
font-family: var(--font-quote);
}
blockquote p {
border-left: 1px solid #cfcfcf;
}
ul {
color: red;
@ -312,7 +308,7 @@ ul {
.p-these {
font-weight: 500;
margin-bottom: calc(var(--baseline) * 1);
margin-bottom: calc(var(--baseline) * 0.5);
}
.p-these strong {
text-transform: uppercase;
@ -333,12 +329,10 @@ ol[type="1"] {
-moz-column-break-after: avoid;
break-after: avoid;
width: 10mm;
background-color: #efefef;
position: absolute;
display: flex;
align-items: center;
justify-content: center;
outline: 1px solid red;
}
ol[type="1"]::after {
content: attr(start);
@ -348,6 +342,15 @@ ol[type="1"]::after {
opacity: 0.5;
}
ol[type="1"].ol-clone {
-moz-column-break-before: column;
break-before: column;
-moz-column-break-after: avoid;
break-after: avoid;
top: 0;
left: 81mm;
}
#section__content h1 {
-moz-column-span: all;
column-span: all;

View file

@ -1 +1 @@
{"version":3,"sources":["style.css","modules/_var.scss","modules/_init.scss","modules/_layout.scss","modules/_text.scss","modules/_titles.scss","modules/_list-of-abbr.scss","modules/_followingNotes.scss"],"names":[],"mappings":"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","file":"style.css"}
{"version":3,"sources":["style.css","modules/_var.scss","modules/_init.scss","modules/_layout.scss","modules/_text.scss","modules/_num-paragraph.scss","modules/_titles.scss","modules/_list-of-abbr.scss","modules/_followingNotes.scss"],"names":[],"mappings":"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","file":"style.css"}

View file

@ -3,6 +3,7 @@
@import 'modules/init';
@import 'modules/layout';
@import 'modules/text';
@import 'modules/num-paragraph';
@import 'modules/titles';
// @import 'modules/footnotes';
@import 'modules/list-of-abbr';

View file

@ -20,8 +20,6 @@ export default class followingNotes extends Handler {
beforeParsed(content) {
console.log("floatnotes");
let newNotesClass = this.newNotesClass;
resetCounter(content, this.reset, this.notesClass);
createCallandMarker(content, this.notesClass, newNotesClass);
@ -34,9 +32,16 @@ export default class followingNotes extends Handler {
let paragraph = note.closest("p");
if (!paragraph) return;
// Find next boundary: heading or ol[type="1"]
// Remonter au niveau direct de #section__content (ignorer blockquote et autres conteneurs)
const sectionContent = note.closest('#section__content') || content;
let topLevel = paragraph;
while (topLevel.parentElement && topLevel.parentElement !== sectionContent) {
topLevel = topLevel.parentElement;
}
// Find next boundary: heading or ol[type="1"], au niveau de #section__content
let boundary = null;
let sibling = paragraph.nextElementSibling;
let sibling = topLevel.nextElementSibling;
while (sibling) {
if (sibling.matches('h1, h2, h3, h4, h5, h6, ol[type="1"]')) {
boundary = sibling;
@ -45,7 +50,7 @@ export default class followingNotes extends Handler {
sibling = sibling.nextElementSibling;
}
const mapKey = boundary || paragraph.parentElement;
const mapKey = boundary || sectionContent;
if (!containerMap.has(mapKey)) {
let container = document.createElement("div");
@ -53,7 +58,7 @@ export default class followingNotes extends Handler {
if (boundary) {
boundary.before(container);
} else {
paragraph.parentElement.appendChild(container);
sectionContent.appendChild(container);
}
containerMap.set(mapKey, container);
}

View file

@ -1195,18 +1195,6 @@ Abteilung)</td>
<section id="section__content">
<section>
<h2>Titre niveau 2</h2>
<h2>Titre niveau 2</h2>
<h2>Titre niveau 2</h2>
<h3>Titre niveau 3</h3>
<h3>Titre niveau 3</h3>
<h3>Titre niveau 3</h3>
<h4>Titre niveau 4</h4> <h4>Titre niveau 4</h4> <h4>Titre niveau 4</h4>
<h5>Titre niveau 5</h5><h5>Titre niveau 5</h5><h5>Titre niveau 5</h5>
<h6>Titre niveau 6</h6><h6>Titre niveau 6</h6><h6>Titre niveau 6</h6>
</section>
<h1 id="vorrede"> Vorrede</h1>

View file

@ -5,34 +5,93 @@ export default class thesis extends Handler {
super(chunker, polisher, caller);
}
afterPageLayout(pageElement, page, breakToken){
let nums = pageElement.querySelectorAll('ol[type="1"]');
nums.forEach(function (num) {
const colContainer = num.closest('#section__content') || num.offsetParent;
const colHeight = colContainer.offsetHeight;
let totalHeight = 0;
// Créer un wrapper pour récupérer tous les éléments qui suivent le ol (hors titres et .container-following-note)
// --------------------------------------------------------------------------------------------------------------
beforeParsed(content){
const nums = content.querySelectorAll('ol[type="1"]');
nums.forEach((num) => {
const wrapper = document.createElement('div');
wrapper.classList.add('wrapper-ol');
wrapper.id = 'wrapper-' + (num.getAttribute('start') || '1');
// Collecter les frères/sœurs suivants jusqu'à la prochaine limite
const siblings = [];
let sibling = num.nextElementSibling;
while (sibling) {
if (sibling.matches('ol[type="1"], h1, h2, h3, h4, h5, h6, .container-following-note')) break;
// Le frère commence dans la colonne 2 → stop
if (sibling.offsetTop >= colHeight) break;
// Le frère est coupé entre les deux colonnes → ne compter que la partie en colonne 1
const partHeight = Math.min(sibling.offsetHeight, colHeight - sibling.offsetTop);
totalHeight += partHeight;
siblings.push(sibling);
sibling = sibling.nextElementSibling;
}
if (totalHeight > 0) {
num.style.height = totalHeight + 'px';
}
// Insérer le wrapper à la place du ol
num.before(wrapper);
wrapper.appendChild(num);
siblings.forEach(s => wrapper.appendChild(s));
});
}
afterPageLayout(pageElement, page, breakToken){
const wrappers = pageElement.querySelectorAll('.wrapper-ol');
const minSize = 37; // taille minimal du wrapper pour quil y ait clone (2 lignes)
// Fais un clone du ol pour de la page précédente
// -----------------------------------------------
if (wrappers.length > 0) {
const first = wrappers[0];
if (first.hasAttribute('data-split-from')) {
let idWrapper = first.getAttribute('data-id');
let numPage = pageElement.getAttribute('data-page-number');
let numPrev = parseInt(numPage) - 1;
let prevPage = document.querySelector('#page-' + numPrev);
let olPara = prevPage.querySelector('#' + idWrapper + ' ol[type="1"]');
if (olPara && first.offsetHeight >= minSize) {
const start = olPara.getAttribute('start') || '1';
const olClonePage = document.createElement('ol');
olClonePage.setAttribute('start', start);
olClonePage.setAttribute('type', '1');
olClonePage.classList.add('ol-clone-page');
olClonePage.style.height = first.offsetHeight + 'px';
const li = document.createElement('li');
li.setAttribute('data-item-num', start);
olClonePage.appendChild(li);
first.prepend(olClonePage);
}
}
}
// Fais un clone du ol pour la colonne suivante (dans la même page)
// ----------------------------------------------------------------
wrappers.forEach((wrapper) => {
const ol = wrapper.querySelector('ol[type="1"]');
if (!ol) return;
const rects = wrapper.getClientRects();
if (rects.length === 1) {
ol.style.height = rects[0].height + 'px';
} else if (rects.length === 2) {
ol.style.height = rects[0].height + 'px';
if (rects[1].height >= minSize) {
const olClone = ol.cloneNode(true);
olClone.classList.add('ol-clone');
olClone.style.height = rects[1].height + 'px';
olClone.removeAttribute('id');
ol.after(olClone);
}
}
});
}
}