123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563 |
- <!DOCTYPE html><!-- This is a valid HTML5 document. -->
- <!-- Screen readers, SEO, extensions and so on. -->
- <html lang="fr">
- <!-- Has to be within the first 1024 bytes, hence before the `title` element
- See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset -->
- <meta charset="utf-8">
- <!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 -->
- <!-- The viewport meta is quite crowded and we are responsible for that.
- See: https://codepen.io/tigt/post/meta-viewport-for-2015 -->
- <meta name="viewport" content="width=device-width,initial-scale=1">
- <!-- Required to make a valid HTML5 document. -->
- <title>
- Blogroll
- — David Larlet</title>
- <meta name="description" content="Les sites des ami·es.">
- <!-- That good ol' feed, subscribe :). -->
- <link rel="alternate"
- type="application/atom+xml"
- title="Feed"
- href="/david/log/">
- <!-- Generated from https://realfavicongenerator.net/ such a mess. -->
- <link rel="apple-touch-icon"
- sizes="180x180"
- href="/static/david/icons2/apple-touch-icon.png">
- <link rel="icon"
- type="image/png"
- sizes="32x32"
- href="/static/david/icons2/favicon-32x32.png">
- <link rel="icon"
- type="image/png"
- sizes="16x16"
- href="/static/david/icons2/favicon-16x16.png">
- <link rel="manifest" href="/static/david/icons2/site.webmanifest">
- <link rel="mask-icon"
- href="/static/david/icons2/safari-pinned-tab.svg"
- color="#07486c">
- <link rel="shortcut icon" href="/static/david/icons2/favicon.ico">
- <meta name="msapplication-TileColor" content="#f7f7f7">
- <meta name="msapplication-config"
- content="/static/david/icons2/browserconfig.xml">
- <meta name="theme-color"
- content="#f7f7f7"
- media="(prefers-color-scheme: light)">
- <meta name="theme-color"
- content="#272727"
- media="(prefers-color-scheme: dark)">
- <!-- Is that even respected? Retrospectively? What a shAItshow…
- https://neil-clarke.com/block-the-bots-that-feed-ai-models-by-scraping-your-website/ -->
- <meta name="robots" content="noai, noimageai">
- <!-- Documented, feel free to shoot an email. -->
- <link rel="stylesheet" href="/static/david/css/style_2021-01-20.css">
- <!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. -->
- <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>
- <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>
- <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>
- <link rel="preload"
- href="/static/david/css/fonts/triplicate_t3_regular.woff2"
- as="font"
- type="font/woff2"
- media="(prefers-color-scheme: dark)"
- crossorigin>
- <link rel="preload"
- href="/static/david/css/fonts/triplicate_t3_bold.woff2"
- as="font"
- type="font/woff2"
- media="(prefers-color-scheme: dark)"
- crossorigin>
- <link rel="preload"
- href="/static/david/css/fonts/triplicate_t3_italic.woff2"
- as="font"
- type="font/woff2"
- media="(prefers-color-scheme: dark)"
- crossorigin>
- <script>
- function toggleTheme(themeName) {
- document.documentElement.classList.toggle(
- 'forced-dark',
- themeName === 'dark'
- )
- document.documentElement.classList.toggle(
- 'forced-light',
- themeName === 'light'
- )
- }
- const selectedTheme = localStorage.getItem('theme')
- if (selectedTheme !== 'undefined') {
- toggleTheme(selectedTheme)
- }
- </script>
-
- <body class="remarkdown h1-underline h2-underline h3-underline em-underscore hr-center ul-star pre-tick"
- data-instant-intensity="viewport-all">
-
- <article>
- <header>
- <h1>Blogroll : les sites des ami·es</h1>
- </header>
- <p>Pour ne pas être totalement auto-centré, voici quelques portes ouvertes vers le Web que j’aime.</p>
- <nav>
- <ul>
- <li>
- <a href="https://www.maiwann.net/">Maïtané Lenoir</a>
- (<a href="https://www.maiwann.net/feed.xml">flux</a>)
- </li>
- <li>
- <a href="https://ynote.hk/">Fanny Cheung</a>
- (<a href="https://ynote.hk/feed.xml">flux</a>)
- </li>
- <li>
- <a href="https://lalunemauve.fr/">La Lune Mauve</a>
- (<a href="https://lalunemauve.fr/feed/">flux</a>)
- </li>
- <li>
- <a href="https://www.hypothermia.fr/">Eliness</a>
- (<a href="https://www.hypothermia.fr/rss">flux</a>)
- </li>
- <li>
- <a href="https://luce.carevic.eu/fr">Luce Carević</a>
- (<a href="https://luce.carevic.eu/fr/flux">flux</a>)
- </li>
- <li>
- <a href="https://emmaclit.com/">Emma</a>
- (<a href="https://emmaclit.com/feed/">flux</a>)
- </li>
- <li>
- <a href="https://www.la-grange.net/">Karl Dubost</a>
- (<a href="https://www.la-grange.net/feed.atom">flux</a>)
- </li>
- <li>
- <a href="https://www.arthurperret.fr/">Arthur Perret</a>
- (<a href="https://www.arthurperret.fr/feed.xml">flux</a>)
- </li>
- <li>
- <a href="https://www.quaternum.net/">Antoine Fauchié</a>
- (<a href="https://www.quaternum.net/atom.xml">flux</a>)
- </li>
- <li>
- <a href="https://n.survol.fr/">Éric D.</a>
- (<a href="https://n.survol.fr/feed">flux</a>)
- </li>
- <li>
- <a href="https://blog.ecologie-politique.eu/">Aude</a>
- (<a href="https://blog.ecologie-politique.eu/feed/atom">flux</a>)
- </li>
- <li>
- <a href="https://winnielim.org/">Winnie Lim (en)</a>
- (<a href="https://winnielim.org/feed/">flux</a>)
- </li>
- <li>
- <a href="https://brr.fyi/">brr (en)</a>
- (<a href="https://brr.fyi/feed.xml">flux</a>)
- </li>
-
- </ul>
- </nav>
- <p>N’hésitez pas à me contacter si vous ne souhaitez pas figurer dans cette liste.</p>
- <h2>Leurs dernières publications</h2>
- <dl>
- <dt>
- <a href="https://winnielim.org/journal/random-scenes-from-busan/">random scenes from busan</a>,
- 28-09-2024
- </dt>
- <dd>
- I tend to forget about my photos once too much time had passed, so today I deliberately dug into the archive from my korea trip a couple months ago. It is an...
- — <a href="https://winnielim.org/">Winnie Lim (en)</a>
- </dd>
- </dl>
- <dl>
- <dt>
- <a href="https://www.arthurperret.fr/veille/2024-09-24-rapport-etat-enseignement-superieur.html">[Veille] Rapport sur l’état de l’enseignement supérieur</a>,
- 24-09-2024
- </dt>
- <dd>
- https://nosservicespublics.fr/rapport-etat-services-publics-2024 Le rapport annuel du collectif Nos services publics inclut désormais une section sur l’enseignement supérieur. En fait, il s’agit carrément d’un rapport à part entière. À parcourir pour faire le point sur la trajectoire prise jusqu’ici et les défis auxquels nous sommes confrontés maintenant. Via Julien Gossa.
- — <a href="https://www.arthurperret.fr/">Arthur Perret</a>
- </dd>
- </dl>
- <dl>
- <dt>
- <a href="https://www.arthurperret.fr/veille/2024-09-24-manuel-pratique-de-recherche-documentaire.html">[Veille] Manuel pratique de recherche documentaire</a>,
- 24-09-2024
- </dt>
- <dd>
- https://pmartinolli.github.io/QMpRD/ Voici un ouvrage en ligne, créé par Pascal Martinolli et des collègues de l’université de Montréal, qui se présente modestement comme un manuel de recherche documentaire mais qui aborde en réalité beaucoup de choses. Car en plus de la recherche d’information, c’est une somme de conseils très précis sur tout un ensemble de questions liées aux outils, aux…
- — <a href="https://www.arthurperret.fr/">Arthur Perret</a>
- </dd>
- </dl>
- <dl>
- <dt>
- <a href="https://www.hypothermia.fr/2024/09/parenthese-there-is-a-light-that-never-goes-out/">Parenthèse – There is a light that never goes out</a>,
- 23-09-2024
- </dt>
- <dd>
- Contempler les ombres à l'autre bout du monde.
- — <a href="https://www.hypothermia.fr/">Eliness</a>
- </dd>
- </dl>
- <dl>
- <dt>
- <a href="https://n.survol.fr/n/grand-ecran-haute-definition">Grand écran haute définition</a>,
- 23-09-2024
- </dt>
- <dd>
- Je remets à jour mon environnement de travail. Ça fait 4 ans que je cherche à remplacer mon écran. Idéalement je cherche un 34 à 40″ en 21:9ème. C’est à dire l’équivalent d’un 27 à 32″ qu’on a étendu sur le côté. Ça me permettrait de mettre 2 fenêtres côte à côte et d’avoir un […]
- — <a href="https://n.survol.fr/">Éric D.</a>
- </dd>
- </dl>
- <dl>
- <dt>
- <a href="https://blog.ecologie-politique.eu/post/Devorer-le-monde">Dévorer le monde</a>,
- 22-09-2024
- </dt>
- <dd>
- Aude Vidal, Dévorer le monde. Voyage, capitalisme et domination, Payot, 2024, 192 pages, 18 € Ce mois-ci paraît Dévorer le monde, mon quatrième ouvrage personnel. J’en publie ici les premières lignes. Merci à Audrey et Aude, mes premières lectrices, à Laura à qui je dois la précision lexicale du titre, à toutes les personnes qui m’ont encouragée à l’écrire, ainsi qu’à Christophe, mon éditeur, et…
- — <a href="https://blog.ecologie-politique.eu/">Aude</a>
- </dd>
- </dl>
- <dl>
- <dt>
- <a href="https://winnielim.org/journal/why-i-refuse-to-learn-drawing-properly/">why I refuse to learn drawing properly</a>,
- 22-09-2024
- </dt>
- <dd>
- When some people want to learn to draw, they do it the “right” way. They take a drawing class, watch youtube videos, or buy a book – starting from the basics. I...
- — <a href="https://winnielim.org/">Winnie Lim (en)</a>
- </dd>
- </dl>
- <dl>
- <dt>
- <a href="https://n.survol.fr/n/completer-le-materiel-de-teletravail">Compléter le matériel de télétravail</a>,
- 20-09-2024
- </dt>
- <dd>
- Ça fait désormais 7 ans que le télétravail représente une part majeure de mon temps professionnel. Bureau J’ai une pièce dédiée, et je ne me vois juste pas faire autrement. Je me suis payé il y a longtemps un bureau assis-debout que je ne regrette pas même si je le bascule très rarement cette année. […]
- — <a href="https://n.survol.fr/">Éric D.</a>
- </dd>
- </dl>
- <dl>
- <dt>
- <a href="https://blog.ecologie-politique.eu/post/Surtourisme-derriere-un-mot">Surtourisme : derrière un mot</a>,
- 17-09-2024
- </dt>
- <dd>
- Depuis la fin des années 2010, la popularisation de la notion de surtourisme rend compte des dégâts du tourisme dans de grandes villes européennes. Les luttes urbaines, de Barcelone à Berlin, s’attaquent aux locations courte durée et aux résidences secondaires qui ont sorti du marché immobilier des logements à l’année. Les plateformes de location entre particuliers sont pointées du doigt, un peu…
- — <a href="https://blog.ecologie-politique.eu/">Aude</a>
- </dd>
- </dl>
- <dl>
- <dt>
- <a href="https://www.hypothermia.fr/2024/09/der-bad/">Huis clos – Der Bad</a>,
- 09-09-2024
- </dt>
- <dd>
- Adieu, Matoo.
- — <a href="https://www.hypothermia.fr/">Eliness</a>
- </dd>
- </dl>
- <dl>
- <dt>
- <a href="https://www.la-grange.net/2024/08/08/voir">ce que l'on voit</a>,
- 08-08-2024
- </dt>
- <dd>
- Shibuya, Japon, 8 août 2024 There has never been a generation like the present where people's hearts are so badly wounded. This is true of every area of society - politics, economics, education, and culture. It is reflected in the degradation of the environment, which comes about through the material path humanity has chosen. Now we have the ugly sight of industry, government, and the military…
- — <a href="https://www.la-grange.net/">Karl Dubost</a>
- </dd>
- </dl>
- <dl>
- <dt>
- <a href="https://www.la-grange.net/2024/08/07/orage">pensees orageuses</a>,
- 07-08-2024
- </dt>
- <dd>
- Komagome, Japon, 7 août 2024 When I said that humankind lives in an unreal world separate from nature, I was told that I was simply deluding myself. — The Dragonfly Will Be the Messiah, Masanobu Fukuoka, urn:isbn:978-0-241-51444-3 L'orage illumine le ciel. Les éclairs sont au dessus des nuages épais… ou à l'intérieur. Le moment est troublant. Était-ce comme cela avant ? On ne peut s'empêcher de…
- — <a href="https://www.la-grange.net/">Karl Dubost</a>
- </dd>
- </dl>
- <dl>
- <dt>
- <a href="https://brr.fyi/posts/brr-wants-a-job">Brr Wants A Job</a>,
- 22-07-2024
- </dt>
- <dd>
- 8 months post-ice, it's time for something new!
- — <a href="https://brr.fyi/">brr (en)</a>
- </dd>
- </dl>
- <dl>
- <dt>
- <a href="https://emmaclit.com/2024/06/29/les-coulisses-du-rn/">Les coulisses du RN</a>,
- 29-06-2024
- </dt>
- <dd>
-
- — <a href="https://emmaclit.com/">Emma</a>
- </dd>
- </dl>
- <dl>
- <dt>
- <a href="https://ynote.hk/mots/sommeil/doute.html">Doute</a>,
- 18-06-2024
- </dt>
- <dd>
- Je vis un moment de doute qui dure. C’est gênant et c’est déstabilisant. Je dors encore plus mal que d’habitude, donnant la part belle aux virus qui cherchent à coloniser les cellules de mon corps.
- — <a href="https://ynote.hk/">Fanny Cheung</a>
- </dd>
- </dl>
- <dl>
- <dt>
- <a href="https://www.quaternum.net/2024/06/18/interfaces-espaces-et-environnements-decriture-de-la-these/">Interfaces, espaces et environnements d'écriture de la thèse</a>,
- 18-06-2024
- </dt>
- <dd>
- Pendant la rédaction de ma thèse, de juillet 2022 à janvier 2024, la mise en place d’un environnement d’écriture et d’édition a pris une place importante dans mon processus de recherche. Il s’agit de manipuler du texte, de configurer l’affichage graphique des différents logiciels, ou de définir des modes d’interaction avec ceux-ci. Tout cela en visant une certaine maîtrise de cet environnement…
- — <a href="https://www.quaternum.net/">Antoine Fauchié</a>
- </dd>
- </dl>
- <dl>
- <dt>
- <a href="https://ynote.hk/mots/processus-de-creation/violet-d-un-soir.html">Violet d’un soir</a>,
- 09-06-2024
- </dt>
- <dd>
- On mélange du rouge et du bleu, voilà qu’apparaît le joli violet. Pourpre, lilas, aubergine, améthyste, prune, la couleur se décline bien plus que tout ce que j’avais essayé jusque là.
- — <a href="https://ynote.hk/">Fanny Cheung</a>
- </dd>
- </dl>
- <dl>
- <dt>
- <a href="https://brr.fyi/posts/south-pole-water-infrastructure">South Pole Water Infrastructure</a>,
- 08-06-2024
- </dt>
- <dd>
- Fresh water from snow, at 70 below!
- — <a href="https://brr.fyi/">brr (en)</a>
- </dd>
- </dl>
- <dl>
- <dt>
- <a href="https://www.quaternum.net/2024/04/04/publier-un-billet-de-blog-sous-forme-de-manuel/">[flux] Publier un billet de blog sous forme de manuel</a>,
- 04-04-2024
- </dt>
- <dd>
- Earlier this week, with a spark for building but no particular idea in mind, I started to think about the Linux manual page. Could I serve my blog posts as Linux manual pages? Herein lay an adventure. James, Serving my blog posts as Linux manual pages, https://jamesg.blog/2024/02/29/linux-manual-pages/ L’idée est très bonne : structurer un billet de blog comme une page de manuel (dans le format…
- — <a href="https://www.quaternum.net/">Antoine Fauchié</a>
- </dd>
- </dl>
- <dl>
- <dt>
- <a href="https://emmaclit.com/2024/03/19/tri-social/">Tri social</a>,
- 19-03-2024
- </dt>
- <dd>
-
- — <a href="https://emmaclit.com/">Emma</a>
- </dd>
- </dl>
- <dl>
- <dt>
- <a href="https://lalunemauve.fr/interview-mathyld-under-the-pyramids/">Interview de Mathyld (under the pyramids), artisane-créatrice de bijoux en argent</a>,
- 21-12-2023
- </dt>
- <dd>
- En ce solstice d’hiver, j’ai la joie de publier l’interview de Mathyld, artisane autodidacte française qui crée des bijoux en argent aussi mystérieux que délicats derrière la marque « under the pyramids ». Découvrez le parcours de Mathyld, ses sources d’inspiration, sa démarche, mais aussi le collier lunemauvien que nous avons co-créé ensemble. (Hé ouais, c’est la classe.)
- — <a href="https://lalunemauve.fr/">La Lune Mauve</a>
- </dd>
- </dl>
- <dl>
- <dt>
- <a href="https://luce.carevic.eu/fr/notes/attribut-disabled-fieldset">Attribut disabled et fieldset</a>,
- 08-12-2023
- </dt>
- <dd>
- L’attribut booléen disabled sur un élément <fieldset> désactive tous les contrôles de formulaire présents à l’intérieur à l’exception de ceux présents dans l’élément <legend>. Voir la documentation mdn sur l’élément <fieldset>. Ça m’a surprise d’apprendre qu’il est possible de mettre des contrôles de formulaire dans un élément <legend> ! Curieuse de voir les cas d’usage où ça peut être utile 🤔.…
- — <a href="https://luce.carevic.eu/fr">Luce Carević</a>
- </dd>
- </dl>
- <dl>
- <dt>
- <a href="https://luce.carevic.eu/fr/notes/pandoc-supprimer-retours-ligne">Pandoc : supprimer les retours à la ligne</a>,
- 27-09-2023
- </dt>
- <dd>
- Par défaut, lors d’une conversion vers HTML, Pandoc ajoute des retours à la ligne pour rendre le code plus facile à lire. Pour désactiver ce comportement, il faut ajouter l'attribut --wrap=none dans la commande de conversion. Exemple de conversion d'un docx vers du HTML : pandoc *.docx -o export.html --wrap=noneVous souhaitez réagir ? N’hésitez pas à m’écrire.
- — <a href="https://luce.carevic.eu/fr">Luce Carević</a>
- </dd>
- </dl>
- <dl>
- <dt>
- <a href="http://www.maiwann.net//blogperso/tahiti_j24/">Tahiti - jour 24</a>,
- 25-09-2023
- </dt>
- <dd>
- Au lever (le plus tardif possible), on a des firi-firi (genre de beignet à rien qui fait notre bonheur). Puis alors que je lis les retours des copaines sur la promesse de vente, on remballe les affaires pour aller manger au snack près du port. Il y avait un beau chat et 19 !! canetons près de l’eau <3
- — <a href="https://www.maiwann.net/">Maïtané Lenoir</a>
- </dd>
- </dl>
- <dl>
- <dt>
- <a href="http://www.maiwann.net//blogperso/tahiti_j23/">Tahiti - jour 23</a>,
- 25-09-2023
- </dt>
- <dd>
- Aujourd’hui, c’est pluie-day.
- — <a href="https://www.maiwann.net/">Maïtané Lenoir</a>
- </dd>
- </dl>
- <dl>
- <dt>
- <a href="https://lalunemauve.fr/perlimpinpin/">Où je crache ma pastille Valda à propos d’Instagram</a>,
- 05-07-2023
- </dt>
- <dd>
- Ce billet est une exclusivité pour l’Antichambre. — Il y a quelques mois, dans une story Instagram, je vous ai demandé ce vous préfériez lire en priorité sur mon blog entre, d’une part, un coup de sang à propos d’Instagram et, d’autre part, mes bonnes adresses à Strasbourg. Vous avez été une large majorité à voter pour le premier choix : je m’exécute donc, même si ça va rafraîchir l’ambiance.…
- — <a href="https://lalunemauve.fr/">La Lune Mauve</a>
- </dd>
- </dl>
-
- </article>
-
- <hr>
- <footer>
- <p>
- <nobr>
- <a href="/david/" title="Aller à l’accueil">
- <svg class="icon icon-home">
- <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-home"></use>
- </svg>
- Accueil</a>
- </nobr>
- •
- <nobr>
- <a href="/david/log/" title="Accès au flux RSS">
- <svg class="icon icon-rss2">
- <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-rss2"></use>
- </svg>
- Suivre</a>
- </nobr>
- •
- <nobr>
- <a href="http://larlet.com"
- title="Go to my English profile"
- data-instant>
- <svg class="icon icon-user-tie">
- <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-user-tie"></use>
- </svg>
- Pro</a>
- </nobr>
- •
- <nobr>
- <a href="mailto:david%40larlet.fr" title="Envoyer un courriel">
- <svg class="icon icon-mail">
- <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-mail"></use>
- </svg>
- Email</a>
- </nobr>
- •
- <nobr>
- <abbr class="nowrap"
- title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340">
- <svg class="icon icon-hammer2">
- <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-hammer2"></use>
- </svg>
- Légal</abbr>
- </nobr>
- </p>
- <template id="theme-selector">
- <form>
- <fieldset>
- <legend>
- <svg class="icon icon-brightness-contrast">
- <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-brightness-contrast"></use>
- </svg>
- Thème
- </legend>
- <label>
- <input type="radio" value="auto" name="chosen-color-scheme" checked>
- Auto
- </label>
- <label>
- <input type="radio" value="dark" name="chosen-color-scheme">
- Foncé
- </label>
- <label>
- <input type="radio" value="light" name="chosen-color-scheme">
- Clair
- </label>
- </fieldset>
- </form>
- </template>
- </footer>
- <script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script>
- <script>
- function loadThemeForm(templateName) {
- const themeSelectorTemplate = document.querySelector(templateName)
- const form = themeSelectorTemplate.content.firstElementChild
- themeSelectorTemplate.replaceWith(form)
-
- form.addEventListener('change', (e) => {
- const chosenColorScheme = e.target.value
- localStorage.setItem('theme', chosenColorScheme)
- toggleTheme(chosenColorScheme)
- })
-
- const selectedTheme = localStorage.getItem('theme')
- if (selectedTheme && selectedTheme !== 'undefined') {
- form.querySelector(`[value="${selectedTheme}"]`).checked = true
- }
- }
-
- const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
- window.addEventListener('load', () => {
- let hasDarkRules = false
- for (const styleSheet of Array.from(document.styleSheets)) {
- let mediaRules = []
- for (const cssRule of styleSheet.cssRules) {
- if (cssRule.type !== CSSRule.MEDIA_RULE) {
- continue
- }
- // WARNING: Safari does not have/supports `conditionText`.
- if (cssRule.conditionText) {
- if (cssRule.conditionText !== prefersColorSchemeDark) {
- continue
- }
- } else {
- if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
- continue
- }
- }
- mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
- }
-
- // WARNING: do not try to insert a Rule to a styleSheet you are
- // currently iterating on, otherwise the browser will be stuck
- // in a infinite loop…
- for (const mediaRule of mediaRules) {
- styleSheet.insertRule(mediaRule.cssText)
- hasDarkRules = true
- }
- }
- if (hasDarkRules) {
- loadThemeForm('#theme-selector')
- }
- })
- </script>
-
- </body>
- </html>
|