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 11KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  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>Reflets — David Larlet</title>
  13. <meta name="description" content="Abandonner, n’est-ce pas fermer les yeux sur la banalité de notre existence ?">
  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>Reflets</h1>
  56. </header>
  57. <nav>
  58. <p class="center">
  59. <a rel="prev" href="/david/2021/05/08/" title="Publication précédente : Étoiles">← Précédent</a> •
  60. <a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home">
  61. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-home"></use>
  62. </svg> Accueil</a>
  63. • <a rel="next" href="/david/2021/05/10/" title="Publication suivante : Résilience">Suivant →</a>
  64. </p>
  65. </nav>
  66. <hr>
  67. <blockquote>
  68. <p>Abandonner, n’est-ce pas fermer les yeux sur la banalité de notre existence&#8239;?</p>
  69. <p><cite><em>Encabanée</em>, Gabrielle Filteau-Chiba</cite></p>
  70. </blockquote>
  71. <p>Je continue sur ma lancée. Pour quelqu’un qui <a href="/david/2021/05/04/" title="Touriste">ne souhaitait pas partager</a>, c’est raté. J’ai pris beaucoup de plaisir à faire des photos lors de cette <a href="/david/2021/04/22/" title="Vacances">prise de soin</a>. Il y a un côté rassurant, presque thérapeutique, à se dire qu’il suffit parfois de déclencher pour ramener une image qui ne va pas demander des heures de post-production.</p>
  72. <p>Je me demande s’il y a des astuces pour transformer des bâtons de randonnée en <em>sliders</em> vidéo. Si non, ça serait probablement un projet fun avec une imprimante 3D. J’imagine deux raccords aux extrémités et de quoi fixer le trépied au milieu. La partie mobile pourrait être reprise d’une solution commerciale. À dessiner.</p>
  73. <hr />
  74. <figure>
  75. <a href="#soleil-soir"
  76. title="Cliquer pour une version haute résolution">
  77. <img src="/static/david/2021/soleil-soir.jpg" alt="Reflet du soleil sur un lac avant son coucher"
  78. loading="lazy" width="1600" height="1200" />
  79. </a>
  80. <a href="#_" class="lightbox" id="soleil-soir">
  81. <img src="/static/david/2021/soleil-soir.jpg" alt="Reflet du soleil sur un lac avant son coucher"
  82. loading="lazy" width="1600" height="1200" />
  83. </a>
  84. <figcaption>Jeux de lumières et de reflets au soleil couchant.</figcaption>
  85. </figure>
  86. <figure>
  87. <a href="#reflets-matin"
  88. title="Cliquer pour une version haute résolution">
  89. <img src="/static/david/2021/reflets-matin.jpg" alt="Reflet sur un lac de bon matin"
  90. loading="lazy" width="1600" height="1200" />
  91. </a>
  92. <a href="#_" class="lightbox" id="reflets-matin">
  93. <img src="/static/david/2021/reflets-matin.jpg" alt="Reflet sur un lac de bon matin"
  94. loading="lazy" width="1600" height="1200" />
  95. </a>
  96. <figcaption>Une envie de jouer avec l’envers du miroir.</figcaption>
  97. </figure>
  98. <figure>
  99. <a href="#reflets-nuages"
  100. title="Cliquer pour une version haute résolution">
  101. <img src="/static/david/2021/reflets-nuages.jpg" alt="Reflet de nuages sur un lac"
  102. loading="lazy" width="1600" height="1200" />
  103. </a>
  104. <a href="#_" class="lightbox" id="reflets-nuages">
  105. <img src="/static/david/2021/reflets-nuages.jpg" alt="Reflet de nuages sur un lac"
  106. loading="lazy" width="1600" height="1200" />
  107. </a>
  108. <figcaption>Les plantes s’envolent…</figcaption>
  109. </figure>
  110. <figure>
  111. <a href="#reflets-arbre"
  112. title="Cliquer pour une version haute résolution">
  113. <img src="/static/david/2021/reflets-arbre.jpg" alt="Reflet d’un arbre sur un lac"
  114. loading="lazy" width="1600" height="1200" />
  115. </a>
  116. <a href="#_" class="lightbox" id="reflets-arbre">
  117. <img src="/static/david/2021/reflets-arbre.jpg" alt="Reflet d’un arbre sur un lac"
  118. loading="lazy" width="1600" height="1200" />
  119. </a>
  120. <figcaption>…et les arbres s’abreuvent.</figcaption>
  121. </figure>
  122. <nav>
  123. <p class="center">
  124. <a rel="prev" href="/david/2021/05/08/" title="Publication précédente : Étoiles">← Précédent</a> •
  125. <a href="/david/2021/" title="Liste des publications récentes">↑ En 2021</a>
  126. • <a rel="next" href="/david/2021/05/10/" title="Publication suivante : Résilience">Suivant →</a>
  127. </p>
  128. </nav>
  129. </article>
  130. <hr>
  131. <footer>
  132. <p>
  133. <a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home">
  134. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-home"></use>
  135. </svg> Accueil</a> •
  136. <a href="/david/log/" title="Accès au flux RSS"><svg class="icon icon-rss2">
  137. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-rss2"></use>
  138. </svg> Suivre</a> •
  139. <a href="http://larlet.com" title="Go to my English profile" data-instant><svg class="icon icon-user-tie">
  140. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-user-tie"></use>
  141. </svg> Pro</a> •
  142. <a href="mailto:david%40larlet.fr" title="Envoyer un courriel"><svg class="icon icon-mail">
  143. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-mail"></use>
  144. </svg> Email</a> •
  145. <abbr class="nowrap" title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340"><svg class="icon icon-hammer2">
  146. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-hammer2"></use>
  147. </svg> Légal</abbr>
  148. </p>
  149. <template id="theme-selector">
  150. <form>
  151. <fieldset>
  152. <legend><svg class="icon icon-brightness-contrast">
  153. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-brightness-contrast"></use>
  154. </svg> Thème</legend>
  155. <label>
  156. <input type="radio" value="auto" name="chosen-color-scheme" checked> Auto
  157. </label>
  158. <label>
  159. <input type="radio" value="dark" name="chosen-color-scheme"> Foncé
  160. </label>
  161. <label>
  162. <input type="radio" value="light" name="chosen-color-scheme"> Clair
  163. </label>
  164. </fieldset>
  165. </form>
  166. </template>
  167. </footer>
  168. <script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script>
  169. <script>
  170. function loadThemeForm(templateName) {
  171. const themeSelectorTemplate = document.querySelector(templateName)
  172. const form = themeSelectorTemplate.content.firstElementChild
  173. themeSelectorTemplate.replaceWith(form)
  174. form.addEventListener('change', (e) => {
  175. const chosenColorScheme = e.target.value
  176. localStorage.setItem('theme', chosenColorScheme)
  177. toggleTheme(chosenColorScheme)
  178. })
  179. const selectedTheme = localStorage.getItem('theme')
  180. if (selectedTheme && selectedTheme !== 'undefined') {
  181. form.querySelector(`[value="${selectedTheme}"]`).checked = true
  182. }
  183. }
  184. const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
  185. window.addEventListener('load', () => {
  186. let hasDarkRules = false
  187. for (const styleSheet of Array.from(document.styleSheets)) {
  188. let mediaRules = []
  189. for (const cssRule of styleSheet.cssRules) {
  190. if (cssRule.type !== CSSRule.MEDIA_RULE) {
  191. continue
  192. }
  193. // WARNING: Safari does not have/supports `conditionText`.
  194. if (cssRule.conditionText) {
  195. if (cssRule.conditionText !== prefersColorSchemeDark) {
  196. continue
  197. }
  198. } else {
  199. if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
  200. continue
  201. }
  202. }
  203. mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
  204. }
  205. // WARNING: do not try to insert a Rule to a styleSheet you are
  206. // currently iterating on, otherwise the browser will be stuck
  207. // in a infinite loop…
  208. for (const mediaRule of mediaRules) {
  209. styleSheet.insertRule(mediaRule.cssText)
  210. hasDarkRules = true
  211. }
  212. }
  213. if (hasDarkRules) {
  214. loadThemeForm('#theme-selector')
  215. }
  216. })
  217. </script>
  218. </body>
  219. </html>