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

2 years ago
2 years ago
2 years ago
2 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  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>
  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>Briques — David Larlet</title>
  13. <!-- That good ol' feed, subscribe :). -->
  14. <link rel="alternate" type="application/atom+xml" title="Feed" href="/david/log/">
  15. <!-- Generated from https://realfavicongenerator.net/ such a mess. -->
  16. <link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons2/apple-touch-icon.png">
  17. <link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons2/favicon-32x32.png">
  18. <link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons2/favicon-16x16.png">
  19. <link rel="manifest" href="/static/david/icons2/site.webmanifest">
  20. <link rel="mask-icon" href="/static/david/icons2/safari-pinned-tab.svg" color="#07486c">
  21. <link rel="shortcut icon" href="/static/david/icons2/favicon.ico">
  22. <meta name="msapplication-TileColor" content="#f0f0ea">
  23. <meta name="msapplication-config" content="/static/david/icons2/browserconfig.xml">
  24. <meta name="theme-color" content="#f0f0ea">
  25. <!-- Documented, feel free to shoot an email. -->
  26. <link rel="stylesheet" href="/static/david/css/style_2020-04-25.css">
  27. <!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. -->
  28. <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>
  29. <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>
  30. <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>
  31. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  32. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  33. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  34. <body class="remarkdown h1-underline h2-underline h3-underline hr-center ul-star pre-tick">
  35. <article>
  36. <h1>Briques</h1>
  37. <nav>
  38. <p class="center">
  39. <a rel="prev" href="/david/stream/" title="Publication précédente : Streams 2009-2019">←</a> •
  40. <a href="/david/" title="Aller à l’accueil" tabindex="1">🏠</a>
  41. • <a rel="next" href="/david/2020/01/06/" title="Publication suivante : Écriture">→</a>
  42. </p>
  43. </nav>
  44. <hr>
  45. <p><em>Expérience d’agrégation de poussières d’idées.</em></p>
  46. <h2 id="2020-01-01">2020-01-01 <a href="#2020-01-01" title="Ancre vers cette partie" aria-hidden="true">#</a></h2><p>Je réfléchis à une nouvelle façon de publier des données. Horodatée, transverse, enrichissable. C’est peut-être ce qui me frustre le plus dans le système actuel : ne pas faire le travail de recoupement, de synthèse a posteriori. Et en même temps c’est dans le chemin tortueux des pensées que réside peut-être la valeur ? (au moins pour moi)</p>
  47. <p>Je reviens à <a href="/david/stream/2019/12/10/">mes considérations</a> de notifications de mise à jour. Qui rejoignent des réflexions sur l’agrégation adéquate de ces publications pour leur donner une consistance. Peut-être qu’elles pourraient apparaitre dans un flux avant même d’avoir une URI ?</p>
  48. <p>Je ne sauve pas encore ce fichier, ce serait déjà choisir une orientation. Je ne suis pas pressé.</p>
  49. <h2 id="fragments">Fragments <a href="#fragments" title="Ancre vers cette partie" aria-hidden="true">#</a></h2><p>J’imagine des publications sous forme d’agrégation de blocs ou fragments. Cela me permettrait d’écrire en continu et de ne publier qu’aux moments opportuns. Peut-être que je joue trop aux Lego ces temps-ci.</p>
  50. <p>Je regarde du côté de <a href="https://github.com/lepture/mistune">mistune</a>, j’aime bien leurs <a href="https://mistune.readthedocs.io/en/latest/directives.html#include">directives permettant l’inclusion</a> et le fait que ça soit extensible. La documentation est faible et je sens que je pourrais participer à un moment, et puis il me suffit de lire le code :-).</p>
  51. <p>iAWriter (mon éditeur actuel) propose aussi les <a href="https://ia.net/writer/support/general/content-blocks">Content Blocks</a> qui permettent d’insérer des ressources externes dans du markdown. Est-ce que combiner les deux serait souhaitable ? Je ne voudrais surtout pas introduire une dépendance à l’éditeur qui doit rester un outil annexe dans mon flux.</p>
  52. <h2 id="ancres">Ancres <a href="#ancres" title="Ancre vers cette partie" aria-hidden="true">#</a></h2><p>J’aimerais que chacun des blocs puisse être identifié par une ancre, je vais commencer à jouer avec du code pour voir si c’est possible en étendant <a href="https://github.com/lepture/mistune">mistune</a>.</p>
  53. <p>Est-ce que je veux que mes fragments soient horodatés finalement ? La difficulté s’ils deviennent nombreux va être de les retrouver. Pas sûr qu’une date soit une aide dans ce contexte. Peut-être m’afficher une liste des blocs qui n’ont jamais été intégrés à une publication ?</p>
  54. <h2 id="illusion">Illusion <a href="#illusion" title="Ancre vers cette partie" aria-hidden="true">#</a></h2>
  55. <blockquote>
  56. <p>Parce que vous vous perdez, votre problème en sera un pour vous. Si vous ne vous perdez pas, même si vous avez des difficultés, il n’existe en fait aucun problème. Vous êtes simplement assis en zazen au milieu de votre problème ; quand vous faites partie du problème, ou quand le problème fait partie de vous, il n’<em>existe</em> pas de problème, parce que vous êtes le problème même. Le problème est vous. S’il en est ainsi, il n’existe pas de problème.</p>
  57. <p>Quand votre vie fait constamment partie de ce qui vous entoure — en d’autres termes, quand vous êtes rappelé à vous-même au moment présent —, il n’existe alors pas de problème. Quand vous commencez à errer dans quelque illusion, ceci est quelque chose de séparé de vous-même, ce qui vous entoure alors n’est plus réel, et votre esprit n’est plus réel. Si vous-même êtes dans l’illusion, ce qui vous entoure est aussi une confuse et brumeuse illusion. Une fois que vous êtes immergé dans l’illusion, l’illusion est sans fin. Vous serez pris dans une suite ininterrompue d’idées tissées d’illusion.</p>
  58. <p>La plupart des gens vivent dans l’illusion, pris dans leur problème, essayant de résoudre leur problème. Mais le simple fait de vivre est vivre dans des problèmes. Et résoudre le problème, c’est en faire partie, faire un avec lui.</p>
  59. <p><cite><em><a href="/david/2020/12/21/#esprit-zen-esprit-neuf">Esprit Zen, esprit neuf</a></em>, Shunryu Suzuki</cite></p>
  60. </blockquote>
  61. <h2 id="arborescence">Arborescence <a href="#arborescence" title="Ancre vers cette partie" aria-hidden="true">#</a></h2><p>Après réflexion, je ne vais plus distinguer <code>stream</code> et <code>blog</code>, notamment dans l’URL. La distinction se fera dorénavant en fonction de l’année.</p>
  62. <p>La source du présent article est une suite d’inclusions que vous pouvez <a href="https://git.larlet.fr/davidbgk/larlet-fr-david/src/branch/master/david/2020/01-03.md">retrouver ici</a>.</p>
  63. <h2 id="pieces-of-content">Pieces of content <a href="#pieces-of-content" title="Ancre vers cette partie" aria-hidden="true">#</a></h2>
  64. <blockquote lang="en">
  65. <p>When I’ve used static site generators in the past ten years, there were a few pain points like lacking documentation and strange and incompatible conventions. But the nail in the coffin was always that it’s either impossible or way too hard to <strong>build a single page from several pieces of content</strong>.</p>
  66. <p><cite><em><a href="https://fvsch.com/static-site-generators/">About static site generators</a></em> (<a href="/david/cache/2020/ff864f1890f6eb967b3f9645554708e0/">cache</a>)</cite></p>
  67. </blockquote>
  68. <p>Je découvre cet article après avoir appliqué le <a href="https://fvsch.github.io/remarkdown/">style de Florens</a> ici même. C’est « marrant » de lire qu’une partie de sa frustration ressemble à celle que j’ai éprouvée en construisant <a href="https://git.larlet.fr/davidbgk/larlet-fr-david/src/branch/master/site.py">l’outil de cette année</a>.</p>
  69. <p>Beaucoup de bonnes choses dans ces réflexions. <em>Merci.</em></p>
  70. <nav>
  71. <p class="center">
  72. <a rel="prev" href="/david/stream/" title="Publication précédente : Streams 2009-2019">←</a> •
  73. <a href="/david/2020/" title="Liste des publications récentes">↑</a>
  74. • <a rel="next" href="/david/2020/01/06/" title="Publication suivante : Écriture">→</a>
  75. </p>
  76. </nav>
  77. </article>
  78. <hr>
  79. <footer>
  80. <p>
  81. <a href="/david/" title="Aller à l’accueil">🏠</a> •
  82. <a href="/david/log/" title="Accès au flux RSS">🤖</a> •
  83. <a href="http://larlet.com" title="Go to my English profile" data-instant>🇨🇦</a> •
  84. <a href="mailto:david%40larlet.fr" title="Envoyer un courriel">📮</a> •
  85. <abbr title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340">🧚</abbr>
  86. </p>
  87. <template id="theme-selector">
  88. <form>
  89. <fieldset>
  90. <legend>Thème</legend>
  91. <label>
  92. <input type="radio" value="auto" name="chosen-color-scheme" checked> Auto
  93. </label>
  94. <label>
  95. <input type="radio" value="dark" name="chosen-color-scheme"> Foncé
  96. </label>
  97. <label>
  98. <input type="radio" value="light" name="chosen-color-scheme"> Clair
  99. </label>
  100. </fieldset>
  101. </form>
  102. </template>
  103. </footer>
  104. <script src="/static/david/js/instantpage-3.0.0.min.js" type="module" defer></script>
  105. <script type="text/javascript">
  106. /* This is a work in progress with Anthony https://ricaud.me */
  107. // TODISCUSS:
  108. // 1. give a way for the user to close that chooser?
  109. // 2. store preferences? Done using localStorage
  110. // 3. create the template from scratch in JS?
  111. // 4. how to make it generic? (no need for forced-dark/light existing rules)
  112. // Results from a Poll: https://mastodon.social/@dav/104093540923157521
  113. // Avoir un moyen de changer de thème d'un site à la main :
  114. // 49% => Utile
  115. // 23% => Pas utile
  116. // 9% => So 2000
  117. // 19% => Je veux le même
  118. // After 24 hours and 43 votes
  119. // A bit hard to interpret, I guess people wanting it found it useful too!
  120. function toggleTheme(themeName) {
  121. document.body.classList.toggle('forced-dark', themeName === 'dark')
  122. document.body.classList.toggle('forced-light', themeName === 'light')
  123. }
  124. function loadThemeForm(templateName) {
  125. const themeSelectorTemplate = document.querySelector(templateName)
  126. const form = themeSelectorTemplate.content.firstElementChild
  127. themeSelectorTemplate.replaceWith(form)
  128. form.addEventListener('change', (e) => {
  129. const chosenColorScheme = e.target.value
  130. localStorage.setItem('theme', chosenColorScheme)
  131. toggleTheme(chosenColorScheme)
  132. })
  133. const selectedTheme = localStorage.getItem('theme')
  134. if (selectedTheme !== 'undefined') {
  135. form.querySelector(`[value="${selectedTheme}"]`).checked = true
  136. toggleTheme(selectedTheme)
  137. }
  138. }
  139. const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
  140. window.addEventListener('load', () => {
  141. let hasDarkRules = false
  142. for (const styleSheet of Array.from(document.styleSheets)) {
  143. let mediaRules = []
  144. for (const cssRule of styleSheet.cssRules) {
  145. if (cssRule.type !== CSSRule.MEDIA_RULE) {
  146. continue
  147. }
  148. // WARNING: Safari does not have/supports `conditionText`.
  149. if (cssRule.conditionText) {
  150. if (cssRule.conditionText !== prefersColorSchemeDark) {
  151. continue
  152. }
  153. } else {
  154. if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
  155. continue
  156. }
  157. }
  158. mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
  159. }
  160. // WARNING: do not try to insert a Rule to a styleSheet you are
  161. // currently iterating on, otherwise the browser will be stuck
  162. // in a infinite loop…
  163. for (const mediaRule of mediaRules) {
  164. styleSheet.insertRule(mediaRule.cssText)
  165. hasDarkRules = true
  166. }
  167. }
  168. if (hasDarkRules) {
  169. loadThemeForm('#theme-selector')
  170. }
  171. })
  172. </script>
  173. </body>
  174. </html>