From 0d56ca3d0d69736bbb5b1d73684dc44c08c6a4bc Mon Sep 17 00:00:00 2001 From: Julie Blanc Date: Tue, 21 Apr 2026 15:40:30 +0200 Subject: [PATCH] wrap intro + add chapterEnd --- css/modules/_layout.scss | 28 +---- css/modules/_notes.scss | 1 + css/modules/_num-paragraph.scss | 7 +- css/modules/_text.scss | 39 +++++-- css/modules/_titles.scss | 13 ++- css/modules/_var.scss | 3 +- css/style.css | 58 ++++----- css/style.css.map | 2 +- js/addPagesNotes.js | 23 ++-- js/beforeAll.js | 201 ++++++++++++++++++++------------ 10 files changed, 217 insertions(+), 158 deletions(-) diff --git a/css/modules/_layout.scss b/css/modules/_layout.scss index dc39435..31a4cf1 100644 --- a/css/modules/_layout.scss +++ b/css/modules/_layout.scss @@ -11,7 +11,9 @@ $indent: 10mm; $unit: calc($content-w/7); :root{ - --unit: #{$unit}; + // --content-w: #{$content-w}; + // --unit: calc(var(--content-w)/7); + --unit: 80px; } @@ -139,15 +141,6 @@ $unit: calc($content-w/7); } -#section__content{ - break-before: right; - -} - - -.page-break{ - break-before: page; -} #section__content h1 .h1-count{ @@ -159,19 +152,8 @@ $unit: calc($content-w/7); } .chapter{ - break-before: left; -} - -.intro{ - color: red; + page: chapter; + break-before: page; } -// #section__content{ -// break-before: left; -// } - - -// #section__content h1:first-of-type{ -// break-before: right; -// } \ No newline at end of file diff --git a/css/modules/_notes.scss b/css/modules/_notes.scss index a6e537e..be8a713 100644 --- a/css/modules/_notes.scss +++ b/css/modules/_notes.scss @@ -12,6 +12,7 @@ position: absolute; top: 0; left: 0; + color: blue; // color: red; } diff --git a/css/modules/_num-paragraph.scss b/css/modules/_num-paragraph.scss index 7c696a8..9e5a78e 100644 --- a/css/modules/_num-paragraph.scss +++ b/css/modules/_num-paragraph.scss @@ -17,11 +17,8 @@ ol[type="1"]{ -ol[type="1"].ol-clone{ - break-before: column; - break-after: avoid; - top: 0; - left: calc($content-w/2 + $gap/2) +.intro ol[type="1"]{ + left: 0px; } diff --git a/css/modules/_text.scss b/css/modules/_text.scss index 5716bc4..8f918a6 100644 --- a/css/modules/_text.scss +++ b/css/modules/_text.scss @@ -61,16 +61,6 @@ blockquote p{ padding-left: 2mm; } -// blockquote u{ -// text-decoration: none; -// text-transform: uppercase; -// font-size: var(--fs-small); -// color: red; -// } - -// u{ -// color: red; -// } ul{ @@ -79,6 +69,9 @@ ul{ + +// THESE -------------------------------------------------- + .p-these{ font-weight: 500; margin-bottom: calc(var(--baseline)*0.5); @@ -97,3 +90,29 @@ ul{ margin-bottom: calc(var(--baseline)*1); } + + +// INTRO -------------------------------------------------- + + + + +.has-intro-1-paragraph .intro, +.has-intro .intro{ + break-after: right; +} +.intro{ + color: red; + p{ + font-size: var(--fs-intro); + padding-left: calc(var(--unit)*1); + line-height: 1.4; + } +} + + +.chapter-end{ + width: 20px; + height: 20px; + background-color: green; +} \ No newline at end of file diff --git a/css/modules/_titles.scss b/css/modules/_titles.scss index bc3d819..b3b7dde 100644 --- a/css/modules/_titles.scss +++ b/css/modules/_titles.scss @@ -16,18 +16,21 @@ // } h1{ - // break-before: page; - break-after: page; - position: absolute; - left: 0; - top: 0; + + // break-before: page; + // break-after: page; + + // position: absolute; + // left: 0; + // top: 0; height: $content-h; // background-color: red; display: flex; flex-direction: column; justify-content: space-between; + // display: none; } diff --git a/css/modules/_var.scss b/css/modules/_var.scss index b602cc3..3035a68 100644 --- a/css/modules/_var.scss +++ b/css/modules/_var.scss @@ -4,8 +4,9 @@ --font-quote: 'Louize', sans-serif; --font-sans: 'Basis Grotesque Pro', sans-serif; --font-size: 12px; - --fs-medium: 15px; + --fs-medium: 15px; --fs-small: 9.8px; + --fs-intro: 16.5px; --baseline: 18px; --indent: 26px; --fs-num: 12px; diff --git a/css/style.css b/css/style.css index 0ac9e72..4078dbc 100644 --- a/css/style.css +++ b/css/style.css @@ -7,6 +7,7 @@ --font-size: 12px; --fs-medium: 15px; --fs-small: 9.8px; + --fs-intro: 16.5px; --baseline: 18px; --indent: 26px; --fs-num: 12px; @@ -33,7 +34,7 @@ body { } :root { - --unit: 20.2857142857mm; + --unit: 80px; } @media print { @@ -235,16 +236,6 @@ body { } } } -#section__content { - -moz-column-break-before: right; - break-before: right; -} - -.page-break { - -moz-column-break-before: page; - break-before: page; -} - #section__content h1 .h1-count { string-set: chapterCount content(text); } @@ -254,12 +245,9 @@ body { } .chapter { - -moz-column-break-before: left; - break-before: left; -} - -.intro { - color: red; + page: chapter; + -moz-column-break-before: page; + break-before: page; } sup { @@ -333,6 +321,27 @@ ul { margin-bottom: calc(var(--baseline) * 1); } +.has-intro-1-paragraph .intro, +.has-intro .intro { + -moz-column-break-after: right; + break-after: right; +} + +.intro { + color: red; +} +.intro p { + font-size: var(--fs-intro); + padding-left: calc(var(--unit) * 1); + line-height: 1.4; +} + +.chapter-end { + width: 20px; + height: 20px; + background-color: green; +} + [data-id=section__content] { position: relative; } @@ -351,21 +360,11 @@ 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: 73mm; +.intro ol[type="1"] { + left: 0px; } #section__content h1 { - -moz-column-break-after: page; - break-after: page; - position: absolute; - left: 0; - top: 0; height: 215mm; display: flex; flex-direction: column; @@ -525,6 +524,7 @@ ol[type="1"].ol-clone { position: absolute; top: 0; left: 0; + color: blue; } .body-note { diff --git a/css/style.css.map b/css/style.css.map index 881eab3..345b482 100644 --- a/css/style.css.map +++ b/css/style.css.map @@ -1 +1 @@ -{"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/_notes.scss","modules/_toc.scss"],"names":[],"mappings":"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","file":"style.css"} \ No newline at end of file +{"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/_notes.scss","modules/_toc.scss"],"names":[],"mappings":"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","file":"style.css"} \ No newline at end of file diff --git a/js/addPagesNotes.js b/js/addPagesNotes.js index 3a4763f..5ee976c 100644 --- a/js/addPagesNotes.js +++ b/js/addPagesNotes.js @@ -57,6 +57,10 @@ export default class addPagesNotes extends Handler { if (prevPage) { let content = prevPage.querySelector('[data-id="section__content"]'); let contentId = prevPage.querySelector('#section__content'); + let titleH1 = prevPage.querySelector('h1'); + if(titleH1){ + container.classList.add('container-note-first'); + } if(content){ content.appendChild(container); }else if(contentId){ @@ -71,19 +75,22 @@ export default class addPagesNotes extends Handler { - // create blank left page + // create blank left page if ( page.element.classList.contains('pagedjs_right_page') && - page.element.querySelector('[data-id="section__content"]') && - !pageElement.querySelector('.before-h1') + page.element.classList.contains('pagedjs_chapter_page') ) { + // Check if previous page is not end chapter + let pageEnd = pageElement.querySelector(".chapter-end"); - let notesPage = chunker.addPage(); - notesPage.element.classList.add('page-notes'); + if (!pageEnd) { + let notesPage = chunker.addPage(); + notesPage.element.classList.add('page-notes'); - // Make margin boxes visible (hasContent is set during polishing, which skips added pages) - notesPage.element.querySelector('.pagedjs_margin-bottom-left')?.classList.add('hasContent'); - notesPage.element.querySelector('.pagedjs_margin-bottom-center')?.classList.add('hasContent'); + // Make margin boxes visible (hasContent is set during polishing, which skips added pages) + notesPage.element.querySelector('.pagedjs_margin-bottom-left')?.classList.add('hasContent'); + notesPage.element.querySelector('.pagedjs_margin-bottom-center')?.classList.add('hasContent'); + } } } } diff --git a/js/beforeAll.js b/js/beforeAll.js index 2644d2f..83a2a79 100644 --- a/js/beforeAll.js +++ b/js/beforeAll.js @@ -9,82 +9,8 @@ export default class beforeAll extends Handler { thesis(content); - - - // for break - // let headings = content.querySelectorAll('#section__content h1'); - // headings.forEach(function (h1) { - // let div = document.createElement('div'); - // div.classList.add('before-h1'); - // h1.insertAdjacentElement('beforebegin', div); - // }); - - // Wrap h1 and following content in .chapter sections - const sectionContent = content.querySelector('#section__content'); - if (sectionContent) { - const h1s = sectionContent.querySelectorAll(':scope > h1'); - h1s.forEach(h1 => { - // Create chapter section - const chapter = document.createElement('section'); - chapter.classList.add('chapter'); - - // Insert chapter before h1 - h1.parentNode.insertBefore(chapter, h1); - - // Move h1 into chapter - chapter.appendChild(h1); - - // Move following siblings until next h1 or end - let nextElement = chapter.nextElementSibling; - while (nextElement && nextElement.tagName.toLowerCase() !== 'h1') { - const current = nextElement; - nextElement = nextElement.nextElementSibling; - chapter.appendChild(current); - } - }); - - // Wrap content between h1 and h2 in .intro if chapter doesn't contain .p-these - const chapters = sectionContent.querySelectorAll('.chapter'); - chapters.forEach(chapter => { - if (chapter.querySelector('.p-these')) { - // Case 1: Chapter has thesis - chapter.classList.add('has-thesis'); - } else { - const h1 = chapter.querySelector('h1'); - const nextHeading = chapter.querySelector('h2, h3, h4, h5, h6'); - - if (h1) { - const intro = document.createElement('div'); - intro.classList.add('intro'); - - if (nextHeading) { - // Case 2: Has heading, wrap all content between h1 and that heading - h1.parentNode.insertBefore(intro, h1.nextSibling); - - let current = intro.nextSibling; - while (current && current !== nextHeading) { - const next = current.nextSibling; - intro.appendChild(current); - current = next; - } - chapter.classList.add('has-intro'); - } else { - // Case 3: No heading, wrap only the first paragraph after h1 - let current = h1.nextSibling; - while (current && current.tagName.toLowerCase() !== 'p') { - current = current.nextSibling; - } - - if (current) { - current.parentNode.insertBefore(intro, current); - intro.appendChild(current); - chapter.classList.add('has-intro-1-paragraph'); - } - } - } - } - }); - } + wrapChapterAndIntro(content); + } @@ -92,6 +18,129 @@ export default class beforeAll extends Handler { } + +function wrapChapterAndIntro(content){ + // Wrap h1 and following content in .chapter sections + const sectionContent = content.querySelector('#section__content'); + if (sectionContent) { + const h1s = sectionContent.querySelectorAll(':scope > h1'); + h1s.forEach(h1 => { + // Create chapter section + const chapter = document.createElement('section'); + chapter.classList.add('chapter'); + + // Insert chapter before h1 + h1.parentNode.insertBefore(chapter, h1); + + // Move h1 into chapter + chapter.appendChild(h1); + + // Move following siblings until next h1 or end + let nextElement = chapter.nextElementSibling; + while (nextElement && nextElement.tagName.toLowerCase() !== 'h1') { + const current = nextElement; + nextElement = nextElement.nextElementSibling; + chapter.appendChild(current); + } + + let divEnd = document.createElement('div'); + divEnd.classList.add("chapter-end"); // need to avoid to add new page + chapter.appendChild(divEnd); + + }); + + + + // Wrap content between h1 and h2 in .intro if chapter doesn't contain .p-these + const chapters = sectionContent.querySelectorAll('.chapter'); + chapters.forEach(chapter => { + if (chapter.querySelector('.p-these')) { + // Case 1: Chapter has thesis + chapter.classList.add('has-thesis'); + } else { + const h1 = chapter.querySelector('h1'); + + if (h1) { + // Calculate chapter content length excluding notes + const chapterClone = chapter.cloneNode(true); + // Remove notes (common note selectors) + chapterClone.querySelectorAll('.note, .footnote, .sidenote, aside, [role="note"]').forEach(note => note.remove()); + const contentLength = chapterClone.textContent.trim().length; + + const intro = document.createElement('div'); + intro.classList.add('intro'); + + if (contentLength < 5000) { + // Case 2: Short chapter, wrap all content after h1 + h1.parentNode.insertBefore(intro, h1.nextSibling); + + let current = intro.nextSibling; + while (current) { + const next = current.nextSibling; + intro.appendChild(current); + current = next; + } + chapter.classList.add('has-only-intro'); + } else { + const nextHeading = chapter.querySelector('h2, h3, h4, h5, h6'); + + if (nextHeading) { + // Case 3: Has heading, wrap all content between h1 and that heading + h1.parentNode.insertBefore(intro, h1.nextSibling); + + let current = intro.nextSibling; + while (current && current !== nextHeading) { + const next = current.nextSibling; + intro.appendChild(current); + current = next; + } + chapter.classList.add('has-intro'); + } else { + // Case 4: No heading, wrap first ol[type="1"] and first p after h1 + h1.parentNode.insertBefore(intro, h1.nextSibling); + + let foundOl = false; + let foundP = false; + let current = intro.nextSibling; + + while (current && (!foundOl || !foundP)) { + const next = current.nextSibling; + + // Skip text nodes (whitespace) + if (current.nodeType !== 1) { + current = next; + continue; + } + + const isOlType1 = current.tagName.toLowerCase() === 'ol' && current.getAttribute('type') === '1'; + const isP = current.tagName.toLowerCase() === 'p'; + + if (isOlType1 && !foundOl) { + intro.appendChild(current); + foundOl = true; + current = next; + } else if (isP && !foundP) { + intro.appendChild(current); + foundP = true; + current = next; + } else if (!isOlType1 && !isP) { + break; + } else { + current = next; + } + } + + if (intro.children.length > 0) { + chapter.classList.add('has-intro-1-paragraph'); + } + } + } + } + } + }); + } +} + function thesis(content){ const strongs = content.querySelectorAll('strong'); strongs.forEach(strong => {