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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341
  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 #lecture
  14. — David Larlet</title>
  15. <meta name="description" content="Publications relatives au tag #lecture">
  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. <!-- Is that even respected? Retrospectively? What a shAItshow…
  48. https://neil-clarke.com/block-the-bots-that-feed-ai-models-by-scraping-your-website/ -->
  49. <meta name="robots" content="noai, noimageai">
  50. <!-- Documented, feel free to shoot an email. -->
  51. <link rel="stylesheet" href="/static/david/css/style_2024-02-03.css">
  52. <!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. -->
  53. <link rel="preload"
  54. href="/static/david/css/fonts/century_supra_ot_a_regular.woff2"
  55. as="font"
  56. type="font/woff2"
  57. media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)"
  58. crossorigin>
  59. <link rel="preload"
  60. href="/static/david/css/fonts/century_supra_ot_a_bold.woff2"
  61. as="font"
  62. type="font/woff2"
  63. media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)"
  64. crossorigin>
  65. <link rel="preload"
  66. href="/static/david/css/fonts/century_supra_ot_a_italic.woff2"
  67. as="font"
  68. type="font/woff2"
  69. media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)"
  70. crossorigin>
  71. <link rel="preload"
  72. href="/static/david/css/fonts/century_supra_ot_b_regular.woff2"
  73. as="font"
  74. type="font/woff2"
  75. media="(prefers-color-scheme: dark)"
  76. crossorigin>
  77. <link rel="preload"
  78. href="/static/david/css/fonts/century_supra_ot_b_bold.woff2"
  79. as="font"
  80. type="font/woff2"
  81. media="(prefers-color-scheme: dark)"
  82. crossorigin>
  83. <link rel="preload"
  84. href="/static/david/css/fonts/century_supra_ot_b_italic.woff2"
  85. as="font"
  86. type="font/woff2"
  87. media="(prefers-color-scheme: dark)"
  88. crossorigin>
  89. <script>
  90. function toggleTheme(themeName) {
  91. document.documentElement.classList.toggle(
  92. 'forced-dark',
  93. themeName === 'dark'
  94. )
  95. document.documentElement.classList.toggle(
  96. 'forced-light',
  97. themeName === 'light'
  98. )
  99. }
  100. const selectedTheme = localStorage.getItem('theme')
  101. if (selectedTheme !== 'undefined') {
  102. toggleTheme(selectedTheme)
  103. }
  104. </script>
  105. <style type="text/css">
  106. details[open] summary {
  107. display: none;
  108. }
  109. </style>
  110. <body data-instant-intensity="viewport-all">
  111. <article>
  112. <header>
  113. <hgroup>
  114. <h1>#lecture</h1>
  115. <p>Publications relatives à cette étiquette</p>
  116. </hgroup>
  117. </header>
  118. <nav>
  119. <p>
  120. <a href="/david/" title="Aller à l’accueil">
  121. Accueil</a>
  122. <a rel="tags"
  123. href="/david/2024/#tags"
  124. title="Liste de toutes les étiquettes">
  125. Étiquettes</a>
  126. <a href="/david/recherche/" title="Aller à la page de recherche" rel="search" data-no-instant>Recherche</a>
  127. <a href="/david/log/" title="Accès au flux RSS">Suivre</a>
  128. </p>
  129. </nav>
  130. <h2>
  131. <a href="/david/2024/02/06/" title="Lien permanent vers cet article">Anneau</a> <time datetime="2024-02-06">6 février 2024</time>
  132. </h2>
  133. <blockquote>
  134. <p>«&nbsp;J’aurais voulu que cela n’ait pas à arriver de mon temps&nbsp;», dit Frodo.<br />
  135. «&nbsp;Moi aussi, dit Gandalf, et il en va de même pour tout ceux qui vivent en de pareils temps. Mais il ne leur appartient pas de décider. Tout ce qu’il nous appartient de décider, c’est <mark>ce que nous comptons faire du temps qui nous est imparti.</mark>&nbsp;»</p>
  136. <p><cite><em>Le seigneur des anneaux</em>, J.R.R. Tolkien</cite></p>
  137. </blockquote>
  138. <p>Me voilà repartit pour un tour au départ <strong>du</strong> Comté, cette fois avec la nouvelle traduction de Daniel Lauzon. Ça pique un peu au niveau des noms, forcément.</p>
  139. <p>Je vais moins publier ces prochains&nbsp;jours&nbsp;😇.</p>
  140. <blockquote>
  141. <p><em>Tout ce qui est or ne brille pas,</em><br />
  142. <em>Ne sont pas perdus tout ceux qui vagabondent&#8239;;</em><br />
  143. <em>Ce qui est vieux mais fort ne se flétrit pas,</em><br />
  144. <em>Le gel n’atteint pas les racines&nbsp;profondes.</em></p>
  145. <p><cite><em>Ibid.</em></cite></p>
  146. </blockquote>
  147. <a href="#hr-68" title="Lien vers cette section de la page"><hr id="hr-68" /></a>
  148. <blockquote lang="en">
  149. <p>The webring is a directory of neighbor websites and&nbsp;portfolios.</p>
  150. <p>This is an attempt to <strong>inspire artists and developers to create and maintain their own personal website,</strong> and share traffic organically among each other. The ring’s aim is to promote the creation of hand crafted diaries, wikis, bookmarks and&nbsp;portfolios.</p>
  151. <p><cite><em><a data-link-domain="wiki.xxiivv.com" href="https://wiki.xxiivv.com/site/webring.html" hreflang="en"
  152. title="Consultation de l’article (anglais)">XXIIVV - webring</a>
  153. <a href="/david/cache/2024/842e88c947068b81c9b9d6218c600dd2/" hreflang="en"
  154. data-tippy data-description="The Webring, like we are in the 2000s."
  155. data-source="https://wiki.xxiivv.com/site/webring.html"
  156. data-date="2024-02-06"
  157. data-favicon="https://wiki.xxiivv.com/media/services/icon.png"
  158. data-domain="wiki.xxiivv.com"
  159. ><svg xmlns="http://www.w3.org/2000/svg"
  160. width="24" height="24" viewBox="0 0 24 24" fill="none"
  161. stroke="currentColor" stroke-width="2" stroke-linecap="square"
  162. stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle>
  163. <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path>
  164. <line x1="12" y1="17" x2="12.01" y2="17"></line>
  165. </svg>
  166. <span class="sr-only">[archive]</span></a></em></cite></p>
  167. </blockquote>
  168. <p>C’est marrant de voir ressurgir d’anciennes pratiques. Il y a un côté vintage, ou reprise d’une ancienne chanson populaire. Avec ce questionnement récurrent&nbsp;: <q>N’a-t-on vraiment rien inventé de mieux depuis&#8239;?</q> (Ah si, maintenant il faut avoir un compte Microsauron Github pour accéder à&nbsp;l’anneau.)</p>
  169. <p><em>Écrit-il en relisant pour la x-ième fois le même&nbsp;livre.</em></p>
  170. <nav>
  171. <p>
  172. <a href="/david/2024/communaute/"
  173. title="Liste de tous les articles 2024 associés à cette étiquette"
  174. rel="tag">#communauté</a>
  175. <a href="/david/2024/equipe/"
  176. title="Liste de tous les articles 2024 associés à cette étiquette"
  177. rel="tag">#équipe</a>
  178. <a href="/david/2024/lecture/"
  179. title="Liste de tous les articles 2024 associés à cette étiquette"
  180. rel="tag">#lecture</a>
  181. <a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
  182. </p>
  183. </nav>
  184. <form action="/david/recherche/" method="get">
  185. <fieldset>
  186. <legend>Recherche</legend>
  187. <label for="input-search">Termes de votre recherche :</label>
  188. <input id="input-search" type="search" name="s" aria-describedby="indexation-infos" required>
  189. <input type="submit" value="Chercher">
  190. <p id="indexation-infos">
  191. <small>
  192. Seuls les contenus de ces 8 dernières années sont indexés.
  193. </small>
  194. </p>
  195. </fieldset>
  196. </form>
  197. <aside>
  198. <theme-toggle></theme-toggle>
  199. </aside>
  200. </article>
  201. <hr>
  202. <footer>
  203. <p>
  204. <a href="/david/" title="Aller à l’accueil">Accueil</a>
  205. <a href="/david/log/" title="Accès au flux RSS">Suivre</a>
  206. <a href="http://larlet.com"
  207. title="Go to my English profile"
  208. data-instant>Pro</a>
  209. <a href="mailto:david%40larlet.fr" title="Envoyer un courriel">Email</a>
  210. <abbr title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340">Légal</abbr>
  211. </p>
  212. <template id="theme-selector">
  213. <form>
  214. <style type="text/css">
  215. fieldset div {
  216. text-align: center;
  217. }
  218. </style>
  219. <fieldset>
  220. <legend>Thème</legend>
  221. <div>
  222. <label>
  223. <input type="radio" value="auto" name="chosen-color-scheme" checked>
  224. Auto
  225. </label>
  226. <label>
  227. <input type="radio" value="dark" name="chosen-color-scheme">
  228. Foncé
  229. </label>
  230. <label>
  231. <input type="radio" value="light" name="chosen-color-scheme">
  232. Clair
  233. </label>
  234. </div>
  235. </fieldset>
  236. </form>
  237. </template>
  238. </footer>
  239. <script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script>
  240. <script>
  241. class ThemeToggle extends HTMLElement {
  242. constructor() {
  243. super()
  244. const themeSelectorTemplate = document.querySelector('#theme-selector')
  245. const form = themeSelectorTemplate.content.firstElementChild
  246. this.attachShadow({ mode: 'open' })
  247. this.shadowRoot.appendChild(form.cloneNode(true))
  248. }
  249. connectedCallback() {
  250. const form = this.shadowRoot.querySelector('form')
  251. form.addEventListener('change', (e) => {
  252. const chosenColorScheme = e.target.value
  253. localStorage.setItem('theme', chosenColorScheme)
  254. toggleTheme(chosenColorScheme)
  255. })
  256. const selectedTheme = localStorage.getItem('theme')
  257. if (selectedTheme && selectedTheme !== 'undefined') {
  258. form.querySelector(`[value="${selectedTheme}"]`).checked = true
  259. }
  260. }
  261. }
  262. const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
  263. window.addEventListener('load', () => {
  264. let colorsLayer = undefined
  265. let hasDarkRules = false
  266. for (const styleSheet of Array.from(document.styleSheets)) {
  267. let mediaRules = []
  268. for (const layerRule of styleSheet.cssRules) {
  269. if (!(layerRule instanceof CSSLayerBlockRule)) {
  270. continue
  271. }
  272. if (layerRule.name === 'colors') {
  273. colorsLayer = layerRule
  274. }
  275. for (const cssRule of layerRule.cssRules) {
  276. if (cssRule.type !== CSSRule.MEDIA_RULE) {
  277. continue
  278. }
  279. // WARNING: Safari does not have/supports `conditionText`.
  280. if (cssRule.conditionText) {
  281. if (cssRule.conditionText !== prefersColorSchemeDark) {
  282. continue
  283. }
  284. } else {
  285. if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
  286. continue
  287. }
  288. }
  289. mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
  290. }
  291. }
  292. // WARNING: do not try to insert a Rule to a styleSheet you are
  293. // currently iterating on, otherwise the browser will be stuck
  294. // in a infinite loop…
  295. for (const mediaRule of mediaRules) {
  296. // Safari requires the `0` second parameter (even if default).
  297. colorsLayer.insertRule(mediaRule.cssText, 0)
  298. hasDarkRules = true
  299. }
  300. }
  301. if (hasDarkRules) {
  302. if ('customElements' in window && !customElements.get('theme-toggle')) {
  303. customElements.define('theme-toggle', ThemeToggle)
  304. }
  305. }
  306. })
  307. </script>
  308. </body>
  309. </html>