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.

index.html 25KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492
  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>Jour&nbsp;2 — David Larlet</title>
  13. <meta name="description" content="Finalement, réveil à 6 h au bruit des casseroles des voisin·es. C’est pas plus mal car ça me permet d’admirer la pureté du ciel étoilé par -15 °C, et puis ça me laisse le temps de me faire un gruau bien chaud avant de tout plier. Je ne suis pas encore à 100% mais c’est déjà beaucoup mieux que la veille. La bactérie ou le virus concerné doit se dire que je ne suis pas un hôte rentable.">
  14. <!-- That good ol' feed, subscribe :). -->
  15. <link rel="alternate" type="application/atom+xml" title="Feed" href="/david/log/">
  16. <!-- Generated from https://realfavicongenerator.net/ such a mess. -->
  17. <link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons2/apple-touch-icon.png">
  18. <link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons2/favicon-32x32.png">
  19. <link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons2/favicon-16x16.png">
  20. <link rel="manifest" href="/static/david/icons2/site.webmanifest">
  21. <link rel="mask-icon" href="/static/david/icons2/safari-pinned-tab.svg" color="#07486c">
  22. <link rel="shortcut icon" href="/static/david/icons2/favicon.ico">
  23. <meta name="msapplication-TileColor" content="#f7f7f7">
  24. <meta name="msapplication-config" content="/static/david/icons2/browserconfig.xml">
  25. <meta name="theme-color" content="#f7f7f7" media="(prefers-color-scheme: light)">
  26. <meta name="theme-color" content="#272727" media="(prefers-color-scheme: dark)">
  27. <!-- Documented, feel free to shoot an email. -->
  28. <link rel="stylesheet" href="/static/david/css/style_2021-01-20.css">
  29. <!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. -->
  30. <link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
  31. <link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
  32. <link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
  33. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  34. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  35. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  36. <script>
  37. function toggleTheme(themeName) {
  38. document.documentElement.classList.toggle(
  39. 'forced-dark',
  40. themeName === 'dark'
  41. )
  42. document.documentElement.classList.toggle(
  43. 'forced-light',
  44. themeName === 'light'
  45. )
  46. }
  47. const selectedTheme = localStorage.getItem('theme')
  48. if (selectedTheme !== 'undefined') {
  49. toggleTheme(selectedTheme)
  50. }
  51. </script>
  52. <body class="remarkdown h1-underline h2-underline h3-underline em-underscore hr-center ul-star pre-tick" data-instant-intensity="viewport-all">
  53. <article>
  54. <header>
  55. <h1>Jour&nbsp;2</h1>
  56. </header>
  57. <nav>
  58. <p class="center">
  59. <a rel="prev" href="/david/2023/02/10/" title="Publication précédente : Jour&nbsp;1">← Précédent</a> •
  60. <nobr>
  61. <a href="/david/" title="Aller à l’accueil"
  62. ><svg class="icon icon-home">
  63. <use
  64. xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-home"
  65. ></use>
  66. </svg>
  67. Accueil</a
  68. >
  69. </nobr>
  70. <nobr>
  71. <a href="/david/recherche/" title="Aller à la page de recherche"
  72. ><svg class="icon icon-search">
  73. <use
  74. xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-search"
  75. ></use>
  76. </svg>
  77. Recherche</a
  78. >
  79. </nobr>
  80. • <a rel="next" href="/david/2023/02/12/" title="Publication suivante : Jour&nbsp;3">Suivant →</a>
  81. </p>
  82. </nav>
  83. <hr>
  84. <p>Finalement, réveil à 6&#8239;h au bruit des casseroles des voisin·es. C’est pas plus mal car ça me permet d’admirer la pureté du ciel étoilé par -15&#8239;°C, et puis ça me laisse le temps de me faire un gruau bien chaud avant de tout plier. Je ne suis pas encore à 100% mais c’est déjà beaucoup mieux que la veille. La bactérie ou le virus concerné doit se dire que je ne suis pas un hôte&nbsp;rentable.</p>
  85. <figure>
  86. <a href="#2023-02-11-accueil-poisson-blanc"
  87. title="Cliquer pour une version haute résolution">
  88. <picture>
  89. <source
  90. srcset="/static/david/2023/2023-02-11-accueil-poisson-blanc.webp 1512w"
  91. sizes="min(100vw, calc(100vh * 1512 / 2016))"
  92. type="image/webp">
  93. <!-- The <img> tag is a fallback image (required in the <picture> tag) -->
  94. <img
  95. src="/static/david/2023/2023-02-11-accueil-poisson-blanc.jpg"
  96. width="1512" height="2016"
  97. srcset="/static/david/2023/2023-02-11-accueil-poisson-blanc.jpg 1512w"
  98. sizes="min(100vw, calc(100vh * 1512 / 2016))"
  99. fetchpriority="high"
  100. decoding="sync"
  101. alt="Le ciel à 7h du matin sur le réservoir du Poisson Blanc.">
  102. </picture>
  103. </a>
  104. <a href="#_" class="lightbox" id="2023-02-11-accueil-poisson-blanc">
  105. <picture style="margin:0 auto;">
  106. <source
  107. srcset="/static/david/2023/2023-02-11-accueil-poisson-blanc.webp 1512w"
  108. sizes="min(100vw, calc(100vh * 1512 / 2016))"
  109. type="image/webp">
  110. <!-- The <img> tag is a fallback image (required in the <picture> tag) -->
  111. <img
  112. src="/static/david/2023/2023-02-11-accueil-poisson-blanc.jpg"
  113. width="1512" height="2016"
  114. srcset="/static/david/2023/2023-02-11-accueil-poisson-blanc.jpg 1512w"
  115. sizes="min(100vw, calc(100vh * 1512 / 2016))"
  116. fetchpriority="high"
  117. decoding="sync"
  118. alt="Le ciel à 7h du matin sur le réservoir du Poisson Blanc.">
  119. </picture>
  120. </a>
  121. <figcaption>Les couleurs sont magnifiques et je regrette déjà de ne pas avoir pris un appareil&nbsp;photo.</figcaption>
  122. </figure>
  123. <p>On monte dans le bus scolaire avec un peu de retard et c’est parti pour 1&nbsp;heure de transport afin de rejoindre l’autre côté du réservoir, j’ai bien fait de me mettre à l’avant car ça tourne et c’est bien gelé. On se retrouve rapidement sur la glace avec nos traîneaux pour la photo de départ et hop c’est&nbsp;parti.</p>
  124. <p>Je me retrouve dans le groupe de tête qui va à un rythme un peu fou. Je ne sais pas trop pourquoi je m’impose ça, c’est un bon moyen de voir si j’ai de la fièvre&#8239;! Avec une telle taille de groupe, j’ai surtout l’appréhension de retarder tout le monde avec un souci plus ou moins technique, je me dis qu’avec un peu d’avance ça me permettra de pallier une éventuelle défaillance. On a tou·tes nos&nbsp;insécurités…</p>
  125. <figure>
  126. <a href="#2023-02-11-depart-traineaux"
  127. title="Cliquer pour une version haute résolution">
  128. <picture>
  129. <source
  130. srcset="/static/david/2023/2023-02-11-depart-traineaux.webp 2016w"
  131. sizes="min(100vw, calc(100vh * 2016 / 1512))"
  132. type="image/webp">
  133. <!-- The <img> tag is a fallback image (required in the <picture> tag) -->
  134. <img
  135. src="/static/david/2023/2023-02-11-depart-traineaux.jpg"
  136. width="2016" height="1512"
  137. srcset="/static/david/2023/2023-02-11-depart-traineaux.jpg 2016w"
  138. sizes="min(100vw, calc(100vh * 2016 / 1512))"
  139. fetchpriority="high"
  140. decoding="sync"
  141. alt="Des personnes sur le lac gelé qui tirent chacune un traineau">
  142. </picture>
  143. </a>
  144. <a href="#_" class="lightbox" id="2023-02-11-depart-traineaux">
  145. <picture style="margin:0 auto;">
  146. <source
  147. srcset="/static/david/2023/2023-02-11-depart-traineaux.webp 2016w"
  148. sizes="min(100vw, calc(100vh * 2016 / 1512))"
  149. type="image/webp">
  150. <!-- The <img> tag is a fallback image (required in the <picture> tag) -->
  151. <img
  152. src="/static/david/2023/2023-02-11-depart-traineaux.jpg"
  153. width="2016" height="1512"
  154. srcset="/static/david/2023/2023-02-11-depart-traineaux.jpg 2016w"
  155. sizes="min(100vw, calc(100vh * 2016 / 1512))"
  156. fetchpriority="high"
  157. decoding="sync"
  158. alt="Des personnes sur le lac gelé qui tirent chacune un traineau">
  159. </picture>
  160. </a>
  161. <figcaption>Le vent a bien soufflé cette nuit, on alterne glace et&nbsp;neige.</figcaption>
  162. </figure>
  163. <p>Niveau équipement, il y a un peu de tout, ça va des skis de fond aux skis de randonnée avec peaux en passant par les skis-raquettes. Je suis content de mes écailles vu les conditions mais ça me fait préférer la neige, aussi je me décale vers la berge en solo, la visibilité est bonne et je ne le vois pas comme un problème de sécurité. Les températures se réchauffent et tout le monde craint que l’étendue d’eau gelée ne se transforme en un lac de <a href="https://fr.wikipedia.org/wiki/N%C3%A9vasse">sloche</a>…</p>
  164. <figure>
  165. <a href="#2023-02-11-traineau-solo"
  166. title="Cliquer pour une version haute résolution">
  167. <picture>
  168. <source
  169. srcset="/static/david/2023/2023-02-11-traineau-solo.webp 2016w"
  170. sizes="min(100vw, calc(100vh * 2016 / 1512))"
  171. type="image/webp">
  172. <!-- The <img> tag is a fallback image (required in the <picture> tag) -->
  173. <img
  174. src="/static/david/2023/2023-02-11-traineau-solo.jpg"
  175. width="2016" height="1512"
  176. srcset="/static/david/2023/2023-02-11-traineau-solo.jpg 2016w"
  177. sizes="min(100vw, calc(100vh * 2016 / 1512))"
  178. fetchpriority="high"
  179. decoding="sync"
  180. alt="Une longue trainée de personnes tirant des traineaux sur le lac">
  181. </picture>
  182. </a>
  183. <a href="#_" class="lightbox" id="2023-02-11-traineau-solo">
  184. <picture style="margin:0 auto;">
  185. <source
  186. srcset="/static/david/2023/2023-02-11-traineau-solo.webp 2016w"
  187. sizes="min(100vw, calc(100vh * 2016 / 1512))"
  188. type="image/webp">
  189. <!-- The <img> tag is a fallback image (required in the <picture> tag) -->
  190. <img
  191. src="/static/david/2023/2023-02-11-traineau-solo.jpg"
  192. width="2016" height="1512"
  193. srcset="/static/david/2023/2023-02-11-traineau-solo.jpg 2016w"
  194. sizes="min(100vw, calc(100vh * 2016 / 1512))"
  195. fetchpriority="high"
  196. decoding="sync"
  197. alt="Une longue trainée de personnes tirant des traineaux sur le lac">
  198. </picture>
  199. </a>
  200. <figcaption>Un peu à l’écart de la foule, on ne se refait&nbsp;pas.</figcaption>
  201. </figure>
  202. <p>Malgré le chargement, je me surprends à pouvoir glisser de temps en temps lorsque le revêtement est bon. C’est agréable et je suis déjà en t-shirt car il doit faire autour de zéro, ressenti 12&#8239;000&#8239;°C, la réverbération est violente. J’attends stupidement la pause de midi pour mettre une protection sur ma peau. Et pour m’alimenter. Et pour bien m’hydrater. N’importe&nbsp;quoi.</p>
  203. <p>En arrivant dans la crique dédiée au repas, c’est ambiance station de ski avec un fond de Bob Marley et le long serpent des arrivées qui se replie pour digérer. Je pense que c’est un soulagement partagé d’être dans des conditions idéales et de pouvoir profiter de cette belle journée. Les organisateurs n’ont jamais connu ça. On a avalé les sept premiers kilomètres en moins de deux&nbsp;heures…</p>
  204. <p>Pour la seconde partie de la journée, je prends un rythme moins soutenu car je ne veux pas arriver trempé au campement et la température monte encore. J’en profite pour observer les différentes tactiques de chacun·e pour limiter le frottement/bruit, passer sur les plaques de glace, etc. Ces sept derniers kilomètres se font sur la&nbsp;digestion.</p>
  205. <figure>
  206. <a href="#2023-02-11-traineau-apres-midi"
  207. title="Cliquer pour une version haute résolution">
  208. <picture>
  209. <source
  210. srcset="/static/david/2023/2023-02-11-traineau-apres-midi.webp 1512w"
  211. sizes="min(100vw, calc(100vh * 1512 / 2016))"
  212. type="image/webp">
  213. <!-- The <img> tag is a fallback image (required in the <picture> tag) -->
  214. <img
  215. src="/static/david/2023/2023-02-11-traineau-apres-midi.jpg"
  216. width="1512" height="2016"
  217. srcset="/static/david/2023/2023-02-11-traineau-apres-midi.jpg 1512w"
  218. sizes="min(100vw, calc(100vh * 1512 / 2016))"
  219. fetchpriority="high"
  220. decoding="sync"
  221. alt="Des personnes devant moi avec des traineaux, on voit mon ombre.">
  222. </picture>
  223. </a>
  224. <a href="#_" class="lightbox" id="2023-02-11-traineau-apres-midi">
  225. <picture style="margin:0 auto;">
  226. <source
  227. srcset="/static/david/2023/2023-02-11-traineau-apres-midi.webp 1512w"
  228. sizes="min(100vw, calc(100vh * 1512 / 2016))"
  229. type="image/webp">
  230. <!-- The <img> tag is a fallback image (required in the <picture> tag) -->
  231. <img
  232. src="/static/david/2023/2023-02-11-traineau-apres-midi.jpg"
  233. width="1512" height="2016"
  234. srcset="/static/david/2023/2023-02-11-traineau-apres-midi.jpg 1512w"
  235. sizes="min(100vw, calc(100vh * 1512 / 2016))"
  236. fetchpriority="high"
  237. decoding="sync"
  238. alt="Des personnes devant moi avec des traineaux, on voit mon ombre.">
  239. </picture>
  240. </a>
  241. <figcaption>Pour ma part, c’est neige fraîche, quitte à forcer un peu plus je préfère soigner mon silence&nbsp;relatif.</figcaption>
  242. </figure>
  243. <p>Le campement est dans une crique qui laisse suffisamment d’espace pour ne pas être trop les un·es sur les autres. Je fais l’erreur de choisir stratégiquement un emplacement qui pourrait être au soleil le matin au détriment de la protection au vent. Ça va s’avérer assez critique plus tard car on va se prendre de bonnes bourrasques qui me feront craindre l’envol de mon tipi. J’enneige les bords avant de me coucher pour éviter la prise au vent par en-dessous, tant pis si ça condense cette nuit, c’est la dernière&nbsp;dehors.</p>
  244. <figure>
  245. <a href="#2023-02-11-coucher-soleil"
  246. title="Cliquer pour une version haute résolution">
  247. <picture>
  248. <source
  249. srcset="/static/david/2023/2023-02-11-coucher-soleil.webp 1512w"
  250. sizes="min(100vw, calc(100vh * 1512 / 2016))"
  251. type="image/webp">
  252. <!-- The <img> tag is a fallback image (required in the <picture> tag) -->
  253. <img
  254. src="/static/david/2023/2023-02-11-coucher-soleil.jpg"
  255. width="1512" height="2016"
  256. srcset="/static/david/2023/2023-02-11-coucher-soleil.jpg 1512w"
  257. sizes="min(100vw, calc(100vh * 1512 / 2016))"
  258. fetchpriority="high"
  259. decoding="sync"
  260. alt="Le soleil se couche derrière des blocs de glace.">
  261. </picture>
  262. </a>
  263. <a href="#_" class="lightbox" id="2023-02-11-coucher-soleil">
  264. <picture style="margin:0 auto;">
  265. <source
  266. srcset="/static/david/2023/2023-02-11-coucher-soleil.webp 1512w"
  267. sizes="min(100vw, calc(100vh * 1512 / 2016))"
  268. type="image/webp">
  269. <!-- The <img> tag is a fallback image (required in the <picture> tag) -->
  270. <img
  271. src="/static/david/2023/2023-02-11-coucher-soleil.jpg"
  272. width="1512" height="2016"
  273. srcset="/static/david/2023/2023-02-11-coucher-soleil.jpg 1512w"
  274. sizes="min(100vw, calc(100vh * 1512 / 2016))"
  275. fetchpriority="high"
  276. decoding="sync"
  277. alt="Le soleil se couche derrière des blocs de glace.">
  278. </picture>
  279. </a>
  280. <figcaption>Je vous épargne les différents dégradés de rose qui ont suivi&nbsp;!</figcaption>
  281. </figure>
  282. <p>Le coucher de soleil est magnifique et je tente même un peu d’astrophotographie à l’iPhone, soyons fous. Un ragoût de bœuf était proposé pour les personnes qui ne voulaient pas être en autonomie complète. Je tente le coup et c’était bon mais je crois que je ne mange plus assez de viande pour supporter des portions d’expédition vu mon état de fatigue. Mes nouilles traditionnelles seraient probablement mieux passées. La soirée se passe plutôt bien et les températures restent&nbsp;agréables.</p>
  283. <figure>
  284. <a href="#2023-02-11-astro-photographie"
  285. title="Cliquer pour une version haute résolution">
  286. <picture>
  287. <source
  288. srcset="/static/david/2023/2023-02-11-astro-photographie.webp 1512w"
  289. sizes="min(100vw, calc(100vh * 1512 / 2016))"
  290. type="image/webp">
  291. <!-- The <img> tag is a fallback image (required in the <picture> tag) -->
  292. <img
  293. src="/static/david/2023/2023-02-11-astro-photographie.jpg"
  294. width="1512" height="2016"
  295. srcset="/static/david/2023/2023-02-11-astro-photographie.jpg 1512w"
  296. sizes="min(100vw, calc(100vh * 1512 / 2016))"
  297. fetchpriority="high"
  298. decoding="sync"
  299. alt="Une tente rouge et Orion au-dessus.">
  300. </picture>
  301. </a>
  302. <a href="#_" class="lightbox" id="2023-02-11-astro-photographie">
  303. <picture style="margin:0 auto;">
  304. <source
  305. srcset="/static/david/2023/2023-02-11-astro-photographie.webp 1512w"
  306. sizes="min(100vw, calc(100vh * 1512 / 2016))"
  307. type="image/webp">
  308. <!-- The <img> tag is a fallback image (required in the <picture> tag) -->
  309. <img
  310. src="/static/david/2023/2023-02-11-astro-photographie.jpg"
  311. width="1512" height="2016"
  312. srcset="/static/david/2023/2023-02-11-astro-photographie.jpg 1512w"
  313. sizes="min(100vw, calc(100vh * 1512 / 2016))"
  314. fetchpriority="high"
  315. decoding="sync"
  316. alt="Une tente rouge et Orion au-dessus.">
  317. </picture>
  318. </a>
  319. <figcaption>C’est bruité et tout mais j’étais content que l’on distingue au moins&nbsp;Orion.</figcaption>
  320. </figure>
  321. <p>La seule frustration partagée de la journée c’est de ne pas pouvoir tester l’équipement chaud acheté pour l’occasion&#8239;! Mais bon on ne va pas chialer la bouche pleine non plus&nbsp;hein…</p>
  322. <nav>
  323. <p>
  324. <a href="/david/2023/aventure/"
  325. title="Liste de tous les articles 2023 associés à cette étiquette"
  326. >#aventure</a>
  327. <a href="/david/2023/foret/"
  328. title="Liste de tous les articles 2023 associés à cette étiquette"
  329. >#forêt</a>
  330. <a href="/david/2023/sociologie/"
  331. title="Liste de tous les articles 2023 associés à cette étiquette"
  332. >#sociologie</a>
  333. <a href="/david/#tags-2023"
  334. title="Liste de toutes les étiquettes 2023"
  335. ><svg class="icon icon-tags">
  336. <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-tags"></use>
  337. </svg>
  338. tous ?</a
  339. >
  340. </p>
  341. </nav>
  342. <nav>
  343. <p class="center">
  344. <a rel="prev" href="/david/2023/02/10/" title="Publication précédente : Jour&nbsp;1">← Précédent</a> •
  345. <a href="/david/2023/" title="Liste des publications récentes">↑ En 2023</a>
  346. • <a rel="next" href="/david/2023/02/12/" title="Publication suivante : Jour&nbsp;3">Suivant →</a>
  347. </p>
  348. </nav>
  349. </article>
  350. <hr>
  351. <footer>
  352. <p>
  353. <nobr>
  354. <a href="/david/" title="Aller à l’accueil"
  355. ><svg class="icon icon-home">
  356. <use
  357. xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-home"
  358. ></use>
  359. </svg>
  360. Accueil</a
  361. >
  362. </nobr>
  363. <nobr>
  364. <a href="/david/log/" title="Accès au flux RSS"
  365. ><svg class="icon icon-rss2">
  366. <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-rss2"></use>
  367. </svg>
  368. Suivre</a
  369. >
  370. </nobr>
  371. <nobr>
  372. <a href="http://larlet.com" title="Go to my English profile" data-instant
  373. ><svg class="icon icon-user-tie">
  374. <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-user-tie"></use>
  375. </svg>
  376. Pro</a
  377. >
  378. </nobr>
  379. <nobr>
  380. <a href="mailto:david%40larlet.fr" title="Envoyer un courriel"
  381. ><svg class="icon icon-mail">
  382. <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-mail"></use>
  383. </svg>
  384. Email</a
  385. >
  386. </nobr>
  387. <nobr>
  388. <abbr
  389. class="nowrap"
  390. title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340"
  391. ><svg class="icon icon-hammer2">
  392. <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-hammer2"></use>
  393. </svg>
  394. Légal</abbr
  395. >
  396. </nobr>
  397. </p>
  398. <template id="theme-selector">
  399. <form>
  400. <fieldset>
  401. <legend><svg class="icon icon-brightness-contrast">
  402. <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-brightness-contrast"></use>
  403. </svg> Thème</legend>
  404. <label>
  405. <input type="radio" value="auto" name="chosen-color-scheme" checked> Auto
  406. </label>
  407. <label>
  408. <input type="radio" value="dark" name="chosen-color-scheme"> Foncé
  409. </label>
  410. <label>
  411. <input type="radio" value="light" name="chosen-color-scheme"> Clair
  412. </label>
  413. </fieldset>
  414. </form>
  415. </template>
  416. </footer>
  417. <script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script>
  418. <script>
  419. function loadThemeForm(templateName) {
  420. const themeSelectorTemplate = document.querySelector(templateName)
  421. const form = themeSelectorTemplate.content.firstElementChild
  422. themeSelectorTemplate.replaceWith(form)
  423. form.addEventListener('change', (e) => {
  424. const chosenColorScheme = e.target.value
  425. localStorage.setItem('theme', chosenColorScheme)
  426. toggleTheme(chosenColorScheme)
  427. })
  428. const selectedTheme = localStorage.getItem('theme')
  429. if (selectedTheme && selectedTheme !== 'undefined') {
  430. form.querySelector(`[value="${selectedTheme}"]`).checked = true
  431. }
  432. }
  433. const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
  434. window.addEventListener('load', () => {
  435. let hasDarkRules = false
  436. for (const styleSheet of Array.from(document.styleSheets)) {
  437. let mediaRules = []
  438. for (const cssRule of styleSheet.cssRules) {
  439. if (cssRule.type !== CSSRule.MEDIA_RULE) {
  440. continue
  441. }
  442. // WARNING: Safari does not have/supports `conditionText`.
  443. if (cssRule.conditionText) {
  444. if (cssRule.conditionText !== prefersColorSchemeDark) {
  445. continue
  446. }
  447. } else {
  448. if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
  449. continue
  450. }
  451. }
  452. mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
  453. }
  454. // WARNING: do not try to insert a Rule to a styleSheet you are
  455. // currently iterating on, otherwise the browser will be stuck
  456. // in a infinite loop…
  457. for (const mediaRule of mediaRules) {
  458. styleSheet.insertRule(mediaRule.cssText)
  459. hasDarkRules = true
  460. }
  461. }
  462. if (hasDarkRules) {
  463. loadThemeForm('#theme-selector')
  464. }
  465. })
  466. </script>
  467. </body>
  468. </html>