diff --git a/maquette-tests/assets/css/base/_layout.scss b/maquette-tests/assets/css/base/_layout.scss index dbcc3a3..2268ef0 100644 --- a/maquette-tests/assets/css/base/_layout.scss +++ b/maquette-tests/assets/css/base/_layout.scss @@ -13,7 +13,7 @@ @page { size: 165mm 240mm; margin-top: 10mm; - margin-bottom: 60mm; + margin-bottom: 20mm; bleed: 6mm; marks: crop; diff --git a/maquette-tests/assets/css/base/_var.scss b/maquette-tests/assets/css/base/_var.scss index fb30b3f..7db039e 100644 --- a/maquette-tests/assets/css/base/_var.scss +++ b/maquette-tests/assets/css/base/_var.scss @@ -3,6 +3,7 @@ --font: 'Routed Gothic', sans-serif; // --font: 'HAL Timezone', serif; --mono: 'Selectric Mono', monospace; + --mono: 'Ivory Mono', monospace; // --mono: 'HAL Timezone Mono', monospace; --note: 'Routed Gothic', serif; --title: 'HNoailles Times Triplex', sans-serif; diff --git a/maquette-tests/assets/css/modules/_chapter-header.scss b/maquette-tests/assets/css/modules/_chapter-header.scss index 62590ac..8c2a9ef 100644 --- a/maquette-tests/assets/css/modules/_chapter-header.scss +++ b/maquette-tests/assets/css/modules/_chapter-header.scss @@ -31,6 +31,7 @@ .chapter-header .type{ margin-bottom: calc(var(--baseline)*1); + display: none; // text-align: center; } @@ -38,28 +39,37 @@ } .chapter-header .bio{ - font-family: var(--mono); - // text-align: right; + margin-top: calc(var(--baseline)*1); + font-family: var(--title); + hyphens: none; - font-size: 11px; + font-size: 12px; line-height: 1.2; - left: 0px!important; + + // left: 0px!important; + .name{ + text-indent: 0; + text-align: left; + font-weight: bold; + } + .description{ + text-indent: -14mm; + padding-left: 14mm; + text-align: left; + font-weight: bold; + } } -.chapter-header .bio{ -margin-top: calc(var(--baseline)*1); - text-align: center; - text-indent: 0; -} + .chapter-header .author{ left: 0px!important; font-size: 26px; line-height: 1; - font-family: var(--title); - font-weight: bold; + font-family: var(--font); + // font-weight: bold; text-align: center; // color: var(--green); text-align: right; diff --git a/maquette-tests/assets/css/style.css b/maquette-tests/assets/css/style.css index ed66bf4..460139a 100644 --- a/maquette-tests/assets/css/style.css +++ b/maquette-tests/assets/css/style.css @@ -4,6 +4,7 @@ :root { --font: "Routed Gothic", sans-serif; --mono: "Selectric Mono", monospace; + --mono: "Ivory Mono", monospace; --note: "Routed Gothic", serif; --title: "HNoailles Times Triplex", sans-serif; --red: #9B0000; @@ -41,7 +42,7 @@ body { @page { size: 165mm 240mm; margin-top: 10mm; - margin-bottom: 60mm; + margin-bottom: 20mm; bleed: 6mm; marks: crop; } @@ -403,29 +404,34 @@ body { .chapter-header .type { margin-bottom: calc(var(--baseline) * 1); -} - -.chapter-header .bio { - font-family: var(--mono); - -webkit-hyphens: none; - hyphens: none; - font-size: 11px; - line-height: 1.2; - left: 0px !important; + display: none; } .chapter-header .bio { margin-top: calc(var(--baseline) * 1); - text-align: center; + font-family: var(--title); + -webkit-hyphens: none; + hyphens: none; + font-size: 12px; + line-height: 1.2; +} +.chapter-header .bio .name { text-indent: 0; + text-align: left; + font-weight: bold; +} +.chapter-header .bio .description { + text-indent: -14mm; + padding-left: 14mm; + text-align: left; + font-weight: bold; } .chapter-header .author { left: 0px !important; font-size: 26px; line-height: 1; - font-family: var(--title); - font-weight: bold; + font-family: var(--font); text-align: center; text-align: right; } diff --git a/maquette-tests/assets/css/style.css.map b/maquette-tests/assets/css/style.css.map index 2e7a32c..77ab130 100644 --- a/maquette-tests/assets/css/style.css.map +++ b/maquette-tests/assets/css/style.css.map @@ -1 +1 @@ -{"version":3,"sources":["base/_type.scss","base/_var.scss","style.css","base/_body.scss","base/_layout.scss","base/_type-specimen.scss","modules/_text.scss","modules/_notes.scss","modules/_chapter-header.scss","modules/_item-decor.scss"],"names":[],"mappings":"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","file":"style.css"} \ No newline at end of file +{"version":3,"sources":["base/_type.scss","base/_var.scss","style.css","base/_body.scss","base/_layout.scss","base/_type-specimen.scss","modules/_text.scss","modules/_notes.scss","modules/_chapter-header.scss","modules/_item-decor.scss"],"names":[],"mappings":"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","file":"style.css"} \ No newline at end of file diff --git a/maquette-tests/csspageweaver/manifest.json b/maquette-tests/csspageweaver/manifest.json index a31784b..cf6684c 100644 --- a/maquette-tests/csspageweaver/manifest.json +++ b/maquette-tests/csspageweaver/manifest.json @@ -7,16 +7,15 @@ "previewPage", "reloadInPlace", "fullPage", - "inlineNotes", - "sidenotes"], + "inlineNotes" + ], "pluginsParameters":{ "inlineNotes": { "input": ".footnote-ref", - "containerNotes": "#footnotes", - "section": ".chapter" + "containerNotes": "#footnotes" }, - "sidenotes": { - "selector": ".inline-note", + "footnotesFix": { + "selector": ".footnote", "reset": ".chapter" } diff --git a/maquette-tests/csspageweaver/plugins/footnotesFix/.gitignore b/maquette-tests/csspageweaver/plugins/footnotesFix/.gitignore new file mode 100644 index 0000000..496ee2c --- /dev/null +++ b/maquette-tests/csspageweaver/plugins/footnotesFix/.gitignore @@ -0,0 +1 @@ +.DS_Store \ No newline at end of file diff --git a/maquette-tests/csspageweaver/plugins/footnotesFix/README.md b/maquette-tests/csspageweaver/plugins/footnotesFix/README.md new file mode 100644 index 0000000..b6d9540 --- /dev/null +++ b/maquette-tests/csspageweaver/plugins/footnotesFix/README.md @@ -0,0 +1,95 @@ +# Plugin to fix footnotes reset issue + +This plugin fix the issue of footnote reset. + +You can use the current method to declare footnotes: + +```CSS +@page { + @footnote { + float: bottom; + } + } + +.pagedjs_footnote { + float: footnote; +} +``` + +This style is also added to the default stylesheet `footnotes.css` of this plugin. You can delete it if you have already declared footnotes in your own stylesheet (don't forget to remove it from the `config.json` as well). + + +## How to use the plugin + +Add this folder to `csspageweaver/plugins/`. + +Call the plugin in `csspageweaver/manifest.json`: + +```json + "plugins": [ + "footnotesFix", + // other plugins ... + ], +``` + +## Configuration + +In `manifest.json`, you can modify/add some parameters: + +```json + "plugins":{ + "footnotesFix" + }, + "pluginsParameters":{ + "footnotesFix": { + "selector": ".footnote", + "reset": ".chapter" + } + }, +``` + +All the parameters are optional. + +- `selector` → CSS selector for the note element (must be inline in the HTML), by default is `.footnote` +- `reset` → CSS selector where you want reset note counter. If you want to reset on the page: `page` + + +## Notes in HTML + +In your HTML, the note must be a `` inserted in the text, like this: + +```HTML +Donec tincidunt, odio vel vestibulum sollicitudin, nibh dolor tempor sapien, ac laoreet +sem felis ut purus. Vestibulum neque ex, ullamcorper sit +amet diam sed, pharetra laoreet sem. Morbi cursus bibendum consectetur. Nullam vel +lacus congue nibh pulvinar maximus sit amet eu risus. Curabitur semper odio mauris, nec +imperdiet velit pharetra non. Aenean accumsan nulla ac ex iaculis interdum. +``` + +You can use the [inline_notes` plugin](https://gitlab.com/csspageweaver/plugins/inline_notes) to create these span elements from listed notes, which are more common in conversion tools like Pandoc. + +The inline_notes plugin should be called before the footnotes plugin in the `manifest.json`: + + +```json + "plugins": [ + "inline_notes", + "footnotes_fix", + // other plugins ... + ], +``` + +## Styling call & footer + +It's possible to change the styles of call notes and marker notes directly in your stylesheet like in the following code: + +```CSS +::footnote-call{ + font-weight: bold; +} + +::footnote-marker{ + font-weight: bold; +} +``` + diff --git a/maquette-tests/csspageweaver/plugins/footnotesFix/config.json b/maquette-tests/csspageweaver/plugins/footnotesFix/config.json new file mode 100644 index 0000000..b25395b --- /dev/null +++ b/maquette-tests/csspageweaver/plugins/footnotesFix/config.json @@ -0,0 +1,9 @@ +{ + "name": "Footnotes", + "description": "Fix footnote reset", + "author": ["Julie Blanc"], + "licence": "MIT", + "version": "1.0", + "hook": "footnotes.js", + "stylesheet": "footnotes.css" +} \ No newline at end of file diff --git a/maquette-tests/csspageweaver/plugins/footnotesFix/footnotes.css b/maquette-tests/csspageweaver/plugins/footnotesFix/footnotes.css new file mode 100644 index 0000000..9052428 --- /dev/null +++ b/maquette-tests/csspageweaver/plugins/footnotesFix/footnotes.css @@ -0,0 +1,9 @@ +@page { + @footnote { + float: bottom; + } + } + +.pagedjs_footnote { + float: footnote; +} \ No newline at end of file diff --git a/maquette-tests/csspageweaver/plugins/footnotesFix/footnotes.js b/maquette-tests/csspageweaver/plugins/footnotesFix/footnotes.js new file mode 100644 index 0000000..5d56992 --- /dev/null +++ b/maquette-tests/csspageweaver/plugins/footnotesFix/footnotes.js @@ -0,0 +1,84 @@ +/** + * @name Footnotes + * @file Reset the way footnote are counted + * @author Julie Blanc + * @see { @link https://gitlab.com/csspageweaver/plugins/footnotesFix/ } + */ + +import { Handler } from '/csspageweaver/lib/paged.esm.js'; + +export default class footnotes extends Handler { + + constructor(chunker, polisher, caller) { + super(chunker, polisher, caller); + this.parameters = cssPageWeaver.features.footnotesFix.parameters; + this.reset = this.parameters?.reset ; + this.counter = 0; + this.selector = this.parameters?.selector || ".footnote"; + } + + beforeParsed(content) { + + + let notes = content.querySelectorAll(this.selector); + notes.forEach(function (note, index) { + note.classList.add("pagedjs_footnote"); + }); + + + + if(this.reset){ + let elems = content.querySelectorAll(this.reset); + elems.forEach(function (elem, index) { + var span = document.createElement('span'); + span.classList.add("reset-fix-footnote"); + span.style.position = "absolute"; + elem.insertBefore(span, elem.firstChild); + }); + }else{ + console.log("[footnotesFix] no reset") + } + + } + + + afterPageLayout(pageElement, page, breakToken){ + + if(this.reset){ + + // reset on pages + if(this.reset === "page"){ + this.counter = 0; + } + + // reset on specific element + let newchapter = pageElement.querySelector('.reset-fix-footnote'); + if(newchapter){ + this.counter = 0; + } + + let footnotes = pageElement.querySelectorAll(".pagedjs_footnote_content [data-note]"); + + let callnotes = pageElement.querySelectorAll('a.pagedjs_footnote'); + callnotes.forEach((call, index) => { + + this.counter = this.counter + 1; // increment + let num = this.counter - 1; + + // update data-counter for call + call.setAttribute('data-counter-footnote-increment', num); + call.style.counterReset = "footnote " + num; + + // update data-counter for marker + let footnote = footnotes[index]; + let dataCounter = num + 1; + footnote.setAttribute('data-counter-note', dataCounter); + footnote.style.counterReset = "footnote-marker " + num; + + }); + } + } + + + +} \ No newline at end of file diff --git a/maquette-tests/csspageweaver/plugins/inlineNotes/inlineNotes.js b/maquette-tests/csspageweaver/plugins/inlineNotes/inlineNotes.js index 840ad98..a68bbe0 100644 --- a/maquette-tests/csspageweaver/plugins/inlineNotes/inlineNotes.js +++ b/maquette-tests/csspageweaver/plugins/inlineNotes/inlineNotes.js @@ -11,7 +11,6 @@ export default class inlineNotes extends Handler { constructor(chunker, polisher, caller) { super(chunker, polisher, caller); - this.section = cssPageWeaver.features.inlineNotes.parameters?.section || false, this.input = cssPageWeaver.features.inlineNotes.parameters?.input || ".footnote-ref"; // ← CSS selector of the call element this.containerNotes = cssPageWeaver.features.inlineNotes.parameters?.containerNotes || "#footnotes"; // ← CSS selector of the container of the footnote this.newClass = cssPageWeaver.features.inlineNotes.parameters?.newClass || "inline-note"; // ← Class of the span create for the note @@ -22,7 +21,6 @@ export default class inlineNotes extends Handler { inlineNotesHandler({ content: content, input: this.input, - section: this.section, containerNotes: this.containerNotes, type: this.newClass }); @@ -37,25 +35,13 @@ function inlineNotesHandler(params){ let content = params.content; let input = params.input; let type = params.type; - let section = params.section; - let containerNotes = params.containerNotes; + + createNotes(content, input, type); - if (section) { - let sections = content.querySelectorAll(section); - sections.forEach(sectionEl => { - createNotes(sectionEl, input, type); - let noteContainer = sectionEl.querySelector(containerNotes); - if (noteContainer) { - noteContainer.remove(); - } - }); - } else { - createNotes(content, input, type); - let noteContainer = content.querySelector(containerNotes); - if (noteContainer) { + let noteContainer = content.querySelector(params.containerNotes); + if(noteContainer){ noteContainer.remove(); - } - } + } } diff --git a/maquette-tests/index.html b/maquette-tests/index.html index 659705d..a588bce 100644 --- a/maquette-tests/index.html +++ b/maquette-tests/index.html @@ -13,6 +13,8 @@ + + @@ -31,10 +33,13 @@

Un robot-poète ne nous fait toujours pas peur

Essai

Olivain Porry

-

Olivain Porry est artiste, docteur en recherche-création (SACRe) du laboratoire EnsadLab +

+

Olivain Porry

+

est artiste, docteur en recherche-création (SACRe) du laboratoire EnsadLab (université PSL) et diplômé d'un DNSEP de l'École des Beaux-Arts de Nantes. Son travail plastique se concentre sur l'émergence, dans une expérience esthétique, de modalités relationnelles entre public, dispositif artistique et environnement.

+

Entouré d’un cadre noir et brillant, posé sur une surface blanche et