Repository with sources and generator of https://larlet.fr/david/ https://larlet.fr/david/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

пре 10 месеци
пре 10 месеци
пре 8 месеци
пре 10 месеци
пре 3 недеља
пре 10 месеци
пре 9 месеци
пре 10 месеци
пре 6 месеци
пре 8 месеци
пре 9 месеци
пре 10 месеци
пре 8 месеци
пре 10 месеци
пре 8 месеци
пре 10 месеци
пре 10 месеци
пре 9 месеци
пре 10 месеци
пре 9 месеци
пре 10 месеци
пре 9 месеци
пре 10 месеци
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771
  1. <!DOCTYPE html><!-- This is a valid HTML5 document. -->
  2. <!-- Screen readers, SEO, extensions and so on. -->
  3. <html lang="fr">
  4. <!-- Has to be within the first 1024 bytes, hence before the `title` element
  5. See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset -->
  6. <meta charset="utf-8">
  7. <!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 -->
  8. <!-- The viewport meta is quite crowded and we are responsible for that.
  9. See: https://codepen.io/tigt/post/meta-viewport-for-2015 -->
  10. <meta name="viewport" content="width=device-width,initial-scale=1">
  11. <!-- Required to make a valid HTML5 document. -->
  12. <title>
  13. Étiquette #parentalité
  14. — David Larlet</title>
  15. <script>
  16. function toggleTheme(themeName) {
  17. document.documentElement.classList.toggle(
  18. 'forced-dark',
  19. themeName === 'dark'
  20. )
  21. document.documentElement.classList.toggle(
  22. 'forced-light',
  23. themeName === 'light'
  24. )
  25. }
  26. const selectedTheme = localStorage.getItem('theme')
  27. if (selectedTheme !== 'undefined') {
  28. toggleTheme(selectedTheme)
  29. }
  30. </script>
  31. <!-- Documented, feel free to shoot an email. -->
  32. <link rel="stylesheet" href="/static/david/css/style_2024-03-09.css">
  33. <!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. -->
  34. <link rel="preload"
  35. href="/static/david/css/fonts/century_supra_ot_a_regular.woff2"
  36. as="font"
  37. type="font/woff2"
  38. media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)"
  39. crossorigin>
  40. <link rel="preload"
  41. href="/static/david/css/fonts/century_supra_ot_a_bold.woff2"
  42. as="font"
  43. type="font/woff2"
  44. media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)"
  45. crossorigin>
  46. <link rel="preload"
  47. href="/static/david/css/fonts/century_supra_ot_a_italic.woff2"
  48. as="font"
  49. type="font/woff2"
  50. media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)"
  51. crossorigin>
  52. <link rel="preload"
  53. href="/static/david/css/fonts/century_supra_ot_b_regular.woff2"
  54. as="font"
  55. type="font/woff2"
  56. media="(prefers-color-scheme: dark)"
  57. crossorigin>
  58. <link rel="preload"
  59. href="/static/david/css/fonts/century_supra_ot_b_bold.woff2"
  60. as="font"
  61. type="font/woff2"
  62. media="(prefers-color-scheme: dark)"
  63. crossorigin>
  64. <link rel="preload"
  65. href="/static/david/css/fonts/century_supra_ot_b_italic.woff2"
  66. as="font"
  67. type="font/woff2"
  68. media="(prefers-color-scheme: dark)"
  69. crossorigin>
  70. <meta name="description" content="Publications relatives au tag #parentalité">
  71. <!-- That good ol' feed, subscribe :). -->
  72. <link rel="alternate"
  73. type="application/atom+xml"
  74. title="Feed"
  75. href="/david/log/">
  76. <!-- Generated from https://realfavicongenerator.net/ such a mess. -->
  77. <link rel="apple-touch-icon"
  78. sizes="180x180"
  79. href="/static/david/icons2/apple-touch-icon.png">
  80. <link rel="icon"
  81. type="image/png"
  82. sizes="32x32"
  83. href="/static/david/icons2/favicon-32x32.png">
  84. <link rel="icon"
  85. type="image/png"
  86. sizes="16x16"
  87. href="/static/david/icons2/favicon-16x16.png">
  88. <link rel="manifest" href="/static/david/icons2/site.webmanifest">
  89. <link rel="mask-icon"
  90. href="/static/david/icons2/safari-pinned-tab.svg"
  91. color="#07486c">
  92. <link rel="shortcut icon" href="/static/david/icons2/favicon.ico">
  93. <meta name="msapplication-TileColor" content="#f7f7f7">
  94. <meta name="msapplication-config"
  95. content="/static/david/icons2/browserconfig.xml">
  96. <meta name="theme-color"
  97. content="#f7f7f7"
  98. media="(prefers-color-scheme: light)">
  99. <meta name="theme-color"
  100. content="#272727"
  101. media="(prefers-color-scheme: dark)">
  102. <!-- Is that even respected? Retrospectively? What a shAItshow…
  103. https://neil-clarke.com/block-the-bots-that-feed-ai-models-by-scraping-your-website/ -->
  104. <meta name="robots" content="noai, noimageai">
  105. <!-- To get attribution when linking on mastodon. -->
  106. <meta name="fediverse:creator" content="@david@larlet.fr">
  107. <style type="text/css">
  108. details[open] summary {
  109. display: none;
  110. }
  111. </style>
  112. <body data-instant-intensity="viewport-all">
  113. <article>
  114. <header>
  115. <hgroup>
  116. <h1>#parentalité</h1>
  117. <p>Publications relatives à cette étiquette</p>
  118. </hgroup>
  119. </header>
  120. <nav>
  121. <p>
  122. <a href="/david/" title="Aller à l’accueil">
  123. Accueil</a>
  124. <a rel="tags"
  125. href="/david/2024/#tags"
  126. title="Liste de toutes les étiquettes">
  127. Étiquettes</a>
  128. <a href="/david/recherche/" title="Aller à la page de recherche" rel="search" data-no-instant>Recherche</a>
  129. <a href="/david/log/" title="Accès au flux RSS">Suivre</a>
  130. </p>
  131. </nav>
  132. <h2>
  133. <a href="/david/2024/05/10/" title="Lien permanent vers cet article">Aurores</a> <time datetime="2024-05-10">10 mai 2024</time>
  134. </h2>
  135. <p>13h17&nbsp;: Elle m’informe qu’il y a une énorme tâche solaire visible avec les lunettes d’éclipse actuellement sur le soleil. J’oublie de&nbsp;regarder.</p>
  136. <p>19h28&nbsp;: Un ami m’indique qu’<a data-link-domain="ici.radio-canada.ca" href="https://ici.radio-canada.ca/nouvelle/2071742/tempte-solaire-geomagnetique-10-mai">une tempête solaire arrive sur le Canada</a>. J’ai un peu de mal à faire le lien direct avec les aurores boréales, surtout que je suis à Montréal donc je n’y pense même&nbsp;pas.</p>
  137. <p>20h17&nbsp;: Je creuse un peu et apparemment ça va vraiment être exceptionnel, genre <a data-link-domain="espaces.ca" href="https://www.espaces.ca/articles/actualites/23173-des-aurores-boreales-spectaculaires-partout-au-quebec-cette-fin-de-semaine">le plus important de ces 19&nbsp;dernières années</a>. Je lui partage ma déception d’être en ville pour cette opportunité&nbsp;improbable.</p>
  138. <p>20h36&nbsp;: On s’appelle et on convient d’aller au parc à 200&nbsp;mètres de chez moi avec les enfants et de quoi avoir chaud, au pire ça fera une sortie nocturne marrante. <a data-link-domain="swpc.noaa.gov" href="https://www.swpc.noaa.gov/products/aurora-30-minute-forecast">Le site le plus populaire à ce sujet</a> semble dire que ça serait visible même depuis notre latitude. Le ciel est complètement&nbsp;dégagé.</p>
  139. <p>21h22&nbsp;: On est bien installés dans le coin le moins lumineux du parc que je connais comme ma poche. Une bonne occasion de réaliser l’activité nocturne de la faune locale. Je n’y crois qu’à 1% mais ne faire que quelques mètres pour espérer réaliser un rêve c’est une aubaine qui ne se refuse pas. Joachim a eu besoin d’aller <a data-link-domain="blog.professeurjoachim.com" href="https://blog.professeurjoachim.com/billet/2023-03-31-aller-voir-les-aurores-boreales-en-train">pas mal plus loin</a> l’année&nbsp;dernière.</p>
  140. <p>22h03&nbsp;: Soudain, venant de l’ouest, l’équivalent d’un rideau de pluie verte/rose qui s’avance vers le nord. C’est juste incroyable à vivre et ça vient compléter <a href="/david/2024/04/08/" title="Éclipse">l’éclipse</a> en terme d’intensité émotionnelle. Je suis tellement surpris que je mets un moment à sortir l’appareil photo sur lequel je n’avais rien réglé, n’y croyant pas&nbsp;vraiment.</p>
  141. <figure>
  142. <a href="/static/david/2024/2024-05-10-aurore-boreale.jpg"
  143. title="Cliquer pour une version haute résolution">
  144. <img
  145. src="/static/david/2024/2024-05-10-aurore-boreale.jpg"
  146. width="3840" height="2560"
  147. srcset="/static/david/2024/2024-05-10-aurore-boreale.jpg 3840w, /static/david/2024/2024-05-10-aurore-boreale_660x440.jpg 660w, /static/david/2024/2024-05-10-aurore-boreale_990x660.jpg 990w, /static/david/2024/2024-05-10-aurore-boreale_1320x880.jpg 1320w"
  148. sizes="min(100vw, calc(100vh * 3840 / 2560))"
  149. loading="lazy"
  150. decoding="async"
  151. alt="Une aurore boréale depuis Montréal.">
  152. </a>
  153. <figcaption>La première photo, avec beaucoup d’ISO et une grande ouverture, à main levée, tout ce qu’il ne fallait&nbsp;pas…</figcaption>
  154. </figure>
  155. <p>Pendant plus d’une heure, on profite d’être au milieu de tous ces échanges magnétiques. Je remercie le soleil d’avoir pété un bon coup et la lune d’être restée discrète ce soir là. La lumière est tellement exceptionnelle, on se sent au milieu de l’aurore —&nbsp;ce qui fait des photos moins spectaculaires, ça devient une expérience à vivre. Rétrospectivement, la première vague était vraiment la plus contrastée et&nbsp;magnifique.</p>
  156. <p>23h19&nbsp;: On rentre finalement car les enfants ont eu une rude journée et ne tiennent plus le coup. J’ai la banane, de trop nombreuses fois j’ai espéré me réveiller en pleine nuit l’hiver dans la forêt pour observer ce phénomème, je ne pensais vraiment pas que ça allait être possible entouré de pollution lumineuse… et surtout de pouvoir le faire avec l’enfant encore&nbsp;éveillé&#8239;!</p>
  157. <p>16h50 (lendemain)&nbsp;: Je rédige ce billet après avoir développé les photos et publié une <a data-link-domain="media.larlet.fr" href="https://media.larlet.fr/2024-05-aurores-01.html">galerie dédiée</a>. J’ai un petit souci éthique au développement car il est très facile de pousser les curseurs des couleurs pour que ça fasse un effet très éloigné du réel. J’essaye de rester raisonnable tout en sachant que chaque moniteur affichera ses propres couleurs de toute façon. Les particules colorées qui ont atteint mon cœur ce soir là ne sont pas prêtes de s’estomper, je me sens encore&nbsp;euphorique.</p>
  158. <nav>
  159. <p>
  160. <a href="/david/2024/enthousiasme/"
  161. title="Liste de tous les articles 2024 associés à cette étiquette"
  162. rel="tag">#enthousiasme</a>
  163. <a href="/david/2024/parentalite/"
  164. title="Liste de tous les articles 2024 associés à cette étiquette"
  165. rel="tag">#parentalité</a>
  166. <a href="/david/2024/photographie/"
  167. title="Liste de tous les articles 2024 associés à cette étiquette"
  168. rel="tag">#photographie</a>
  169. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  170. </p>
  171. </nav>
  172. <h2>
  173. <a href="/david/2024/03/06/" title="Lien permanent vers cet article">Vannerie</a> <time datetime="2024-03-06">6 mars 2024</time>
  174. </h2>
  175. <p>L’atelier du jour était une initiation à la vannerie, cette fois-ci avec / pour l’enfant. Depuis le temps qu’il veut m’accompagner, j’ai sauté sur l’occasion lorsqu’une animatrice d’atelier — ancienne enseignante, ça doit jouer&nbsp;— acceptât les personnes de son&nbsp;âge.</p>
  176. <figure>
  177. <a href="/static/david/2024/2024-03-06-vannerie-panier.jpg"
  178. title="Cliquer pour une version haute résolution">
  179. <img
  180. src="/static/david/2024/2024-03-06-vannerie-panier.jpg"
  181. width="4032" height="3024"
  182. srcset="/static/david/2024/2024-03-06-vannerie-panier.jpg 4032w, /static/david/2024/2024-03-06-vannerie-panier_660x440.jpg 660w, /static/david/2024/2024-03-06-vannerie-panier_990x660.jpg 990w, /static/david/2024/2024-03-06-vannerie-panier_1320x880.jpg 1320w"
  183. sizes="min(100vw, calc(100vh * 4032 / 3024))"
  184. loading="lazy"
  185. decoding="async"
  186. alt="Un panier en vannerie.">
  187. </a>
  188. <figcaption>Un panier en vannerie, ça m’a pris&nbsp;2h30.</figcaption>
  189. </figure>
  190. <p>Le <em>twist</em>, c’est que j’ai pu le faire aussi vu que nous étions les seuls présents pour la session au final. Autant dire qu’avec un cours particulier on a pu apprendre encore plus de choses&#8239;! Sur un spectre allant des techniques d’assouplissement à l’appropriation culturelle, on a passé un bon moment d’échanges. J’ai appris que la préparation du frêne noir utilisé dans la vannerie par les Premières Nations prend plusieurs mois, ce qui explique sa rareté (et son&nbsp;prix).</p>
  191. <figure>
  192. <a href="/static/david/2024/2024-03-06-vannerie-sac-a-dos.jpg"
  193. title="Cliquer pour une version haute résolution">
  194. <img
  195. src="/static/david/2024/2024-03-06-vannerie-sac-a-dos.jpg"
  196. width="3024" height="4032"
  197. srcset="/static/david/2024/2024-03-06-vannerie-sac-a-dos.jpg 3024w, /static/david/2024/2024-03-06-vannerie-sac-a-dos_660x440.jpg 660w, /static/david/2024/2024-03-06-vannerie-sac-a-dos_990x660.jpg 990w, /static/david/2024/2024-03-06-vannerie-sac-a-dos_1320x880.jpg 1320w"
  198. sizes="min(100vw, calc(100vh * 3024 / 4032))"
  199. loading="lazy"
  200. decoding="async"
  201. alt="Un sac à dos en vannerie.">
  202. </a>
  203. <figcaption>Un sac à dos en vannerie sur le dos de&nbsp;l’enfant.</figcaption>
  204. </figure>
  205. <p>Toujours cette sensation de créer des objets utiles à partir de pas grand chose et avec un minimum de&nbsp;matériel.</p>
  206. <a href="#hr-100" title="Lien vers cette section de la page"><hr id="hr-100" /></a>
  207. <blockquote lang="en">
  208. <p>Like Stimulus, but <em>a lot</em> smaller and a bit more&nbsp;webcomponenty?</p>
  209. <p><cite><em><a data-link-domain="github.com" href="https://github.com/johanhalse/musculus">Musculus</a></em></cite></p>
  210. </blockquote>
  211. <p>Découverte du jour que je trouve très inspirante. J’avais dans un coin de tête de tester des choses dans cette voie. Réussir à faire le pont entre les deux serait une très bonne combinaison. J’apprécie qu’une solution de test soit proposée, même si elle est légère (en terme de fiabilité) j’en peux plus d’attendre&nbsp;Playwright.</p>
  212. <a href="#hr-101" title="Lien vers cette section de la page"><hr id="hr-101" /></a>
  213. <blockquote>
  214. <p>End the battle. Use <code>infinity</code> to get the highest possible <code>z-index</code> and win&nbsp;forever.</p>
  215. <p>[…]</p>
  216. <p>But is <code>infinity</code> really any better than some arbitrarily big value like <code>9999px</code>? Functionally, no. Same end result. But I think <mark>it does help make code more self-documenting,</mark> because <code>infinity</code> conveys intent. It expresses that it’s all about the magnitude, not a specific magic&nbsp;number.</p>
  217. <p><cite><em><a data-link-domain="codersblock.com" href="https://codersblock.com/blog/playing-with-infinity-in-css/" hreflang="en"
  218. title="Consultation de l’article (anglais)">Playing with Infinity in CSS</a>
  219. <a href="/david/cache/2024/1f4e359d100592aee6e46505a40b2a01/" hreflang="en"
  220. data-tippy data-description="CSS has an infinity constant. When I first learned about this, my brain lit up with all kinds of absurd possibilities. Let’s discuss! There might even be some..."
  221. data-source="https://codersblock.com/blog/playing-with-infinity-in-css/"
  222. data-date="2024-03-06"
  223. data-favicon="https://codersblock.com/favicon-32x32.png"
  224. data-domain="codersblock.com"
  225. ><svg xmlns="http://www.w3.org/2000/svg"
  226. width="24" height="24" viewBox="0 0 24 24" fill="none"
  227. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  228. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  229. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  230. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  231. </svg>
  232. <span class="sr-only">[archive]</span></a></em></cite></p>
  233. </blockquote>
  234. <p>Autre découverte du jour. J’aime bien l’idée de pouvoir évacuer certaines valeurs magiques de manière explicite. J’ai la flemme de tester ce qu’un <code>calc(infinity - 1)</code> donnerait sur un <code>z-index</code>&nbsp;🤭.</p>
  235. <nav>
  236. <p>
  237. <a href="/david/2024/apprentissage/"
  238. title="Liste de tous les articles 2024 associés à cette étiquette"
  239. rel="tag">#apprentissage</a>
  240. <a href="/david/2024/parentalite/"
  241. title="Liste de tous les articles 2024 associés à cette étiquette"
  242. rel="tag">#parentalité</a>
  243. <a href="/david/2024/protopie/"
  244. title="Liste de tous les articles 2024 associés à cette étiquette"
  245. rel="tag">#protopie</a>
  246. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  247. </p>
  248. </nav>
  249. <h2>
  250. <a href="/david/2024/02/26/" title="Lien permanent vers cet article">Galaxie</a> <time datetime="2024-02-26">26 février 2024</time>
  251. </h2>
  252. <p>Anecdote du jour qui met le sourire de bon&nbsp;matin.</p>
  253. <figure>
  254. <a href="/static/david/2024/2024-02-26-neige-galaxie.jpg"
  255. title="Cliquer pour une version haute résolution">
  256. <img
  257. src="/static/david/2024/2024-02-26-neige-galaxie.jpg"
  258. width="4032" height="3024"
  259. srcset="/static/david/2024/2024-02-26-neige-galaxie.jpg 4032w, /static/david/2024/2024-02-26-neige-galaxie_660x440.jpg 660w, /static/david/2024/2024-02-26-neige-galaxie_990x660.jpg 990w, /static/david/2024/2024-02-26-neige-galaxie_1320x880.jpg 1320w"
  260. sizes="min(100vw, calc(100vh * 4032 / 3024))"
  261. loading="lazy"
  262. decoding="async"
  263. alt="De la neige qui tombe à gros flocon.">
  264. </a>
  265. <figcaption>L’espace d’un instant, par la&nbsp;fenêtre.</figcaption>
  266. </figure>
  267. <blockquote>
  268. <p>— Oh la belle neige&#8239;!<br />
  269. —&nbsp;Il pleut des étoiles, la galaxie est en train de tomber.<br />
  270. —&nbsp;❤️</p>
  271. </blockquote>
  272. <a href="#hr-89" title="Lien vers cette section de la page"><hr id="hr-89" /></a>
  273. <blockquote lang="en">
  274. <p>CSS Variable Groups is a way to define multiple properties under the same namespace and pass the entire group around, addressing several pain points around design tokens, design systems, and integrating third-party&nbsp;components.</p>
  275. <p><cite><em><a data-link-domain="lea.verou.me" href="https://lea.verou.me/docs/var-groups/" hreflang="en"
  276. title="Consultation de l’article (anglais)">Proposal: CSS Variable Groups</a>
  277. <a href="/david/cache/2024/0cc2e9c6b29f8326b2ff628f64e22888/" hreflang="en"
  278. data-tippy data-description="CSS Variable Groups is a way to define multiple properties under the same namespace"
  279. data-source="https://lea.verou.me/docs/var-groups/"
  280. data-date="2024-02-27"
  281. data-favicon="https://lea.verou.me/mark.svg"
  282. data-domain="lea.verou.me"
  283. ><svg xmlns="http://www.w3.org/2000/svg"
  284. width="24" height="24" viewBox="0 0 24 24" fill="none"
  285. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  286. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  287. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  288. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  289. </svg>
  290. <span class="sr-only">[archive]</span></a></em></cite></p>
  291. </blockquote>
  292. <p>Heureusement que Lea Verou <a href="/david/2024/02/18/" title="In·directions">me lit</a> et traduit ça en proposition de <a data-link-domain="github.com" href="https://github.com/w3c/csswg-drafts/issues/9992">standardisation</a> en quelques jours au lieu de chialer&nbsp;😅🙇. Trop&nbsp;hâte&#8239;!</p>
  293. <a href="#hr-90" title="Lien vers cette section de la page"><hr id="hr-90" /></a>
  294. <blockquote lang="en">
  295. <p><mark>Maybe that’s ok.</mark> The amount of power you give plugin authors is a delicate balance. Giving them too much power could impact the stability of your project. But giving them too little power makes it hard for them to solve their problems — in that case you might as well not have&nbsp;plugins.</p>
  296. <p><cite><em><a data-link-domain="css-tricks.com" href="https://css-tricks.com/designing-a-javascript-plugin-system/" hreflang="en"
  297. title="Consultation de l’article (anglais)">Designing a JavaScript Plugin System</a>
  298. <a href="/david/cache/2024/d9c30865dde8c88394ba054836a18ae3/" hreflang="en"
  299. data-tippy data-description="WordPress has plugins. jQuery has plugins. Gatsby, Eleventy, and Vue do, too."
  300. data-source="https://css-tricks.com/designing-a-javascript-plugin-system/"
  301. data-date="2024-02-27"
  302. data-favicon="https://css-tricks.com/favicon.svg"
  303. data-domain="css-tricks.com"
  304. ><svg xmlns="http://www.w3.org/2000/svg"
  305. width="24" height="24" viewBox="0 0 24 24" fill="none"
  306. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  307. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  308. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  309. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  310. </svg>
  311. <span class="sr-only">[archive]</span></a></em></cite></p>
  312. </blockquote>
  313. <p>Problématique du jour&nbsp;: comment concevoir un système de <em>plugins</em> qui soit le bon compromis entre flexibilité et stabilité&#8239;? Ce n’est pas si évident, encore plus dans un écosystème aussi évolutif que&nbsp;JavaScript.</p>
  314. <nav>
  315. <p>
  316. <a href="/david/2024/parentalite/"
  317. title="Liste de tous les articles 2024 associés à cette étiquette"
  318. rel="tag">#parentalité</a>
  319. <a href="/david/2024/poesie/"
  320. title="Liste de tous les articles 2024 associés à cette étiquette"
  321. rel="tag">#poésie</a>
  322. <a href="/david/2024/solastalgia/"
  323. title="Liste de tous les articles 2024 associés à cette étiquette"
  324. rel="tag">#solastalgia</a>
  325. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  326. </p>
  327. </nav>
  328. <h2>
  329. <a href="/david/2024/01/28/" title="Lien permanent vers cet article">Jour 2</a> <time datetime="2024-01-28">28 janvier 2024</time>
  330. </h2>
  331. <p>Même avec la nourriture suspendue, les souris on fait un sacré raffut. Elles devaient elles aussi avoir trop chaud. Après avoir dormi avec 2&nbsp;fenêtres ouvertes, il fait tout de même 18°C au réveil. Parfait pour notre gruau de camping (seconde tradition avec les nouilles instantanées), cette fois à la neige&nbsp;fondue.</p>
  332. <p>On prend le temps d’aller faire un petit tour à skis sur le lac car c’est une première pour l’enfant. On suit des traces de lapins qui nous mènent à un point d’eau liquide qui est un point de concentration de la faune locale. Si on avait su avant, on aurait peut-être pris le risque de s’en approcher avec nos gourdes. C’est peut-être mieux de ne pas l’avoir su&nbsp;avant.</p>
  333. <figure>
  334. <a href="/static/david/2024/2024-01-28-lac-foret.jpg"
  335. title="Cliquer pour une version haute résolution">
  336. <img
  337. src="/static/david/2024/2024-01-28-lac-foret.jpg"
  338. width="3024" height="4032"
  339. srcset="/static/david/2024/2024-01-28-lac-foret.jpg 3024w, /static/david/2024/2024-01-28-lac-foret_660x440.jpg 660w, /static/david/2024/2024-01-28-lac-foret_990x660.jpg 990w, /static/david/2024/2024-01-28-lac-foret_1320x880.jpg 1320w"
  340. sizes="min(100vw, calc(100vh * 3024 / 4032))"
  341. loading="lazy"
  342. decoding="async"
  343. alt="Un lac gelé avec la forêt en arrière plan.">
  344. </a>
  345. <figcaption>Une bonne ambiance hivernale mais sans la fraîcheur de la&nbsp;saison.</figcaption>
  346. </figure>
  347. <p>Une fois le matériel rangé, on repart. Cette fois j’ai resserré le système de tractage improvisé avec des tuyaux en PVC de la <em>pulka</em>. Et j’ai aussi troqué les peaux complètes pour des demi-peaux, ça me permet de glisser un peu plus dans les descentes mais quand même pas trop. Difficile de ne pas forcer sur la cheville lorsqu’on est contraint par l’étroitesse du chemin. Bon puis il y a vraiment trop d’arbres dans ces&nbsp;forêts&nbsp;:p.</p>
  348. <p>On s’amuse vraiment sur ce retour et je suis obligé d’imposer des pauses pour ne pas arriver dans le même état que la veille (et me faire semer). L’enfant serait partant pour ne pas s’arrêter du tout, ça fait plaisir. On prend confiance et on enchaîne les bosses. Nos seules traces de la veille aident pas mal. Les conditions sont vraiment chaudes pour la&nbsp;saison.</p>
  349. <figure>
  350. <a href="/static/david/2024/2024-01-28-neige-collante.jpg"
  351. title="Cliquer pour une version haute résolution">
  352. <img
  353. src="/static/david/2024/2024-01-28-neige-collante.jpg"
  354. width="4032" height="3024"
  355. srcset="/static/david/2024/2024-01-28-neige-collante.jpg 4032w, /static/david/2024/2024-01-28-neige-collante_660x440.jpg 660w, /static/david/2024/2024-01-28-neige-collante_990x660.jpg 990w, /static/david/2024/2024-01-28-neige-collante_1320x880.jpg 1320w"
  356. sizes="min(100vw, calc(100vh * 4032 / 3024))"
  357. loading="lazy"
  358. decoding="async"
  359. alt="De la neige qui pend d’un arbre.">
  360. </a>
  361. <figcaption>Lorsqu’on me demande si la neige était&nbsp;collante.</figcaption>
  362. </figure>
  363. <p>Nous sommes progressivement rejoints par les skieur·euses qui descendent à travers les arbres et à une centaine de mètres de la voiture, il y a un passage plus difficile que les autres&nbsp;: une pente qui arrive sur un pont. On passe sur le côté pour être retenus par la neige fraîche mais la <em>pulka</em> décide de faire le drapeau et de prendre la «&nbsp;piste&nbsp;» tapée principale. J’essaye de la rattraper tant bien que mal tout en attendant / prenant soin de l’enfant et je me retrouve dans le décor. Encore. Ce n’est pas tant la chute que de forcer pour s’extraire de la neige tout en étant harnaché et les skis empêtrés dans les arbres qui me fait forcer sur les mauvais tendons… si près du but c’est&nbsp;rageant&nbsp;😔.</p>
  364. <p>Une sortie haute en émotions. Je vais maintenant pouvoir prendre le temps de soigner cette <a href="/david/2024/01/09/" title="Blessure">blessure</a>&nbsp;correctement.</p>
  365. <nav>
  366. <p>
  367. <a href="/david/2024/experience/"
  368. title="Liste de tous les articles 2024 associés à cette étiquette"
  369. rel="tag">#expérience</a>
  370. <a href="/david/2024/foret/"
  371. title="Liste de tous les articles 2024 associés à cette étiquette"
  372. rel="tag">#forêt</a>
  373. <a href="/david/2024/parentalite/"
  374. title="Liste de tous les articles 2024 associés à cette étiquette"
  375. rel="tag">#parentalité</a>
  376. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  377. </p>
  378. </nav>
  379. <h2>
  380. <a href="/david/2024/01/27/" title="Lien permanent vers cet article">Jour 1</a> <time datetime="2024-01-27">27 janvier 2024</time>
  381. </h2>
  382. <p>De la pluie verglaçante depuis 2&nbsp;jours. Une cheville pas encore opérationnelle. Mais de l’envie et une réservation depuis deux mois pour une première sortie hivernale en refuge. Ensemble. La route pour y aller est déjà épique et des flocons gros comme des pastèques s’écrasent sur le pare-brise. Il est rare au Québec de suivre un <em>pickup</em> qui ne dépasse pas les 70&#8239;km/h sur&nbsp;l’autoroute.</p>
  383. <p>C’est aussi la première sortie pour la <em>pulka</em> ramenée de France cet été. Le temps de charger et de se préparer, la neige est déjà moins intense. Néanmoins, dès les premières centaines de mètres, je sens bien que ça va être galère. La montée est vraiment pentue et les skis-raquettes de l’enfant ne sont pas adaptés à ces conditions ce qui le rend <del>pénible</del> ronchon. De mon côté, avec les peaux complètes ça passe mais je force énormément car je dois bien avoir 35&#8239;kg à tracter derrière. On fait au moins deux kilomètres comme ça… avant de se rendre compte que l’on est sur la montée de ski de randonnée de la Montagne&nbsp;Noire&#8239;!</p>
  384. <figure>
  385. <a href="/static/david/2024/2024-01-27-enfant-qui-skie.jpg"
  386. title="Cliquer pour une version haute résolution">
  387. <img
  388. src="/static/david/2024/2024-01-27-enfant-qui-skie.jpg"
  389. width="3024" height="4032"
  390. srcset="/static/david/2024/2024-01-27-enfant-qui-skie.jpg 3024w, /static/david/2024/2024-01-27-enfant-qui-skie_660x440.jpg 660w, /static/david/2024/2024-01-27-enfant-qui-skie_990x660.jpg 990w, /static/david/2024/2024-01-27-enfant-qui-skie_1320x880.jpg 1320w"
  391. sizes="min(100vw, calc(100vh * 3024 / 4032))"
  392. loading="lazy"
  393. decoding="async"
  394. alt="Un enfant en train de skier sur un chemin.">
  395. </a>
  396. <figcaption>Avant que tout ne&nbsp;dérape.</figcaption>
  397. </figure>
  398. <p>Grosse erreur d’orientation qui nous coûte cher&nbsp;: impossible de descendre par cette montée et couper par la forêt serait très hasardeux, sans compter mon état. L’heure tourne et on finit par descendre en ayant déchaussé tous les deux. Deux paires de skis en plus à retenir à bout de bras en ayant le choix entre un chemin de 30&nbsp;cm de large tapé qui glisse ou un mètre de poudreuse tout autour. C’est un peu casse patte, juste ce qu’il me fallait pour une rééducation&nbsp;active&nbsp;😬.</p>
  399. <figure>
  400. <a href="/static/david/2024/2024-01-27-attache-pulka.jpg"
  401. title="Cliquer pour une version haute résolution">
  402. <img
  403. src="/static/david/2024/2024-01-27-attache-pulka.jpg"
  404. width="2320" height="3088"
  405. srcset="/static/david/2024/2024-01-27-attache-pulka.jpg 2320w, /static/david/2024/2024-01-27-attache-pulka_660x440.jpg 660w, /static/david/2024/2024-01-27-attache-pulka_990x660.jpg 990w, /static/david/2024/2024-01-27-attache-pulka_1320x880.jpg 1320w"
  406. sizes="min(100vw, calc(100vh * 2320 / 3088))"
  407. loading="lazy"
  408. decoding="async"
  409. alt="La pulka visible depuis mon entre-jambe.">
  410. </a>
  411. <figcaption>Un point de vue&nbsp;discutable.</figcaption>
  412. </figure>
  413. <p>Quasi-retour au point de départ, à deux doigts d’abandonner vue l’énergie que l’on vient de dépenser&nbsp;: <q lang="fr">c’est pas la grosse marrade</q>. Une pause bienvenue et le chemin loupé qui semble accueillant me font hésiter tout de même. Je prends finalement la décision d’y aller car dans mon souvenir c’est accessible (si on ne se trompe pas de sentier…). Prise de risque assez élevée au passage, il ne faut pas d’autres erreurs ou problèmes sur le trajet ou on va finir à la frontale (au mieux). Difficile de savoir jusqu’où est-ce que ça va être tracé&nbsp;aussi.</p>
  414. <p>Ce nouveau chemin est beaucoup plus adapté à notre niveau (de forme). Le système d’attache de la <em>pulka</em> est loin d’être optimal mais ça passe, même entre les arbres. L’enfant prend confiance et s’amuse dans les descentes. On arrive enfin au refuge sans encombres, il est 15&#8239;h passé et on n’a pas mangé, à peine bu 200&nbsp;ml depuis le départ… il va falloir recharger les corps avant demain sinon ça va&nbsp;piquer.</p>
  415. <figure>
  416. <a href="/static/david/2024/2024-01-27-dessins-cartes.jpg"
  417. title="Cliquer pour une version haute résolution">
  418. <img
  419. src="/static/david/2024/2024-01-27-dessins-cartes.jpg"
  420. width="3024" height="4032"
  421. srcset="/static/david/2024/2024-01-27-dessins-cartes.jpg 3024w, /static/david/2024/2024-01-27-dessins-cartes_660x440.jpg 660w, /static/david/2024/2024-01-27-dessins-cartes_990x660.jpg 990w, /static/david/2024/2024-01-27-dessins-cartes_1320x880.jpg 1320w"
  422. sizes="min(100vw, calc(100vh * 3024 / 4032))"
  423. loading="lazy"
  424. decoding="async"
  425. alt="Des cartes dessinées à la bougie visible en fond.">
  426. </a>
  427. <figcaption>Le dessin à la bougie, c’est mieux à&nbsp;deux.</figcaption>
  428. </figure>
  429. <p>Heureusement, cet endroit est assez fabuleux et il y a une ambiance brumeuse qui lui donne un aspect féérique. Une fois repus, on va faire un tour sur le lac en contrebas. Il sautille sur le chemin (moi pas) et semble déjà avoir oublié les péripéties de la matinée. On passe une bonne soirée à faire des cadavre-exquis et à dessiner des cartes. Il fait 27°C dans le refuge, on supporte nos caleçons mais c’est un peu limite pour aller chercher la neige à faire&nbsp;fondre&#8239;!</p>
  430. <figure>
  431. <a href="/static/david/2024/2024-01-27-enfant-lac.jpg"
  432. title="Cliquer pour une version haute résolution">
  433. <img
  434. src="/static/david/2024/2024-01-27-enfant-lac.jpg"
  435. width="4032" height="3024"
  436. srcset="/static/david/2024/2024-01-27-enfant-lac.jpg 4032w, /static/david/2024/2024-01-27-enfant-lac_660x440.jpg 660w, /static/david/2024/2024-01-27-enfant-lac_990x660.jpg 990w, /static/david/2024/2024-01-27-enfant-lac_1320x880.jpg 1320w"
  437. sizes="min(100vw, calc(100vh * 4032 / 3024))"
  438. loading="lazy"
  439. decoding="async"
  440. alt="Un enfant sur un lac gelé (le lac, pas l’enfant).">
  441. </a>
  442. <figcaption>Un enfant sur un lac gelé (le lac, pas l’enfant). Il est 17h17. Je crois que j’aime de plus en plus les photos qui ont du&nbsp;grain.</figcaption>
  443. </figure>
  444. <p>Vu le bruit que font les souris alors qu’il y a encore de la lumière, la nuit risque de ne pas être de tout repos… On s’endort au son du poêle qui&nbsp;craque.</p>
  445. <nav>
  446. <p>
  447. <a href="/david/2024/experience/"
  448. title="Liste de tous les articles 2024 associés à cette étiquette"
  449. rel="tag">#expérience</a>
  450. <a href="/david/2024/foret/"
  451. title="Liste de tous les articles 2024 associés à cette étiquette"
  452. rel="tag">#forêt</a>
  453. <a href="/david/2024/parentalite/"
  454. title="Liste de tous les articles 2024 associés à cette étiquette"
  455. rel="tag">#parentalité</a>
  456. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  457. </p>
  458. </nav>
  459. <h2>
  460. <a href="/david/2024/01/20/" title="Lien permanent vers cet article">Extinction</a> <time datetime="2024-01-20">20 janvier 2024</time>
  461. </h2>
  462. <blockquote lang="en">
  463. <p>So where have all the websites gone? Well, the people who make them have all gone to war for the capitalist machine. They grew up and got jobs. A natural part of growing up. Silos came and plucked their voices. Invasive memes and short form content grew in their place. Hustle overtook leisure. Harassment overtook openness. Influence overtook creativity. An economy of interestingness replaced by one of followers, likes, and engagement&nbsp;metrics.</p>
  464. <p>One important thing to note; <mark>websites aren’t extinct.</mark> In fact, you’re on one now! Uploading your own words is ancient technology but still&nbsp;works.</p>
  465. <p><cite><em><a data-link-domain="daverupert.com" href="https://daverupert.com/2024/01/where-have-all-the-websites-gone/" hreflang="en"
  466. title="Consultation de l’article (anglais)">Where have all the flowers gone?</a>
  467. <a href="/david/cache/2024/7136e0810bfa42c4a9ca798a55cd2d53/" hreflang="en"
  468. data-tippy data-description="A post from Jason Velazquez called “Where have all the websites gone?” crossed my socials. It’s a good lament about the dearth of interesting content on the internet and how we’re stuck in the same boring content silos."
  469. data-source="https://daverupert.com/2024/01/where-have-all-the-websites-gone/"
  470. data-date="2024-01-19"
  471. data-favicon="https://daverupert.com/favicon.ico"
  472. data-domain="daverupert.com"
  473. ><svg xmlns="http://www.w3.org/2000/svg"
  474. width="24" height="24" viewBox="0 0 24 24" fill="none"
  475. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  476. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  477. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  478. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  479. </svg>
  480. <span class="sr-only">[archive]</span></a></em></cite></p>
  481. </blockquote>
  482. <p>En réponse à <q lang="en"><a data-link-domain="fromjason.xyz" href="https://www.fromjason.xyz/p/notebook/where-have-all-the-websites-gone/" hreflang="en"
  483. title="Consultation de l’article (anglais)">Where have all the websites gone?</a>
  484. <a href="/david/cache/2024/c3272392d462da90874d32841e5caac8/" hreflang="en"
  485. data-tippy data-description="It feels like all the cool websites from the late 2000s are gone. But maybe we are looking at this the wrong way. Maybe it is us who vanished."
  486. data-source="https://www.fromjason.xyz/p/notebook/where-have-all-the-websites-gone/"
  487. data-date="2024-01-09"
  488. data-favicon="https://www.fromjason.xyz/img/favicon.png"
  489. data-domain="fromjason.xyz"
  490. ><svg xmlns="http://www.w3.org/2000/svg"
  491. width="24" height="24" viewBox="0 0 24 24" fill="none"
  492. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  493. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  494. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  495. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  496. </svg>
  497. <span class="sr-only">[archive]</span></a></q> que j’ai <a href="/david/2024/01/10/#hr-24">déjà cité</a>. Peut-être que la capacité à publier est toujours là mais que nous avons <a href="/david/2024/01/12/#hr-27">trop changé</a> pour être capables de perdurer dans cette pratique. 2024&nbsp;pourrait me faire mentir car je vois une certaine effervescence dans mon agrégateur. On va bien voir si ça dure. On va bien voir si <em>je</em>&nbsp;dure.</p>
  498. <p><em>Guidé par le besoin, je suis en train d’automatiser des ancres sur mes <code>&lt;hr&gt;</code>, fausse bonne idée&#8239;? En affinant un peu le style ça me convient pour&nbsp;l’instant.</em></p>
  499. <a href="#hr-40" title="Lien vers cette section de la page"><hr id="hr-40" /></a>
  500. <blockquote>
  501. <p>public-inbox implements the sharing of an email inbox via git to complement or replace traditional mailing lists. Readers may read via NNTP, IMAP, POP3, Atom feeds or HTML&nbsp;archives.</p>
  502. <p>public-inbox spawned around three main&nbsp;ideas:</p>
  503. <ul>
  504. <li>Publicly accessible and archived communication is essential to Free Software&nbsp;development.</li>
  505. <li>Contributing to Free Software projects should not require the use of non-Free services or&nbsp;software.</li>
  506. <li><mark>Graphical user interfaces should not be required for text-based communication.</mark> Users may have broken graphics drivers, limited eyesight, or be unable to afford modern&nbsp;hardware.</li>
  507. </ul>
  508. <p>public-inbox aims to be easy-to-deploy and manage; encouraging projects to run their own instances with minimal&nbsp;overhead.</p>
  509. <p><cite><em><a data-link-domain="public-inbox.org" href="https://public-inbox.org/README.html" hreflang="en"
  510. title="Consultation de l’article (anglais)">public-inbox - an &quot;archives first&quot; approach to mailing lists</a>
  511. <a href="/david/cache/2024/30b40ff8034212e070dc7daf2b9406e9/" hreflang="en"
  512. data-tippy data-description="public-inbox implements the sharing of an email inbox via git to complement or replace traditional mailing lists. Readers may read via NNTP, IMAP, POP3, Atom feeds or HTML archives."
  513. data-source="https://public-inbox.org/README.html"
  514. data-date="2024-01-19"
  515. data-favicon="https://public-inbox.org/favicon.ico"
  516. data-domain="public-inbox.org"
  517. ><svg xmlns="http://www.w3.org/2000/svg"
  518. width="24" height="24" viewBox="0 0 24 24" fill="none"
  519. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  520. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  521. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  522. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  523. </svg>
  524. <span class="sr-only">[archive]</span></a></em></cite></p>
  525. </blockquote>
  526. <p>D’une certaine manière, l’<a data-link-domain="github.com" href="https://github.com/jgm/pandoc/issues/9250">extinction de voix des un·es</a> fait mon bonheur de découverte aujourd’hui. J’espère que le réflexe ne sera pas de passer de <em>Google Groups</em> à <em>Microsoft Github Discussions</em> par&nbsp;commodité.</p>
  527. <a href="#hr-41" title="Lien vers cette section de la page"><hr id="hr-41" /></a>
  528. <blockquote>
  529. <p>… ça veut dire qu’en vrai, les droits humains, tu t’en fiches pas&nbsp;mal.</p>
  530. <p>Et que tu es juste <mark>un peu raciste</mark>.</p>
  531. <p><cite><em><a data-link-domain="emmaclit.com" href="https://emmaclit.com/2024/01/19/culture-froncaise/">Culture&nbsp;fronçaise</a></em></cite></p>
  532. </blockquote>
  533. <p>Voilà.</p>
  534. <a href="#hr-42" title="Lien vers cette section de la page"><hr id="hr-42" /></a>
  535. <figure>
  536. <a href="/static/david/2024/2024-01-19-ski-de-fond-nocturne.jpg"
  537. title="Cliquer pour une version haute résolution">
  538. <img
  539. src="/static/david/2024/2024-01-19-ski-de-fond-nocturne.jpg"
  540. width="3024" height="3024"
  541. srcset="/static/david/2024/2024-01-19-ski-de-fond-nocturne.jpg 3024w, /static/david/2024/2024-01-19-ski-de-fond-nocturne_660x440.jpg 660w, /static/david/2024/2024-01-19-ski-de-fond-nocturne_990x660.jpg 990w, /static/david/2024/2024-01-19-ski-de-fond-nocturne_1320x880.jpg 1320w"
  542. sizes="min(100vw, calc(100vh * 3024 / 3024))"
  543. loading="lazy"
  544. decoding="async"
  545. alt="Un enfant de dos dans des traces de ski de fond classique à la tombée du jour">
  546. </a>
  547. <figcaption>-16°C, rien de mieux pour démarrer une fin de semaine qu’une sortie ski dans notre jardin après&nbsp;l’école.</figcaption>
  548. </figure>
  549. <p>Cette photo est floue, c’est devenu tellement rare avec un téléphone (<em>OK&nbsp;Boomer</em>&nbsp;:p). Les couleurs étaient superbes et une fois les mains réchauffées c’était une ambiance très agréable. On n’a pas croisé grand monde. La rééducation active continue tranquillement son&nbsp;chemin.</p>
  550. <nav>
  551. <p>
  552. <a href="/david/2024/dependance/"
  553. title="Liste de tous les articles 2024 associés à cette étiquette"
  554. rel="tag">#dépendance</a>
  555. <a href="/david/2024/evolution/"
  556. title="Liste de tous les articles 2024 associés à cette étiquette"
  557. rel="tag">#évolution</a>
  558. <a href="/david/2024/parentalite/"
  559. title="Liste de tous les articles 2024 associés à cette étiquette"
  560. rel="tag">#parentalité</a>
  561. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  562. </p>
  563. </nav>
  564. <form action="/david/recherche/" method="get">
  565. <fieldset>
  566. <legend>Recherche</legend>
  567. <label for="input-search">Termes de votre recherche :</label>
  568. <input id="input-search" type="search" name="s" aria-describedby="indexation-infos" required>
  569. <input type="submit" value="Chercher">
  570. <p id="indexation-infos">
  571. <small>
  572. Seuls les contenus de ces 8 dernières années sont indexés.
  573. </small>
  574. </p>
  575. </fieldset>
  576. </form>
  577. <aside>
  578. <theme-toggle></theme-toggle>
  579. </aside>
  580. </article>
  581. <hr>
  582. <footer>
  583. <p>
  584. <a href="/david/" title="Aller à l’accueil">Accueil</a>
  585. <a href="/david/log/" title="Accès au flux RSS">Suivre</a>
  586. <a href="http://larlet.com"
  587. title="Go to my English profile"
  588. data-instant>Pro</a>
  589. <a href="mailto:david%40larlet.fr" title="Envoyer un courriel">Email</a>
  590. <abbr title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340">Légal</abbr>
  591. </p>
  592. <template id="theme-selector">
  593. <form>
  594. <style type="text/css">
  595. fieldset div {
  596. text-align: center;
  597. }
  598. </style>
  599. <fieldset>
  600. <legend>Thème</legend>
  601. <div>
  602. <label>
  603. <input type="radio" value="auto" name="chosen-color-scheme" checked>
  604. Auto
  605. </label>
  606. <label>
  607. <input type="radio" value="dark" name="chosen-color-scheme">
  608. Foncé
  609. </label>
  610. <label>
  611. <input type="radio" value="light" name="chosen-color-scheme">
  612. Clair
  613. </label>
  614. </div>
  615. </fieldset>
  616. </form>
  617. </template>
  618. </footer>
  619. <script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script>
  620. <script>
  621. class ThemeToggle extends HTMLElement {
  622. constructor() {
  623. super()
  624. const themeSelectorTemplate = document.querySelector('#theme-selector')
  625. const form = themeSelectorTemplate.content.firstElementChild
  626. this.attachShadow({ mode: 'open' })
  627. this.shadowRoot.appendChild(form.cloneNode(true))
  628. }
  629. connectedCallback() {
  630. const form = this.shadowRoot.querySelector('form')
  631. form.addEventListener('change', (e) => {
  632. const chosenColorScheme = e.target.value
  633. localStorage.setItem('theme', chosenColorScheme)
  634. toggleTheme(chosenColorScheme)
  635. })
  636. const selectedTheme = localStorage.getItem('theme')
  637. if (selectedTheme && selectedTheme !== 'undefined') {
  638. form.querySelector(`[value="${selectedTheme}"]`).checked = true
  639. }
  640. }
  641. }
  642. const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
  643. window.addEventListener('load', () => {
  644. let colorsLayer = undefined
  645. let hasDarkRules = false
  646. for (const styleSheet of Array.from(document.styleSheets)) {
  647. let mediaRules = []
  648. for (const layerRule of styleSheet.cssRules) {
  649. if (!(layerRule instanceof CSSLayerBlockRule)) {
  650. continue
  651. }
  652. if (layerRule.name === 'colors') {
  653. colorsLayer = layerRule
  654. }
  655. for (const cssRule of layerRule.cssRules) {
  656. if (cssRule.type !== CSSRule.MEDIA_RULE) {
  657. continue
  658. }
  659. // WARNING: Safari does not have/supports `conditionText`.
  660. if (cssRule.conditionText) {
  661. if (cssRule.conditionText !== prefersColorSchemeDark) {
  662. continue
  663. }
  664. } else {
  665. if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
  666. continue
  667. }
  668. }
  669. mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
  670. }
  671. }
  672. // WARNING: do not try to insert a Rule to a styleSheet you are
  673. // currently iterating on, otherwise the browser will be stuck
  674. // in a infinite loop…
  675. for (const mediaRule of mediaRules) {
  676. // Safari requires the `0` second parameter (even if default).
  677. colorsLayer.insertRule(mediaRule.cssText, 0)
  678. hasDarkRules = true
  679. }
  680. }
  681. if (hasDarkRules) {
  682. if ('customElements' in window && !customElements.get('theme-toggle')) {
  683. customElements.define('theme-toggle', ThemeToggle)
  684. }
  685. }
  686. })
  687. </script>
  688. </body>
  689. </html>