A place to cache linked articles (think custom and personal wayback machine)
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

index.html 26KB

před 4 roky
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  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>Missions, promesses, compromis - 3. Risque, ouverture et compromis (archive) — David Larlet</title>
  13. <meta name="description" content="Publication mise en cache pour en conserver une trace.">
  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="#f0f0ea">
  24. <meta name="msapplication-config" content="/static/david/icons2/browserconfig.xml">
  25. <meta name="theme-color" content="#f0f0ea">
  26. <!-- Documented, feel free to shoot an email. -->
  27. <link rel="stylesheet" href="/static/david/css/style_2020-06-19.css">
  28. <!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. -->
  29. <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>
  30. <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>
  31. <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>
  32. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  33. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  34. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  35. <script type="text/javascript">
  36. function toggleTheme(themeName) {
  37. document.documentElement.classList.toggle(
  38. 'forced-dark',
  39. themeName === 'dark'
  40. )
  41. document.documentElement.classList.toggle(
  42. 'forced-light',
  43. themeName === 'light'
  44. )
  45. }
  46. const selectedTheme = localStorage.getItem('theme')
  47. if (selectedTheme !== 'undefined') {
  48. toggleTheme(selectedTheme)
  49. }
  50. </script>
  51. <meta name="robots" content="noindex, nofollow">
  52. <meta content="origin-when-cross-origin" name="referrer">
  53. <!-- Canonical URL for SEO purposes -->
  54. <link rel="canonical" href="https://www.philomag.com/les-idees/missions-promesses-compromis3risque-ouverture-et-compromis-43675">
  55. <body class="remarkdown h1-underline h2-underline h3-underline hr-center ul-star pre-tick">
  56. <article>
  57. <header>
  58. <h1>Missions, promesses, compromis - 3. Risque, ouverture et compromis</h1>
  59. </header>
  60. <nav>
  61. <p class="center">
  62. <a href="/david/" title="Aller à l’accueil">🏠</a> •
  63. <a href="https://www.philomag.com/les-idees/missions-promesses-compromis3risque-ouverture-et-compromis-43675" title="Lien vers le contenu original">Source originale</a>
  64. </p>
  65. </nav>
  66. <hr>
  67. <main>
  68. <p>Bien avant de devenir une épreuve et une question scientifiques, l’incertitude et l’indétermination sont d’abord, pour l’humanité, le problème permanent de ce que Rainer Maria Rilke décrit dans les <a href="https://editions.flammarion.com/Catalogue/gf/litterature-et-civilisation/les-elegies-de-duino-sonnets-a-orphee"><i>Sonnets à Orphée</i></a> comme le risque de ce qu’il appelle l’ouvert. </p>
  69. <p>Risque et ouverture conditionnent tout investissement (noétique ou financier), et demeurent à jamais sans solution : faire face à l’incertitude et à l’indétermination nécessite d’entretenir et de reconstituer sans cesse un horizon de crédit – c’est-à-dire un horizon d’investissements collectifs, visant à inventer et à consolider la possibilité d’un avenir néguentropique surmontant temporairement et localement le devenir entropique (cette localité étant distribuée en échelles qui vont de la cellule à la totalité de la biosphère) – sans jamais pouvoir éliminer le risque ni donc éviter que l’ouverture ne se referme.</p>
  70. <p>Pourquoi en ce cas l’incertitude et l’indétermination sont-elles finalement <i>déniées</i> par l’institution scolaire et académique, et encore par une partie de la communauté scientifique, légitimant ainsi l’incurie économique et politique ? Et pourquoi cela ne peut-il plus durer ? Il en va ainsi parce que si l’on avait intégré dans les processus de certification industrielle les questions apparues avec la thermodynamique et ses conséquences macroscopiques sur le vivant, par exemple quant aux possibilités qu’a ou que n’a pas l’avion Airbus A380 de voler, jamais cet appareil n’aurait obtenu la <i>certification</i> l’y autorisant. </p>
  71. <p>Et si cela ne peut plus durer, c’est parce l’hypercrise systémique met en évidence que des limites entre systèmes dynamiques sont franchies de toutes parts, perturbant ces systèmes aux échelles les plus éloignées, du virus appelé Covid 19 à l’industrie planétairement interdépendante, compromettant l’avenir de la vie en totalité – cependant que l’A380 est lui-même un échec commercial pour des raisons qui ne sont évidemment pas étrangères à de telles questions. Plus généralement, c’est <i>l’ensemble des processus de certification qui procurent à l’économie industrielle son crédit</i> aussi bien du point de vue des investisseurs (comme calculs de risques) que du point de vue des consommateurs (comme confiance dans les produits comme dans leur pouvoir d’achat et dans leur monnaie) qui <i>nécessite désormais une requalification fondamentale – et systémique. </i></p>
  72. <p>Le système académique n’a toujours pas intégré l’entropie comme question majeure de la physique pour l’homme, ni ses conséquences sur la définition du vivant par Schrödinger, ni donc la question les limites résultantes pour l’action humaine considérées avec Lotka. Le système académique dans son ensemble, qui aura été gouverné essentiellement dans le but d’accompagner, de légitimer et de renforcer le système de production et de consommation – orientation qui sera encore accrue par le projet de loi de programmation de la recherche –, ne pouvait que refouler ce qui vient contredire la légitimité même d’un tel accompagnement sous cette forme, c’est-à-dire : comme <i>dispositif d’accomplissement aussi bien que de dissimulation de l’ère Anthropocène</i>.</p>
  73. <p>À quoi les oreilles de l’entendement scientifique seront-elles restées sourdes dans leur impossible dialogue devenu polémique au cours de la pandémie sans jamais parvenir à élaborer les thèses de ce que l’on appelle une controverse scientifique ? Il arrive souvent que l’entendement n’entende pas ce que la seule raison peut lui dire : c’est essentiellement cela qu’aura enseigné Kant, et que Whitehead aura su réinterpréter au-delà de la physique newtonienne. Les scientifiques polémiquant à propos de la dangerosité du coronavirus seront restés sourds précisément à l’incertitude subjective résultant de l’indétermination objective et telles qu’à partir des théories de l’entropie en physique, en biologie et en technologie, elles requièrent une nouvelle raison théorique aussi bien que pratique (Kant entrouvre d’ailleurs cette question dans la <i>Critique du jugement</i> comme raison esthétique).</p>
  74. <p>Chez Whitehead, <strong>la raison a pour fonction d’<i>opérer des bifurcations </i> en vue de protéger ce qui, au-delà de la seule biodiversité,</strong> constitue la noodiversité des êtres exosomatiques que nous sommes, et qui est le gage de leur résilience à toute sorte de dérèglement entropique, dont la maladie est une expression biologique, mais qui a aussi des formes techniques – raison pour laquelle Canguilhem peut écrire <i>« le pouvoir et la tentation de se rendre malade sont une caractéristique essentielle de la physiologie humaine. »</i> </p>
  75. <h3>La puissance publique est à réinventer</h3>
  76. <p>Un nouveau crédit est requis, et la fonction de la raison théorique, pratique et esthétique est de l’ac-créditer en projetant des motifs (raisons) d’espérer. De nouvelles critériologies de certification doivent être mises en place à partir de cette accréditation. Si la tâche paraît de nos jours impossible, elle est impérative. Cet impératif nécessite une méthode d’amplification de dynamiques, fondée sur un diagnostic, et capable de négocier un compromis – car rien ne pourra se <i>concrétiser</i> en de telles circonstances sans que des engagements mutuels ne soient pris par des parties dont les intérêts particuliers divergent, et qui cependant doivent en dernier ressort s’entendre quant à leur intérêt commun. Le gage de cet intérêt commun autrefois appelé bien public et chose publique, c’est la noodiversité – raison pour laquelle la démocratie naît en Grèce. Il s’agit tout aussi bien de réinventer la puissance publique.</p>
  77. <p>Pour préciser le registre du discrédit affectant le savoir scientifique – mais aussi, plus généralement, les savoirs de la vie quotidienne et les savoir-faire –, une analyse de l’affaire où s’est imprudemment compromise la revue <i>The Lancet</i> constitue un bon cas. Tout le contenu de l’article collectif écrit pour établir l’inefficacité et même la dangerosité de l’hydroxychloroquine, et qui aura été ensuite mis en cause, aura été frelaté par une analyse de données réalisée avec les méthodes actuelles, typiques de la <i>data economy</i>, et appliquée à toutes réalités. L’intérêt de cette affaire, qui a discrédité l’une des revues de médecine les plus anciennes et les plus prestigieuses, est le rôle du calcul dans cette compromission épistémologique – sinon vénale.</p>
  78. <p>L’économie mondiale repose de nos jours entièrement sur des systèmes de calcul fondés sur l’élimination statistique et probabiliste de l’incalculable et de l’indéterminé. Ces systèmes <i>purement computationnels</i> sont d’autant plus dangereux qu’ils instaurent une <i>certitude aveugle</i> (la certitude cartésienne voyait elle-même très loin – bien qu’elle ne vît ni l’entropie, ni l’univers en expansion, ni la singularité du vivant au sein des lois de la mécanique céleste), dénoncée par les statisticiens eux-mêmes. Désormais confrontée à des événements générés par des systèmes dynamiques portés à leur limite, une telle économie s’avère être mouvante, et risque de se liquéfier telle l’argile crue sous la pluie – comme la « société liquide » devait périr de sa liquidité. </p>
  79. <p>Cela ne signifie en rien qu’il faudrait rejeter les technologies de calcul, dont la raison, et l’entendement à son service, ont évidemment et impérativement besoin – et Wiener, comme <a href="https://fr.wikipedia.org/wiki/Ludwig_von_Bertalanffy">Ludwig von Bertalanffy</a> avant lui, aura montré pourquoi l’humanité en croissance exponentielle ne saurait se passer de la cybernétique, y compris pour ralentir et transformer cette croissance à la fois démographique et économique qui s’avère être une mécroissance constituant une déséconomie. Cela signifie qu’il faut <i>prescrire thérapeutiquement la technologie</i> en tant qu’elle est un <i>pharmakon</i> aussi remédiant qu’empoisonnant.</p>
  80. <p>Si Naomi Klein a sans aucun doute raison de diagnostiquer qu’un nouvel épisode de la doctrine du choc – mieux connue comme stratégie du choc, selon la traduction française de son <i>best-seller</i> – est en train de se jouer à travers ce qu’elle a décrit comme un <i>screen new deal</i>, en lieu et place du <i>green new deal</i> que proposait la gauche américaine dans le cadre des primaires démocrates, et qui, après le confinement planétaire, profiterait de la catastrophe sanitaire pour <i>imposer télé-travail et télé-enseignement à très grande échelle</i>, il ne saurait s’agir de rejeter ni les écrans ni les algorithmes dont ils sont les interfaces. Il s’agit d’entamer une critique fondamentale de l’informatique théorique, telle qu’elle repose sur une interprétation tout à fait partielle de l’entropie par la théorie dite de l’information, et, en particulier pour l’Europe, il s’agit de reconstruire un avenir industriel qu’elle a perdu.</p>
  81. <h3>Une alter-doctrine du choc</h3>
  82. <p>Dès lors, il ne suffit pas de provoquer une « stratégie du choc à l’envers », comme croyait pouvoir le proposer avec Pablo Servigne un groupe de citoyens prônant la solidarité de proximité plutôt que des mesures réglementaires mises en œuvre par des technologies. On ne saurait simplement opposer des communautés solidaires et autres initiatives locales à une catastrophe d’ampleur littéralement cosmique. Il s’agit tout au contraire d’élaborer et de concrétiser une <i>alter-doctrine du choc</i> – tant il est vrai que <i>depuis son origine, l’humanité engendre et subit les chocs dont elle est à la fois la source, la victime</i> <i>et le soin</i> comme culture, c’est à dire comme production constante de nouvelles formes de savoirs et de crédits constituant une noodiversité. </p>
  83. <p>De tels chocs sont liés à la condition irréductiblement exosomatique de l’humanité, situation induite par la structure néoténique de la physiologie humaine. Une société ne tient dans le temps que pour autant qu’elle parvienne à générer un crédit à partir de tels chocs. Un nouveau crédit instaure une époque, un âge ou une ère, à travers un processus qui connaît toujours une phase douloureuse d’engendrement, puis une apogée, puis un temps de déclin – lequel, selon Toynbee, peut devenir suicidaire.</p>
  84. <p>Le grand choc qui aura généré l’ère Anthropocène est la machine thermodynamique. Le second principe de la physique thermodynamique aura été formulé peu de temps après ce choc, et il aura été formalisé comme processus entropique en 1865 par <a href="https://fr.wikipedia.org/wiki/Rudolf_Clausius">Rudolf Clausius</a>, <a href="https://fr.wikipedia.org/wiki/Ludwig_Boltzmann">Ludwig Boltzmann</a> en énonçant la formule statistique en 1873. Comme on l’a vu, un grand décalage se sera cependant maintenu entre cette théorie tout à fait nouvelle et la réalité comptable et certifiée de la vie quotidienne – et ce décalage aura été un refoulement au service de la réalisation d’une ère géologique très spécifique, très brève, fondée sur une accélération foudroyante, devenue avec la disruption <i>accélération de l’accélération</i> (comme il y a une <i>épidémie d’épidémies </i>), et condamnée à l’épuisement à très brève échéance.</p>
  85. <p><strong>C’est à partir de ce diagnostic que le Collectif Internation, le 10 janvier dernier, à Genève, a proposé une démarche de recherche contributive,</strong> fondée sur des territoires laboratoires candidats et visant à opérer des transferts très rapides de savoirs <i>régénérés</i> par cette méthode, qui associe étroitement, fonctionnellement et intergénérationnellement les habitants de ces territoires, qu’ils soient résidents, associations, entreprises, institutions, administrations, etc., scientifiques, économistes, juristes, épistémologues, philosophes, sociologues, psychologues, urbanistes, architectes, ingénieurs, médecins, pédiatres, psychiatres, artistes, acteurs économiques et financiers. </p>
  86. <p>Nous posons avec ce Collectif et avec l’Association des amis de la génération Thunberg qui s’est créée autour de lui que la nouvelle certification requise pour être mise au service du nouveau crédit est la lutte contre l’entropie. Cette certification, qui consiste aussi bien en diplômes et en autorisation de voler ou de rouler, est surdéterminée par des normes comptables micro-économiques, méso-économiques et macro-économiques. Nous prônons dans cette optique une régénération des normes comptables fondée sur la revalorisation des savoirs locaux – vivre, faire, concevoir et spiritualiser – à toutes les échelles, mis en situation de prescrire et de pratiquer de telles certifications, et, en cela, de générer et consolider des nouvelles formes de crédit. Pour cela, une plateforme contributive a été conçue sur la base du logiciel E-planet. </p>
  87. <p>Les savoirs configurent les pratiques qui permettent de lutter contre l’entropie : ils sont en ce sens structurellement néguentropiques. La néguentropie elle-même est toujours une réalité locale : telle vinification est liée à tel terroir et tel cépage, telle musique est africaine ou autrichienne, telle théorie physique est terrienne, et tout cela constitue ce que nous appelons la noodiversité, qui ne peut être appréhendée que du point de vue de la biosphère, comme le souligna Edmund Husserl dans son style et en son temps. </p>
  88. <p>Si la biosphère tente de s’élargir à travers navettes spatiales, sondes et observatoires dans l’espace, ces dispositifs demeurent dépendants de leur « segment-sol », et la biosphère elle-même, désormais entourée par une exosphère satellitaire, ne peut jamais, en aucun cas, s’émanciper d’un point de vue <i>situé</i> – aussi bien <i>dans l’espace</i> (le système solaire au sein de sa galaxie) que <i>dans le temps</i> (moins de 5 milliards d’années avant l’extinction du soleil, plus de 13 milliards d’années près la formation de l’univers, moins de 5 milliards d’années après la formation de la Terre, près de 4 milliards d’années après l’apparition de la vie). </p>
  89. <p>De tels savoirs étant toujours locaux, leur valorisation à travers des échanges avec d’autres savoirs, issus d’autres localités, suppose des franchissements d’échelles de localités, qui supposent eux-mêmes des modalités de certifications comptables, elles-mêmes contributives – à travers ce que nous avons appelé des conventions collectives territoriales. La valorisation de tels savoirs se nomme l’économie de la contribution, et dans une expérimentation en cours en Seine-Saint-Denis, qui constitue le premier territoire laboratoire, elle vise à établir un revenu contributif, inspiré à la fois par l’organisation du travail inventée dans le cadre du logiciel libre (comme partage de savoirs constituant des communs), et par les modalités de rémunérations hors emploi des intermittents du spectacle (comme investissement collectif dans la noodiversité). </p>
  90. <h3>Vers une bifurcation positive</h3>
  91. <p>Lorsque le collectif <a href="https://www.democratieouverte.org/nouslespremiers-scenario-democratique/">#Nouslespremiers</a> a lancé son initiative, je m’y suis associé tout en soulignant que les démarches proposées sur la base de conventions citoyennes ne pourraient être fécondes et tenir leurs promesses qu’à la condition non seulement de consulter des avis d’experts, qui sont eux-mêmes très souvent objets de controverses ou de polémiques, mais aussi de constituer des dispositifs d’apprentissages collectifs et expérimentaux permettant de <i>travailler</i> avec ces scientifiques, économistes, juristes, ingénieurs, etc. à <i>régénérer les crédits</i> requis pour qu’une société ait confiance en elle – et cela, désormais, à l’échelle planétaire – en situation d’urgence absolue. </p>
  92. <p>De tels laboratoires, <strong>qui devraient se multiplier sur tous les continents</strong> – et il en existe déjà partout (notamment les territoires et villes en transition) sous des formes plus ou moins développées –, doivent être des lieux de négociations de compromis entre acteurs qui ont des intérêts à court terme et moyen terme divergents mais à long terme convergents. Cette convergence doit permettre de passer des accords à travers de conventions collectives, à diverses échelles, en mobilisant très fortement les générations, et en y associant étroitement les institutions scolaires et académiques aussi bien que les parents d’élèves, qui sont littéralement affolés et de plus en plus accablés par l’avenir à court terme aussi bien qu’à long terme de leurs enfants et petits-enfants.</p>
  93. <p>Il faut agir pour le vivant, mais, dans cet état d’exception noétique qu’est l’état d’urgence généralisée, cette action ne doit en aucun cas sacrifier la réflexion. Elle doit pour cela se donner de nouveaux instruments de recherche, associant étroitement l’ensemble des parties prenantes, et avant tout les habitants, qui ne retrouveront confiance et ne trouveront ainsi la force d’agir et de bifurquer positivement qu’à la condition de <i>contribuer</i> à la genèse de ces nouveaux savoirs. Ceux-ci permettront tout aussi bien d’engendrer une nouvelle puissance publique, constituant une nouvelle chose publique, et une régénération de ce que l’on appelait à l’époque de Kant la République, conçue avant tout comme communauté politique fondée sur le partage de savoirs. </p>
  94. <p>Pour cela, un compromis historique entre le capital et le travail est requis. Les entreprises sont confrontées à un défi sans précédent. Elles doivent se réinventer de fond en comble pour passer d’une valeur basée sur le PIB, lui-même essentiellement producteur d’entropie, à une valeur entièrement requalifiée : le temps est venu d’une innovation véritablement ouverte en cela que sociale, et non seulement technologique – ne tombant dans les travers ni du « solutionnisme technologique », ni du libertarianisme qui n’est que l’extrémisation techno-logique d’un ultralibéralisme failli. </p>
  95. <p>S’il n’était pas possible de réaliser ce que Stéphane Berdoulet appelle après Michel Bourgain (ancien maire de l’Île-Saint-Denis) des PPPP, <strong>c’est-à-dire des <i>partenariats public privé population</i>,</strong> les pouvoirs publics et le personnel politique qui les a laissés se dégrader à un point inconcevable en à peine deux décennies devraient être mis devant le fait accompli – eux-mêmes n’ayant plus le crédit requis pour accomplir un tel fait, c’est-à-dire : pour générer une bifurcation positive, à la base de nouveaux droits, fondateurs de scalabilités diversement locales, et capables de prendre soin de la biosphère devenue technosphère.</p>
  96. </main>
  97. </article>
  98. <hr>
  99. <footer>
  100. <p>
  101. <a href="/david/" title="Aller à l’accueil">🏠</a> •
  102. <a href="/david/log/" title="Accès au flux RSS">🤖</a> •
  103. <a href="http://larlet.com" title="Go to my English profile" data-instant>🇨🇦</a> •
  104. <a href="mailto:david%40larlet.fr" title="Envoyer un courriel">📮</a> •
  105. <abbr title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340">🧚</abbr>
  106. </p>
  107. <template id="theme-selector">
  108. <form>
  109. <fieldset>
  110. <legend>Thème</legend>
  111. <label>
  112. <input type="radio" value="auto" name="chosen-color-scheme" checked> Auto
  113. </label>
  114. <label>
  115. <input type="radio" value="dark" name="chosen-color-scheme"> Foncé
  116. </label>
  117. <label>
  118. <input type="radio" value="light" name="chosen-color-scheme"> Clair
  119. </label>
  120. </fieldset>
  121. </form>
  122. </template>
  123. </footer>
  124. <script type="text/javascript">
  125. function loadThemeForm(templateName) {
  126. const themeSelectorTemplate = document.querySelector(templateName)
  127. const form = themeSelectorTemplate.content.firstElementChild
  128. themeSelectorTemplate.replaceWith(form)
  129. form.addEventListener('change', (e) => {
  130. const chosenColorScheme = e.target.value
  131. localStorage.setItem('theme', chosenColorScheme)
  132. toggleTheme(chosenColorScheme)
  133. })
  134. const selectedTheme = localStorage.getItem('theme')
  135. if (selectedTheme && selectedTheme !== 'undefined') {
  136. form.querySelector(`[value="${selectedTheme}"]`).checked = true
  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>