diff --git a/css/modules/_footnotes.scss b/css/modules/_footnotes.scss index 84e1e3d..964aaf5 100644 --- a/css/modules/_footnotes.scss +++ b/css/modules/_footnotes.scss @@ -1,48 +1,88 @@ -@page { - @footnote { - float: bottom; - footnote-policy: auto; - } - } +// @page { +// @footnote { +// float: bottom; +// footnote-policy: auto; +// } +// } - .pagedjs_footnote_content{ - padding-top: calc(var(--baseline)*1); - } +// .pagedjs_footnote_content{ +// padding-top: calc(var(--baseline)*1); +// } -.inline-note { - float: footnote; - footnote-policy: auto; - font-size: 9px; - line-height: calc(var(--baseline)*0.8); - padding-left: var(--indent); - position: relative; - // font-weight: 100; +// .inline-note { +// float: footnote; +// footnote-policy: auto; +// font-size: 9px; +// line-height: calc(var(--baseline)*0.8); +// padding-left: var(--indent); +// position: relative; +// // font-weight: 100; - &::marker{ - display: none; - content: ""; - } +// &::marker{ +// display: none; +// content: ""; +// } -} +// } -[data-counter-note]{ -&::before{ - content: attr(data-counter-note) "."; - position: absolute; - // left: calc(var(--indent)*-1); - left: 0px; - } -} +// [data-counter-note]{ +// &::before{ +// content: attr(data-counter-note) "."; +// position: absolute; +// left: 0px; +// } +// } -[data-footnote-call]{ - font-size: 9px; -} +// [data-footnote-call]{ +// font-size: 9px; +// } .footnote-ref{ font-family: var(--font-title); line-height: 0; - font-size: 9px; + font-size: var(--fs-small); font-weight: 500; +} + + +#footnotes{ + break-before: right; + + .title-part{ + font-family: var(--font-title); + font-size: 1.1rem; + font-weight: 500; + line-height: calc(var(--baseline)*1.2); + margin-top: calc(var(--baseline)*2); + padding-bottom: calc(var(--baseline)*1); + padding-right: 2ch; + padding-left: 2ch; + text-align: center; + text-wrap: balance; + &::before{ + content: attr(data-part-number) ". " + } + } + + li{ + font-size: var(--fs-small); + + // &::marker{ + // font-family: var(--font-title); + // font-weight: 500; + // } + } + + .footnote-back{ + display: none; + } + + + +} + +[data-id="footnotes"][data-split-from] > :first-child { + margin-top: 0; } \ No newline at end of file diff --git a/css/modules/_layout.scss b/css/modules/_layout.scss index 238d1af..ac01000 100644 --- a/css/modules/_layout.scss +++ b/css/modules/_layout.scss @@ -9,8 +9,8 @@ marks: crop; } @page:left { - margin-left: 22mm; - margin-right: 22mm; + margin-left: 18mm; + margin-right: 26mm; @bottom-left { content: counter(page); font-family: var(--font-title); @@ -24,8 +24,8 @@ // } } @page:right { - margin-left: 32mm; - margin-right: 22mm; + margin-left: 26mm; + margin-right: 18mm; @bottom-right { content: counter(page); font-family: var(--font-title); @@ -44,7 +44,7 @@ transform: rotate(90deg); text-align: left; position: relative; - left: 18mm; + left: 14mm; padding-left: 5px; } diff --git a/css/modules/_text.scss b/css/modules/_text.scss index f5a22df..3650501 100644 --- a/css/modules/_text.scss +++ b/css/modules/_text.scss @@ -39,8 +39,8 @@ ol[type="1"] + p{ blockquote{ padding-left: calc(var(--indent)*1); - font-size: 9px; - line-height: calc(var(--baseline)*0.75); + font-size: var(--fs-small); + // line-height: calc(var(--baseline)*0.75); margin-top: calc(var(--baseline)*0.5); margin-bottom: calc(var(--baseline)*0.5); @@ -55,12 +55,8 @@ blockquote + ol + p{ .these{ - - font-family: var(--font-title); - // color: red; - + font-family: var(--font-title); margin-bottom: calc(var(--baseline)*1); - } diff --git a/css/modules/_titles.scss b/css/modules/_titles.scss index 430080f..82d3228 100644 --- a/css/modules/_titles.scss +++ b/css/modules/_titles.scss @@ -5,6 +5,7 @@ h1, h2, h3 , h4{ break-inside: avoid; break-after: avoid; + text-wrap: balance; /* hack for avoiding break-after */ margin-bottom: calc(var(--baseline)*-3); @@ -18,6 +19,7 @@ h5, h6 { break-inside: avoid; break-after: avoid; + text-wrap: balance; /* hack for avoiding break-after */ margin-bottom: calc(var(--baseline)*-2); @@ -70,11 +72,9 @@ font-weight: 500; text-transform: uppercase; line-height: calc(var(--baseline)*1.2); - // text-align: center; position: relative; margin-top: calc(var(--baseline)*1 + 6px); padding-bottom: calc(var(--baseline)*1); - // padding-left: 2ch; padding-right: 2ch; &::before{ display: block; diff --git a/css/modules/_var.scss b/css/modules/_var.scss index 6ec784f..bd1e219 100644 --- a/css/modules/_var.scss +++ b/css/modules/_var.scss @@ -3,6 +3,7 @@ --font-title: 'Allium Rounded', sans-serif; --font-sans: 'Allium Rounded', sans-serif; --font-size: 11px; + --fs-small: 9.5px; --fs-num: 14px; --baseline: 16px; diff --git a/css/style.css b/css/style.css index 751cc48..f1129a9 100644 --- a/css/style.css +++ b/css/style.css @@ -4,6 +4,7 @@ --font-title: "Allium Rounded", sans-serif; --font-sans: "Allium Rounded", sans-serif; --font-size: 11px; + --fs-small: 9.5px; --fs-num: 14px; --baseline: 16px; --indent: 26px; @@ -38,8 +39,8 @@ body { marks: crop; } @page :left { - margin-left: 22mm; - margin-right: 22mm; + margin-left: 18mm; + margin-right: 26mm; @bottom-left { content: counter(page); font-family: var(--font-title); @@ -48,8 +49,8 @@ body { } } @page :right { - margin-left: 32mm; - margin-right: 22mm; + margin-left: 26mm; + margin-right: 18mm; @bottom-right { content: counter(page); font-family: var(--font-title); @@ -67,7 +68,7 @@ body { transform: rotate(90deg); text-align: left; position: relative; - left: 18mm; + left: 14mm; padding-left: 5px; } } @@ -213,8 +214,7 @@ ol[type="1"] + p { blockquote { padding-left: calc(var(--indent) * 1); - font-size: 9px; - line-height: calc(var(--baseline) * 0.75); + font-size: var(--fs-small); margin-top: calc(var(--baseline) * 0.5); margin-bottom: calc(var(--baseline) * 0.5); } @@ -338,6 +338,7 @@ ol[type="1"]{ break-inside: avoid; -moz-column-break-after: avoid; break-after: avoid; + text-wrap: balance; /* hack for avoiding break-after */ margin-bottom: calc(var(--baseline) * -3); } @@ -351,6 +352,7 @@ ol[type="1"]{ break-inside: avoid; -moz-column-break-after: avoid; break-after: avoid; + text-wrap: balance; /* hack for avoiding break-after */ margin-bottom: calc(var(--baseline) * -2); } @@ -455,46 +457,43 @@ ol[type="1"]{ margin-top: 0; } -@page { - @footnote { - float: bottom; - footnote-policy: auto; - } -} -.pagedjs_footnote_content { - padding-top: calc(var(--baseline) * 1); -} - -.inline-note { - float: footnote; - footnote-policy: auto; - font-size: 9px; - line-height: calc(var(--baseline) * 0.8); - padding-left: var(--indent); - position: relative; -} -.inline-note::marker { - display: none; - content: ""; -} - -[data-counter-note]::before { - content: attr(data-counter-note) "."; - position: absolute; - left: 0px; -} - -[data-footnote-call] { - font-size: 9px; -} - .footnote-ref { font-family: var(--font-title); line-height: 0; - font-size: 9px; + font-size: var(--fs-small); font-weight: 500; } +#footnotes { + -moz-column-break-before: right; + break-before: right; +} +#footnotes .title-part { + font-family: var(--font-title); + font-size: 1.1rem; + font-weight: 500; + line-height: calc(var(--baseline) * 1.2); + margin-top: calc(var(--baseline) * 2); + padding-bottom: calc(var(--baseline) * 1); + padding-right: 2ch; + padding-left: 2ch; + text-align: center; + text-wrap: balance; +} +#footnotes .title-part::before { + content: attr(data-part-number) ". "; +} +#footnotes li { + font-size: var(--fs-small); +} +#footnotes .footnote-back { + display: none; +} + +[data-id=footnotes][data-split-from] > :first-child { + margin-top: 0; +} + #section__list-of-abbr { display: none; color: red; diff --git a/css/style.css.map b/css/style.css.map index c04a8f2..9626662 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/_titles-counters.scss","modules/_titles.scss","modules/_footnotes.scss","modules/_list-of-abbr.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/_titles-counters.scss","modules/_titles.scss","modules/_footnotes.scss","modules/_list-of-abbr.scss"],"names":[],"mappings":"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","file":"style.css"} \ No newline at end of file diff --git a/csspageweaver/manifest.json b/csspageweaver/manifest.json index ffd0e07..e5a0aed 100644 --- a/csspageweaver/manifest.json +++ b/csspageweaver/manifest.json @@ -11,8 +11,7 @@ } }, "hook": [ - "/js/custom-handler-example-1.js", - "/js/custom-handler-example-2.js" + "/js/sectionedFootnotes.js" ] } diff --git a/js/custom-handler-example-1.js b/js/custom-handler-example-1.js deleted file mode 100644 index 2b01603..0000000 --- a/js/custom-handler-example-1.js +++ /dev/null @@ -1,21 +0,0 @@ -import { Handler } from '/csspageweaver/lib/paged.esm.js'; - -export default class myCustomHandler1 extends Handler { - constructor(chunker, polisher, caller) { - super(chunker, polisher, caller); - } - - beforeParsed(content){ - // let h2 = content.querySelectorAll('h2'); - // h2.forEach( h2 => { - // h2.insertAdjacentHTML("afterbegin", '🍄'); - // }); - } - - afterParsed(parsed) { - console.info("%c [CSS Page Weaver] Example custom handler 1 with afterParsed hook (see js/custom-handler-example-1.js", 'color: green;'); - } - -} - - diff --git a/js/custom-handler-example-2.js b/js/custom-handler-example-2.js deleted file mode 100644 index 5111051..0000000 --- a/js/custom-handler-example-2.js +++ /dev/null @@ -1,16 +0,0 @@ -import { Handler } from '/csspageweaver/lib/paged.esm.js'; - - -export default class myCustomHandler2 extends Handler { - constructor(chunker, polisher, caller) { - super(chunker, polisher, caller); - } - - - afterPageLayout(pageElement, page, breakToken) { - if(pageElement.id == "page-1"){ - console.info("%c [CSS Page Weaver] Example custom handler 2 with afterPageLayout hook (see js/custom-handler-example-2.js", 'color: green;') - } - } -} - diff --git a/js/sectionedFootnotes.js b/js/sectionedFootnotes.js new file mode 100644 index 0000000..53faae0 --- /dev/null +++ b/js/sectionedFootnotes.js @@ -0,0 +1,124 @@ +import { Handler } from '/csspageweaver/lib/paged.esm.js'; + +export default class SectionedFootnotes extends Handler { + constructor(chunker, polisher, caller) { + super(chunker, polisher, caller); + } + + beforeParsed(content){ + + const sectionContent = content.querySelector('#section__content'); + const footnotesSection = content.querySelector('#footnotes'); + + if (!sectionContent || !footnotesSection) { + console.warn("Section content ou footnotes non trouvĂ©"); + return; + } + + const originalOl = footnotesSection.querySelector('ol'); + if (!originalOl) { + console.warn("Liste de footnotes non trouvĂ©e"); + return; + } + + const allH1s = sectionContent.querySelectorAll('h1'); + + const noteToPartMap = new Map(); + + allH1s.forEach((h1, partIndex) => { + // Trouver le prochain h1 ou la fin de la section + const nextH1 = allH1s[partIndex + 1]; + + // RĂ©cupĂ©rer tous les Ă©lĂ©ments entre ce h1 et le suivant + let current = h1.nextElementSibling; + while (current && current !== nextH1) { + // Chercher les footnote-ref dans cet Ă©lĂ©ment + const refs = current.querySelectorAll('.footnote-ref'); + refs.forEach(ref => { + const href = ref.getAttribute('href'); + if (href && href.startsWith('#fn')) { + const noteNum = href.replace('#fn', ''); + noteToPartMap.set(noteNum, partIndex); + } + }); + if (current.classList && current.classList.contains('footnote-ref')) { + const href = current.getAttribute('href'); + if (href && href.startsWith('#fn')) { + const noteNum = href.replace('#fn', ''); + noteToPartMap.set(noteNum, partIndex); + } + } + current = current.nextElementSibling; + } + }); + + const notesByPart = new Map(); + const allNotes = originalOl.querySelectorAll('li[id^="fn"]'); + + allNotes.forEach(note => { + const noteId = note.getAttribute('id'); + const noteNum = noteId.replace('fn', ''); + const partIndex = noteToPartMap.get(noteNum); + + if (partIndex !== undefined) { + if (!notesByPart.has(partIndex)) { + notesByPart.set(partIndex, []); + } + notesByPart.get(partIndex).push({ + num: parseInt(noteNum), + element: note + }); + } + }); + + const sortedParts = Array.from(notesByPart.keys()).sort((a, b) => a - b); + + // Vider la section footnotes (garder le hr s'il existe) + const hr = footnotesSection.querySelector('hr'); + footnotesSection.innerHTML = ''; + if (hr) { + footnotesSection.appendChild(hr); + } + + // Add title section + const mainTitle = document.createElement('h1'); + mainTitle.textContent = 'Notizen'; + footnotesSection.appendChild(mainTitle); + + sortedParts.forEach(partIndex => { + const h1 = allH1s[partIndex]; + const notes = notesByPart.get(partIndex); + + notes.sort((a, b) => a.num - b.num); + + if (notes.length > 0) { + // Upper-alpha counter + const titlePart = document.createElement('h2'); + titlePart.className = 'title-part'; + const letter = String.fromCharCode(65 + partIndex); // 65 = 'A' + titlePart.setAttribute('data-part-number', letter); + titlePart.textContent = h1.textContent.trim(); + footnotesSection.appendChild(titlePart); + + // New ol with new start + const newOl = document.createElement('ol'); + const firstNoteNum = notes[0].num; + newOl.setAttribute('start', firstNoteNum); + + notes.forEach(noteData => { + newOl.appendChild(noteData.element.cloneNode(true)); + }); + + footnotesSection.appendChild(newOl); + } + }); + + sectionContent.parentNode.insertBefore(footnotesSection, sectionContent.nextSibling); + + } + + + +} + + diff --git a/lua/add-style-as-class.lua b/lua/add-style-as-class.lua deleted file mode 100644 index c277278..0000000 --- a/lua/add-style-as-class.lua +++ /dev/null @@ -1,11 +0,0 @@ -function Span(el) - local cs = el.attributes['custom-style'] - if cs then - local class = cs - :lower() - :gsub("%s+", "-") - :gsub("[^a-z0-9%-]", "") - el.classes:insert("style-" .. class) - end - return el -end diff --git a/lua/blockquote.lua b/lua/blockquote.lua deleted file mode 100644 index ce8c43a..0000000 --- a/lua/blockquote.lua +++ /dev/null @@ -1,6 +0,0 @@ -function Para(el) - if el.style then - io.stderr:write("STYLE: " .. el.style .. "\n") - end - return el -end \ No newline at end of file