correction bug paragraphes latour/lampe qui sautent et suppression des espaces blancs avant les paragraphes où ça n'est pas nécessaire

This commit is contained in:
Valentin
2023-06-16 15:09:53 +02:00
parent 587e900bf1
commit 2d3da66526
16 changed files with 262 additions and 30 deletions
@@ -1,25 +1,25 @@
last_checked: 1686146618
last_checked: 1686919637
data:
-
title: 'macOS 13.0 Ventura Apache Setup: Upgrading Homebrew'
url: 'https://getgrav.org/blog/macos-ventura-apache-upgrade-homebrew'
date: 1671969600
nicetime: '5 months ago'
nicetime: '6 months ago'
-
title: 'macOS 13.0 Ventura Apache Setup: LetsEncrypt SSL'
url: 'https://getgrav.org/blog/macos-ventura-apache-ssl'
date: 1671966180
nicetime: '5 months ago'
nicetime: '6 months ago'
-
title: 'macOS 13.0 Ventura Apache Setup: MySQL, Xdebug & More...'
url: 'https://getgrav.org/blog/macos-ventura-apache-mysql-vhost-apc'
date: 1671966000
nicetime: '5 months ago'
nicetime: '6 months ago'
-
title: 'macOS 13.0 Ventura Apache Setup: Multiple PHP Versions'
url: 'https://getgrav.org/blog/macos-ventura-apache-multiple-php-versions'
date: 1671962400
nicetime: '5 months ago'
nicetime: '6 months ago'
-
title: 'Big changes for Email plugin'
url: 'https://getgrav.org/blog/new-email-plugin'
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
last_checked: 1686155787
last_checked: 1686919637
data:
feed:
-
+1
View File
@@ -0,0 +1 @@
27: 'Tue, 13 Jun 2023 08:20:29 +0000'
@@ -67,12 +67,12 @@ Faire une ligne droite du plus petit au plus grand sans se parler.
Lartiste-médiateur encourage les participants à faire la ligne jusquau bout, à prendre le temps de sajuster si nécessaire, jusqu’à ce que le groupe se déclare satisfait du résultat.
[/labeur]
[latour]
texte de Bruno Latour - extrait du rapport dactivité du projet pilote (2021)
Commencer par les arts paraissait troublant. « — Quoi, vous prétendez renouveler la politique en nous proposant de nous mettre en ligne, puis en tas, puis en cercle ? Mais quoi, vous nous prenez pour des gamins de sixième ? — Mais quand même, pourquoi nous faire émettre des sons, en commun, par mille astuces, est-ce que par hasard vous nous prenez pour des vieillards dans un Ehpad à qui il faudrait rafraichir la mémoire par les tubes de leur enfance ? — Attendez, apprendre à émettre un son qui vous mette en résonance avec un participant qui se trouve en face de vous, cest déjà commencer à changer de répertoire. » La « ligne dAlloue » nous confirmait dans notre décision de ne jamais partir de lexpression dopinion, parce que l’émetteur de ces opinions navait pas la bonne amplitude ou ne sonnait pas dans la bonne tonalité. En effet, le « moi je pense que… » « jai mes opinions à moi… » « je tiens à mes valeurs et elles sont inébranlables… », tout ce répertoire daction, peut-être bien adapté avant la tragédie climatique, mais il nest plus très opérant quand il sagit de prendre position devant de nouveaux êtres, ces êtres qui sont précisément en train de faire irruption dans les provinces : le CO2 quest-ce quil fait là ? Les insectes, comment sentir et sonoriser leur disparition ? Les drames de la globalisation, ça se dit comment ? La mobilité ? La montée des eaux ? La fonte des glaces ? La disparition des anciens métiers ? La misère des petits bourgs ? La délocalisation des entreprises ? Larrivée des migrants ? Le silence nouveau de la campagne-désert ? Le climat ? Quel est le « je » capable dabsorber de telles questions et de sexprimer justement à leur propos ? ( … )
Doù là limportance décisive des arts. Les bords de votre « moi » changent parce que vous apprenez, par des exercices bien choisis, à écouter, à entrer en résonance avec dautres manières d’être. Si lon change de pays, ce qui est, après tout, le but de latterrissage, forcément, on change aussi de façons de se comporter. « La politique, dit-on, est lart du possible » — encore faut-il quil y ait des arts pour multiplier les possibles…
[/latour]
[moment]8 — sociométrie[/moment]
[temps]10 - 20 min animé par Loïc[/temps]
[labeur]
@@ -106,14 +106,17 @@ On se réajuste jusqu’à ce que le groupe trouve une position dimmobilité/
On ferme les yeux, on lâche les bras le long du corps et à voix haute, on va dire combien de personnes il y avait dans le champ de vision.
Puis tout doucement on rouvre les yeux. On peut compter le nombre de personnes dans le champ de vision.
les objectifs de lexercice - extrait du rapport dactivité du projet pilote (2021)
Constituer un groupe qui s’écoutent et jouent ensemble, cultiver un état de corps disponible qui a la sensation de lespace tout autour de lui et non seulement devant lui dans la vision dun spectateur extérieur. Chacune ressent sa situation de lintérieur dune croisée de trajectoires complexes à suivre.
[/labeur]
[lampe]
les objectifs de lexercice - extrait du rapport dactivité du projet pilote (2021)
Constituer un groupe qui s’écoutent et jouent ensemble, cultiver un état de corps disponible qui a la sensation de lespace tout autour de lui et non seulement devant lui dans la vision dun spectateur extérieur. Chacune ressent sa situation de lintérieur dune croisée de trajectoires complexes à suivre.
[/lampe]
[tripleimgs2]
![at1_9_1](at1_9_1.jpg "at1_9_1")
![at1_9_2](at1_9_2.jpg "at1_9_2")
![at1_9_3](at1_9_3.jpg "at1_9_3")
[/tripleimgs2]
[moment]10 — description de liris[/moment]
[temps]15 min animé par Loïc[/temps]
[labeur]
@@ -126,14 +129,19 @@ Dans cet exercice, la seule personne qui parle est celle qui décrit (1ère pers
Une fois que les rôles ont été distribués, on va prendre 5min pour la première description et ensuite on tournera pour que tout le monde puisse expérimenter chaque rôle.
Maintenant vous pouvez comparer les descriptions que vous avez produites, avec ce qui est marqué sur vos cartes didentité ou vos passeports concernant la couleur des yeux. Est-ce que cest la même chose ?
[/labeur]
[lampe]
les objectifs de lexercice - extrait du rapport dactivité du projet pilote (2021)
Apprendre à observer et s'entraîner à décrire avec le plus douverture et de précision possible Le fait que lon regarde les yeux de quelquun dautre fait que cela crée de la relation et oblige à une certaine précision dans la description, par respect de la personne que lon a en face Il sagit aussi dun sujet que lon a, en général, jamais regardé et pour lequel on a aucun référentiel Cela permet également de donner une expérience concrète d’émerveillement procurer par le fait de décrire et par la réalité quon observe comparé à la description simplificatrice et rapide que lon donne quand on dit juste la couleur de ses yeux cela permet aussi de parler de lusage de la métaphore pour préciser que les formes esthétiques sont là pour décrire le réel avec encore plus de précision, de sensation et non pour partir dans limaginaire, hors du réel -
[/labeur]
[/lampe]
[tripleimgs]
![at1_10_1](at1_10_1.jpg "at1_10_1")
![at1_10_2](at1_10_2.jpg "at1_10_2")
![at1_10_3](at1_10_3.jpg "at1_10_3")
[/tripleimgs]
[moment]11 — exercice de description oligoptique[/moment]
[temps]25 min animé par Loïc[/temps]
@@ -157,18 +165,20 @@ les objectifs de lexercice - extrait du rapport dactivité du projet pilot
Expérimenter la différence entre description panoramique et description oligoptique. Déplier la dimension d'acteur réseau dune entité.
[/labeur]
[latour]
texte de Bruno Latour - extrait du rapport dactivité du projet pilote (2021)
Jérémie Fontaine : Pourquoi partir des descriptions individuelles au lieu de se soucier plutôt de lintérêt général ?
Bruno Latour : parce que le but est justement de monter trop vite en généralité pour recomposer différemment ce qui fait lintérêt général. Il a là une question de théorie sociale. « On perd de vue cette idée chaque fois que lon confond la notion de réseau avec celle de niveau. Macron est à lElysée dans un bureau. Est-ce que ce bureau est « grand » ? Pas tellement plus de 100 m2. Mais il grandit, sil est connecté par le truchement de téléphones, de conseillers, de statistiques, de conseils, de rapports et de conduits juridiques à « toute la France » (ce qui veut dire aux quelques points pertinents qui représentent, dans son bureau, « toute la France » sans oublier les « visiteurs du soir »). Je suis dans ma petite cabane à Chatelperron : est-ce que je suis plus petit que le président de la République ? Évidemment, le nombre de connections dont je dispose est minuscule par rapport aux siennes. Cette différence de dimension, faut-il pour autant la ranger dans une différence de niveaux en disant que Macron a une vision « globale » que je nai pas ? Oui et non. Si lon entend par là, les connexions toutes locales qui lui permettent de parler au nom de « toute la France », à coup sûr. Mais si lon entend par là, quil y a comme un gigantesque, hégémonique, dominant « pouvoir » qui flotterait au-dessus de moi et qui serait « à un autre niveau », dépendrait dautres ressources et dont Macron ne serait que la personnalisation provisoire, alors, certainement pas. La preuve, cest que si les connections sont mauvaises ou coupées une à une : mauvais conseils, statistiques truquées, mécontentement des militaires, etc. quand Macron parlera, ce ne sera plus « La France », mais lindividu qui occupe un bureau désert de cent m2 à lElysée ou le téléphone a cessé de sonner. Il pourra toujours invoquer à son secours « le pouvoir » ou le « système » ou même le célébrissime « appareil d’État », rien ny fera. Par une situation exactement inverse de celle qui a fait passer Steve Jobs de son petit garage à une entreprise anonyme et géante, le président de la France serait passé dun pouvoir anonyme et global à un simple individu dans son bureau doré. Lhistoire politique est aussi remplie de ces renversements progressifs que lhistoire industrielle.
Lopposition entre individu et société est une fiction polémique et stratégique qui ne résiste pas à lexamen le plus superficiel : prenez le CV de quelquun que vous ne connaissez pas : comment allez-vous la connaître ? Mais en lisant les lignes de plus en plus nombreuses du bien nommé « curriculum vitae », parcours de vie ; et où cela va-t-il vous mener ? Mais partout ! Cest l’évidence même : dans les institutions où elle a travaillé, les pays quelle a visité, les compétences quelle a acquises. La fameuse et sempiternelle opposition entre le niveau individuel et le niveau des structures, ne correspond jamais à lexpérience. Laquelle au contraire nous permet toujours de définir la particularité, lidiosyncrasie, la spécificité dune personne en s’éloignant toujours davantage delle et en visitant le monde quelle a, parfois de façon minuscule, infléchi. Une personne, cest un holobiont. »
[/latour]
![at1_11_1](at1_11_1.jpg "at1_11_1")
![at1_11_2](at1_11_2.jpg "at1_11_2")
![at1_11_3](at1_11_3.jpg "at1_11_3")
[bottomimg]
![at1_11_4](at1_11_4.jpg "at1_11_4")
[/bottomimg]
![at1_11_5](at1_11_5.jpg "at1_11_5")
[moment]12 — exercice de partage des descriptions oligoptiques[/moment]
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

@@ -2,11 +2,13 @@
--cols: 8;
--rows: 8;
--guts: 4mm;
--beige: #fbf2e7;
--ocre: #d98a29;
}
@page {
size: 165mm 230mm;
margin-top: 8mm;
margin-top: 16mm;
margin-bottom: 16mm;
bleed: 6mm;
color: black;
@@ -15,6 +17,46 @@
@page:left {
margin-left: 16mm;
margin-right: 8mm;
@left-middle {
content: counter(page);
display: flex;
justify-content: center;
align-items: center;
font-family: 'Ortica';
font-weight: bold;
font-size: 8pt;
color: var(--ocre);
height: 30mm;
}
@left-top {
content: 'Titre sous-section';
white-space: nowrap;
font-family: 'Ortica';
font-weight: bold;
font-size: 8pt;
display: flex;
flex-direction: column;
align-items: center;
justify-content: flex-start;
text-align: right;
}
@left-bottom {
content: 'Partie générale';
white-space: nowrap;
font-family: 'Ortica';
font-weight: bold;
font-size: 8pt;
display: flex;
flex-direction: column;
align-items: center;
justify-content: flex-end;
}
}
.pagedjs_margin-left-top div, .pagedjs_margin-left-bottom div {
display: block;
min-width: max-content;
transform: rotate(-90deg);
}
@page:right {
@@ -22,13 +64,12 @@
margin-right: 16mm;
}
* {
body {
font-family: 'Public';
hyphens: auto;
}
h2 {
color: blue;
color: blue;
}
h3 {
@@ -69,6 +110,8 @@ h3 {
padding-left: calc(var(--pagedjs-pagebox-width) / var(--cols));
line-height: 12pt;
font-size: 9pt;
text-align: justify;
hyphens: auto;
}
.labeur p:before {
@@ -81,12 +124,60 @@ h3 {
padding-left: 3mm;
}
.latour, .lampe {
font-family: 'Novel';
font-weight: normal;
margin-left: calc(var(--pagedjs-pagebox-width) / var(--cols));
margin-right: -16mm;
margin-bottom: 20mm;
background-color: var(--beige);
line-height: 12pt;
font-size: 9pt;
padding-right: 18mm;
padding-left: calc(var(--pagedjs-pagebox-width) / var(--cols));
padding-bottom: 10mm;
padding-top: 10mm;
}
.pagedjs_left_page .latour, .pagedjs_left_page .lampe {
padding-right: 10mm;
width: 128.375mm;
}
.latour[data-split-original="true"] {
padding-bottom: 1mm !important;
}
.latour[data-split-from] {
padding-top: 1mm !important;
}
.latour-header, .lampe-header {
display: flex;
flex-direction: row;
align-items: center;
line-height: 1.1;
/* font-family: 'Novel';
*/ font-weight: bold;
}
.latour-header div:first-of-type,
.lampe-header div:first-of-type {
margin-top: 1mm;
margin-right: 2mm;
}
.lampe {
margin-top: 20mm;
padding-top: 3mm;
padding-bottom: 3mm;
}
img {
width: 100%;
}
.fullpage2imgs {
break-before: right;
width: 130mm;
height: 210mm;
}
@@ -96,4 +187,40 @@ img {
margin-left: -10mm;
width: 171mm;
height: 230mm;
}
}
.bottomimg {
width: 100%;
}
.bottomimg img {
height: 100%;
}
.tripleimgs {
break-before: page;
break-after: page
}
.tripleimgs img:nth-of-type(2) {
width: calc(50% - 1mm);
margin-right: 2mm;
}
.tripleimgs img:last-of-type {
width: calc(50% - 1mm);
}
.tripleimgs2 {
break-before: page;
break-after: page
}
.tripleimgs2 img:nth-of-type(2) {
width: calc(37.5% - 1mm);
margin-right: 2mm;
}
.tripleimgs2 img:last-of-type {
width: calc(62.5% - 1mm);
}
@@ -17,3 +17,27 @@
font-weight: 500;
}
@font-face {
font-family: 'Novel';
src: url('NovelSans/novelsanspro_regular-webfont.woff2'), format('woff2');
font-weight: normal;
}
@font-face {
font-family: 'Novel';
src: url('NovelSans/novelsanspro_bold-webfont.woff2'), format('woff2');
font-weight: bold;
}
@font-face {
font-family: 'Ortica';
src: url('Ortica/OrticaAngular-Bold.woff2'), format('woff2');
font-weight: bold;
}
@font-face {
font-family: 'Ortica';
src: url('Ortica/OrticaLinear-Light.woff2'), format('woff2');
font-weight: light;
}
@@ -63,20 +63,90 @@
}
// cleaner le balisage des éléments contenant plusieurs paragraphes
let contentToParse = [];
let labeurs = document.getElementsByClassName("labeur");
for(let i = 0; i < labeurs.length; i++) {
if (labeurs[i].childNodes.length == 1) {
labeurs[i].innerHTML = '<p>' + labeurs[i].innerHTML + '</p>';
contentToParse.push(labeurs[i]);
}
let latours = document.getElementsByClassName("latour");
for(let i = 0; i < latours.length; i++) {
contentToParse.push(latours[i]);
}
let lampes = document.getElementsByClassName("lampe");
for(let i = 0; i < lampes.length; i++) {
contentToParse.push(lampes[i]);
}
for(let i = 0; i < contentToParse.length; i++) {
if (contentToParse[i].childNodes.length == 1) {
contentToParse[i].innerHTML = '<p>' + contentToParse[i].innerHTML + '</p>';
} else {
labeurs[i].innerHTML = "<p>" + labeurs[i].innerHTML.replace("<p>", "");
contentToParse[i].innerHTML = "<p>" + contentToParse[i].innerHTML.replace("<p>", "");
}
for(j = 0; j < labeurs[i].childNodes.length; j++) {
if (labeurs[i].childNodes[j].innerHTML != undefined) {
labeurs[i].childNodes[j].innerHTML = labeurs[i].childNodes[j].innerHTML.replaceAll(' :', '&nbsp;:');
// headers latour / lampe
if (contentToParse[i].classList.contains("latour")) {
contentToParse[i].childNodes[0].innerHTML = "<div class='latour-header'><div><img src='{{ url('theme://assets/map.png') }}' alt='carte'></div><div>" + contentToParse[i].childNodes[0].innerHTML + "</div></div>";
} else if (contentToParse[i].classList.contains("lampe")) {
contentToParse[i].childNodes[0].innerHTML = "<div class='lampe-header'><div><img src='{{ url('theme://assets/lampe.png') }}' alt='lampe'></div><div>" + contentToParse[i].childNodes[0].innerHTML + "</div></div>";
}
// micro-typo
for(j = 0; j < contentToParse[i].childNodes.length; j++) {
let contentHTML = contentToParse[i].childNodes[j].innerHTML;
if (contentHTML != undefined) {
contentToParse[i].childNodes[j].innerHTML = contentToParse[i].childNodes[j].innerHTML.replaceAll(' :', '&nbsp;:');
contentToParse[i].childNodes[j].innerHTML = contentToParse[i].childNodes[j].innerHTML.replaceAll(' ?', '&nbsp;?');
contentToParse[i].childNodes[j].innerHTML = contentToParse[i].childNodes[j].innerHTML.replaceAll(' !', '&nbsp;!');
contentToParse[i].childNodes[j].innerHTML = contentToParse[i].childNodes[j].innerHTML.replaceAll('« ', '«&nbsp;');
contentToParse[i].childNodes[j].innerHTML = contentToParse[i].childNodes[j].innerHTML.replaceAll(' »', '&nbsp;»');
contentToParse[i].childNodes[j].innerHTML = contentToParse[i].childNodes[j].innerHTML.replaceAll('“', '«&nbsp;');
contentToParse[i].childNodes[j].innerHTML = contentToParse[i].childNodes[j].innerHTML.replaceAll('”', '&nbsp;»');
contentToParse[i].childNodes[j].innerHTML = contentToParse[i].childNodes[j].innerHTML.replaceAll(' min', '&nbsp;min');
}
}
}
}
// fonction s'éxecute après le rendu de pagedJS
// cf https://pagedjs.org/documentation/10-handlers-hooks-and-custom-javascript/
class setMarginTexts extends Paged.Handler {
constructor(chunker, polisher, caller) {
super(chunker, polisher, caller);
}
afterPreview(pages) {
// afficher correctement les éléments en marge
let topLeftBoxes = document.getElementsByClassName('pagedjs_margin-left-top');
for (let i = 0; i < topLeftBoxes.length; i++) {
topLeftBoxes[i].childNodes[0].style.marginTop = topLeftBoxes[i].childNodes[0].offsetWidth / 2 - topLeftBoxes[i].childNodes[0].offsetHeight / 2 + "px";
}
let bottomLeftBoxes = document.getElementsByClassName('pagedjs_margin-left-bottom');
for (let i = 0; i < bottomLeftBoxes.length; i++) {
bottomLeftBoxes[i].childNodes[0].style.marginBottom = bottomLeftBoxes[i].childNodes[0].offsetWidth / 2 - bottomLeftBoxes[i].childNodes[0].offsetHeight / 2 + "px";
}
// cleaner pour que les paragraphes tombent sur la marge haute
for(let i = 0; i < labeurs.length; i++) {
if (labeurs[i] == labeurs[i].parentNode.firstElementChild
&& !labeurs[i].firstElementChild.hasAttribute("data-split-from")) {
labeurs[i].firstElementChild.style.marginTop = "0px";
}
}
// pareil pour les titres temps
for (let i = 0; i < moments.length; i++) {
if (moments[i].previousElementSibling?.tagName === "P"
&& moments[i].previousElementSibling == moments[i].parentNode.firstElementChild) {
moments[i].parentNode.removeChild(moments[i].parentNode.firstElementChild);
}
}
// images collées en bas
let bottomImgs = document.getElementsByClassName('bottomimg');
for (let i = 0; i < bottomImgs.length; i++) {
let page = bottomImgs[i].parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
bottomImgs[i].style.transform = 'translateY(' + (page.getBoundingClientRect().bottom - bottomImgs[i].firstElementChild.getBoundingClientRect().bottom) + 'px)';
}
}
}
Paged.registerHandlers(setMarginTexts);
</script>
</body>
</html>