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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346
  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. Conteur
  14. — David Larlet</title>
  15. <meta name="description" content="Un peu de contexte. Lorsqu’on va promener et bivouaquer en forêt avec l’enfant — comme la fin de semaine dernière — on invente des histoires. C’est souvent inspiré des lectures du moment (La guerre de clans, Naruto, etc) croisées avec les éléments que l’on a sous la main (crapauds, anis gemmes de Flavigny, etc). En rentrant à la maison, on prend un moment le soir pour écrire taper tout cela mais il faut garder de la place pour les dessins d’illustration. Me voilà donc en train de chercher comment introduire un saut de page en Markdown lors de l’impression. Ou plutôt dans le rendu de Markdown par iAWriter pour être plus précis. Et il s’avère que c’est possible (cache) avec +++ !">
  16. <!-- That good ol' feed, subscribe :). -->
  17. <link rel="alternate"
  18. type="application/atom+xml"
  19. title="Feed"
  20. href="/david/log/">
  21. <!-- Generated from https://realfavicongenerator.net/ such a mess. -->
  22. <link rel="apple-touch-icon"
  23. sizes="180x180"
  24. href="/static/david/icons2/apple-touch-icon.png">
  25. <link rel="icon"
  26. type="image/png"
  27. sizes="32x32"
  28. href="/static/david/icons2/favicon-32x32.png">
  29. <link rel="icon"
  30. type="image/png"
  31. sizes="16x16"
  32. href="/static/david/icons2/favicon-16x16.png">
  33. <link rel="manifest" href="/static/david/icons2/site.webmanifest">
  34. <link rel="mask-icon"
  35. href="/static/david/icons2/safari-pinned-tab.svg"
  36. color="#07486c">
  37. <link rel="shortcut icon" href="/static/david/icons2/favicon.ico">
  38. <meta name="msapplication-TileColor" content="#f7f7f7">
  39. <meta name="msapplication-config"
  40. content="/static/david/icons2/browserconfig.xml">
  41. <meta name="theme-color"
  42. content="#f7f7f7"
  43. media="(prefers-color-scheme: light)">
  44. <meta name="theme-color"
  45. content="#272727"
  46. media="(prefers-color-scheme: dark)">
  47. <!-- Documented, feel free to shoot an email. -->
  48. <link rel="stylesheet" href="/static/david/css/style_2021-01-20.css">
  49. <!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. -->
  50. <link rel="preload"
  51. href="/static/david/css/fonts/triplicate_t4_poly_regular.woff2"
  52. as="font"
  53. type="font/woff2"
  54. media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)"
  55. crossorigin>
  56. <link rel="preload"
  57. href="/static/david/css/fonts/triplicate_t4_poly_bold.woff2"
  58. as="font"
  59. type="font/woff2"
  60. media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)"
  61. crossorigin>
  62. <link rel="preload"
  63. href="/static/david/css/fonts/triplicate_t4_poly_italic.woff2"
  64. as="font"
  65. type="font/woff2"
  66. media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)"
  67. crossorigin>
  68. <link rel="preload"
  69. href="/static/david/css/fonts/triplicate_t3_regular.woff2"
  70. as="font"
  71. type="font/woff2"
  72. media="(prefers-color-scheme: dark)"
  73. crossorigin>
  74. <link rel="preload"
  75. href="/static/david/css/fonts/triplicate_t3_bold.woff2"
  76. as="font"
  77. type="font/woff2"
  78. media="(prefers-color-scheme: dark)"
  79. crossorigin>
  80. <link rel="preload"
  81. href="/static/david/css/fonts/triplicate_t3_italic.woff2"
  82. as="font"
  83. type="font/woff2"
  84. media="(prefers-color-scheme: dark)"
  85. crossorigin>
  86. <script>
  87. function toggleTheme(themeName) {
  88. document.documentElement.classList.toggle(
  89. 'forced-dark',
  90. themeName === 'dark'
  91. )
  92. document.documentElement.classList.toggle(
  93. 'forced-light',
  94. themeName === 'light'
  95. )
  96. }
  97. const selectedTheme = localStorage.getItem('theme')
  98. if (selectedTheme !== 'undefined') {
  99. toggleTheme(selectedTheme)
  100. }
  101. </script>
  102. <body class="remarkdown h1-underline h2-underline h3-underline em-underscore hr-center ul-star pre-tick"
  103. data-instant-intensity="viewport-all">
  104. <article>
  105. <header>
  106. <h1>Conteur</h1>
  107. </header>
  108. <nav>
  109. <p class="center">
  110. <a rel="prev"
  111. href="/david/2023/09/06/"
  112. title="Publication précédente : Retour">← Précédent</a> •
  113. <nobr>
  114. <a href="/david/" title="Aller à l’accueil" rel="up">
  115. <svg class="icon icon-home">
  116. <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-home"></use>
  117. </svg>
  118. Accueil</a>
  119. </nobr>
  120. <nobr>
  121. <a href="/david/recherche/"
  122. title="Aller à la page de recherche"
  123. rel="search">
  124. <svg class="icon icon-search">
  125. <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-search"></use>
  126. </svg>
  127. Recherche</a>
  128. </nobr>
  129. • <a rel="next"
  130. href="/david/2023/09/08/"
  131. title="Publication suivante : Char&nbsp;2">Suivant →</a>
  132. </p>
  133. </nav>
  134. <hr>
  135. <p>Un peu de contexte. Lorsqu’on va promener et bivouaquer en forêt avec l’enfant —&nbsp;comme la fin de semaine dernière&nbsp;— on invente des histoires. C’est souvent inspiré des lectures du moment (La guerre de clans, Naruto, etc) croisées avec les éléments que l’on a sous la main (crapauds, <del>anis</del> gemmes de Flavigny, etc). En rentrant à la maison, on prend un moment le soir pour <del>écrire</del> taper tout cela mais il faut garder de la place pour les dessins d’illustration. Me voilà donc en train de chercher comment introduire un saut de page en Markdown lors de l’impression. Ou plutôt dans le rendu de Markdown par iAWriter pour être plus précis. Et il s’avère que <a href="https://ia.net/writer/support/basics/markdown-guide">c’est possible</a>&nbsp;(<a href="/david/cache/2023/478260db4b078551676bf263cbeeaa52/">cache</a>) avec <code>+++</code>&#8239;!</p>
  136. <p>Au passage, je découvre qu’il y a tout un tas de possibilités dans un logiciel que j’utilise depuis des années. Comme les formules (dans les tableaux) ou les métadonnées qui viennent dynamiquement remplacer des variables. Une chouette découverte après avoir utilisé récemment les <em>templates</em> pour uniformiser mes&nbsp;courriers.</p>
  137. <p>Et c’est ainsi que je vous conte ce qu’il nous est arrivé en contant cette histoire. Je vous accorde que c’est un peu <em>meta</em>.</p>
  138. <figure>
  139. <a href="/static/david/2023/2023-09-06-extrait-quete.jpg"
  140. title="Cliquer pour une version haute résolution">
  141. <img
  142. src="/static/david/2023/2023-09-06-extrait-quete.jpg"
  143. width="3024" height="3024"
  144. srcset="/static/david/2023/2023-09-06-extrait-quete.jpg 3024w, /static/david/2023/2023-09-06-extrait-quete_660x440.jpg 660w, /static/david/2023/2023-09-06-extrait-quete_990x660.jpg 990w, /static/david/2023/2023-09-06-extrait-quete_1320x880.jpg 1320w"
  145. sizes="min(100vw, calc(100vh * 3024 / 3024))"
  146. loading="lazy"
  147. decoding="async"
  148. alt="Un extrait de l’histoire&nbsp;: Sur le chemin du retour, nous nous dimes que nous allions écrire cette histoire.">
  149. </a>
  150. <figcaption>Mais on aime ça le meta. (Et les typos. (Et le passé&nbsp;simple.))</figcaption>
  151. </figure>
  152. <hr />
  153. <blockquote lang="en">
  154. <p>🪦 The 100-Year Plan isn’t just about today. It’s an investment in tomorrow. Whether you’re cementing your own digital legacy or gifting 100&nbsp;years of a trusted platform to a loved one, <mark>this plan is a testament to the future</mark>’s boundless&nbsp;potential.</p>
  155. <p>The cost is $38,000. We hope people&nbsp;renew.</p>
  156. <p><cite><em><a href="https://wordpress.com/blog/2023/08/25/introducing-the-100-year-plan/">Introducing the 100-Year Plan: Secure Your Online Legacy for a Century</a></em>&nbsp;(<a href="/david/cache/2023/57c0b22f733354552de63db112f51b20/">cache</a>)</cite></p>
  157. </blockquote>
  158. <blockquote lang="en">
  159. <p>📜 A false sense of security persists surrounding digitized documents: because an infinite number of identical copies can be made of any original, most of us believe that our electronic files have an indefinite shelf life and unlimited retrieval opportunities. In fact, preserving the world’s online content is an increasing concern, particularly as file formats (and the hardware and software used to run them) become scarce, inaccessible, or antiquated, technologies evolve, and data decays. <mark>Without constant maintenance and management,</mark> most digital information will be lost in just a few decades. Our modern records are far from&nbsp;permanent.</p>
  160. <p><cite><em><a href="https://longnow.org/ideas/shining-a-light-on-the-digital-dark-age/">Shining a Light on the Digital Dark Age</a></em>&nbsp;(<a href="/david/cache/2023/83c60dd85e9f0f07bf41821a2694a0e5/">cache</a>)</cite></p>
  161. </blockquote>
  162. <blockquote lang="en">
  163. <p>🔋 But there’s something else I want to suggest here, and it’s to stop thinking about time entirely. Or, at least, to stop thinking about time as something <em>consistent</em>. We all know that time can be stretchy or compressed—we’ve experienced hours that plodded along interminably and those that whisked by in a few breaths. We’ve had days in which we got so much done we surprised ourselves and days where we got into a staring contest with the to-do list and the to-do list didn’t blink. And we’ve also had days that left us puddled on the floor and days that left us pumped up, practically leaping out of our chairs. <mark>What differentiates these experiences isn’t the number of hours in the day but the energy we get from the work.</mark> Energy <em>makes</em>&nbsp;time.</p>
  164. <p><cite><em><a href="https://everythingchanges.us/blog/energy-makes-time/">Energy makes time</a></em>&nbsp;(<a href="/david/cache/2023/3f4be4add2995420dc6be529f1032e46/">cache</a>)</cite></p>
  165. </blockquote>
  166. <nav>
  167. <p>
  168. <a href="/david/2023/aventure/"
  169. title="Liste de tous les articles 2023 associés à cette étiquette"
  170. rel="tag">#aventure</a>
  171. <a href="/david/2023/foret/"
  172. title="Liste de tous les articles 2023 associés à cette étiquette"
  173. rel="tag">#forêt</a>
  174. <a href="/david/2023/parentalite/"
  175. title="Liste de tous les articles 2023 associés à cette étiquette"
  176. rel="tag">#parentalité</a>
  177. <a href="/david/#tags-2023" title="Liste de toutes les étiquettes 2023">
  178. <svg class="icon icon-tags">
  179. <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-tags"></use>
  180. </svg>
  181. tous ?</a>
  182. </p>
  183. </nav>
  184. <nav>
  185. <p class="center">
  186. <a rel="prev"
  187. href="/david/2023/09/06/"
  188. title="Publication précédente : Retour">← Précédent</a> •
  189. <a href="/david/2023/" title="Liste des publications récentes">↑ En 2023</a>
  190. • <a rel="next"
  191. href="/david/2023/09/08/"
  192. title="Publication suivante : Char&nbsp;2">Suivant →</a>
  193. </p>
  194. </nav>
  195. </article>
  196. <hr>
  197. <footer>
  198. <p>
  199. <nobr>
  200. <a href="/david/" title="Aller à l’accueil">
  201. <svg class="icon icon-home">
  202. <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-home"></use>
  203. </svg>
  204. Accueil</a>
  205. </nobr>
  206. <nobr>
  207. <a href="/david/log/" title="Accès au flux RSS">
  208. <svg class="icon icon-rss2">
  209. <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-rss2"></use>
  210. </svg>
  211. Suivre</a>
  212. </nobr>
  213. <nobr>
  214. <a href="http://larlet.com"
  215. title="Go to my English profile"
  216. data-instant>
  217. <svg class="icon icon-user-tie">
  218. <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-user-tie"></use>
  219. </svg>
  220. Pro</a>
  221. </nobr>
  222. <nobr>
  223. <a href="mailto:david%40larlet.fr" title="Envoyer un courriel">
  224. <svg class="icon icon-mail">
  225. <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-mail"></use>
  226. </svg>
  227. Email</a>
  228. </nobr>
  229. <nobr>
  230. <abbr class="nowrap"
  231. title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340">
  232. <svg class="icon icon-hammer2">
  233. <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-hammer2"></use>
  234. </svg>
  235. Légal</abbr>
  236. </nobr>
  237. </p>
  238. <template id="theme-selector">
  239. <form>
  240. <fieldset>
  241. <legend>
  242. <svg class="icon icon-brightness-contrast">
  243. <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-brightness-contrast"></use>
  244. </svg>
  245. Thème
  246. </legend>
  247. <label>
  248. <input type="radio" value="auto" name="chosen-color-scheme" checked>
  249. Auto
  250. </label>
  251. <label>
  252. <input type="radio" value="dark" name="chosen-color-scheme">
  253. Foncé
  254. </label>
  255. <label>
  256. <input type="radio" value="light" name="chosen-color-scheme">
  257. Clair
  258. </label>
  259. </fieldset>
  260. </form>
  261. </template>
  262. </footer>
  263. <script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script>
  264. <script>
  265. function loadThemeForm(templateName) {
  266. const themeSelectorTemplate = document.querySelector(templateName)
  267. const form = themeSelectorTemplate.content.firstElementChild
  268. themeSelectorTemplate.replaceWith(form)
  269. form.addEventListener('change', (e) => {
  270. const chosenColorScheme = e.target.value
  271. localStorage.setItem('theme', chosenColorScheme)
  272. toggleTheme(chosenColorScheme)
  273. })
  274. const selectedTheme = localStorage.getItem('theme')
  275. if (selectedTheme && selectedTheme !== 'undefined') {
  276. form.querySelector(`[value="${selectedTheme}"]`).checked = true
  277. }
  278. }
  279. const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
  280. window.addEventListener('load', () => {
  281. let hasDarkRules = false
  282. for (const styleSheet of Array.from(document.styleSheets)) {
  283. let mediaRules = []
  284. for (const cssRule of styleSheet.cssRules) {
  285. if (cssRule.type !== CSSRule.MEDIA_RULE) {
  286. continue
  287. }
  288. // WARNING: Safari does not have/supports `conditionText`.
  289. if (cssRule.conditionText) {
  290. if (cssRule.conditionText !== prefersColorSchemeDark) {
  291. continue
  292. }
  293. } else {
  294. if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
  295. continue
  296. }
  297. }
  298. mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
  299. }
  300. // WARNING: do not try to insert a Rule to a styleSheet you are
  301. // currently iterating on, otherwise the browser will be stuck
  302. // in a infinite loop…
  303. for (const mediaRule of mediaRules) {
  304. styleSheet.insertRule(mediaRule.cssText)
  305. hasDarkRules = true
  306. }
  307. }
  308. if (hasDarkRules) {
  309. loadThemeForm('#theme-selector')
  310. }
  311. })
  312. </script>
  313. </body>
  314. </html>