{"authors":[{"name":"Benoît H. Dicaire"}],"description":"Site personnel bilingue pour textes, projets, conférences et notes.","feed_url":"https://BHDicaire.com/fr/feed.json","home_page_url":"https://BHDicaire.com/fr/","items":[{"content_html":"\u003cp\u003eLes régions géographiques UN M49 organisent les pays et zones dans une hiérarchie statistique : monde, région, sous-région, région intermédiaire optionnelle, puis pays ou zone.\u003c/p\u003e\n\u003cp\u003eUtilisez cette page pour comprendre comment la Division de statistique des Nations Unies regroupe les pays et zones dans ses publications et bases de données. Pour les champs de codes pays dans les produits et les intégrations, utilisez plutôt la référence complémentaire \u003ca href=\"/fr/blog/ref/iso-3166/\"\u003eCodes de pays ISO 3166\u003c/a\u003e\n.\u003c/p\u003e\n","date_modified":"2026-08-10T00:00:00Z","date_published":"2026-06-22T00:00:00Z","id":"https://BHDicaire.com/fr/blog/ref/continents/","summary":"Les régions géographiques UN M49 organisent les pays et zones dans une hiérarchie statistique : monde, région, sous-région, région intermédiaire optionnelle, puis pays ou zone.\n","title":"Régions géographiques UN M49","url":"https://BHDicaire.com/fr/blog/ref/continents/"},{"content_html":"\u003cp\u003eCette référence suit les principaux cadres de main-d\u0026rsquo;oeuvre en cybersécurité, taxonomies professionnelles et références de cartographie des compétences. Utilisez-la pour normaliser les descriptions de postes, cartographier les capacités des équipes et repérer les lacunes de formation dans quatre grandes catégories :\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"#framework-category-1-cadres-principaux-de-main-doeuvre-en-cybers%c3%a9curit%c3%a9\"\u003eCadres principaux de cybersécurité\u003c/a\u003e\n - Normes de base pour définir les rôles, les compétences et les tâches.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#framework-category-2-normes-sp%c3%a9cialis%c3%a9es-et-sectorielles-de-cybers%c3%a9curit%c3%a9\"\u003eNormes spécialisées et sectorielles\u003c/a\u003e\n - Cadres pour la défense, les gouvernements et les environnements réglementés.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#framework-category-3-normes-g%c3%a9n%c3%a9rales-de-taxonomie-ti-num%c3%a9rique-et-professionnelle\"\u003eTaxonomies générales des TI et du numérique\u003c/a\u003e\n - Cadres de compétences TI à l\u0026rsquo;échelle de l\u0026rsquo;entreprise et du marché du travail mondial.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#framework-category-4-bases-de-connaissances-et-r%c3%a9f%c3%a9rences-de-correspondance\"\u003eBases de connaissances fondamentales\u003c/a\u003e\n - Corpus de connaissances et inventaires de recherche sous-jacents.\u003c/li\u003e\n\u003c/ul\u003e\n","date_modified":"2026-08-10T00:00:00Z","date_published":"2026-08-09T00:00:00Z","id":"https://BHDicaire.com/fr/blog/ref/workforce-frameworks/","summary":"Cette référence suit les principaux cadres de main-d\u0026rsquo;oeuvre en cybersécurité, taxonomies professionnelles et références de cartographie des compétences. Utilisez-la pour normaliser les descriptions de postes, cartographier les capacités des équipes et repérer les lacunes de formation dans quatre grandes catégories :\n","title":"Cadres de main-d'oeuvre en cybersécurité","url":"https://BHDicaire.com/fr/blog/ref/workforce-frameworks/"},{"content_html":"\u003cp\u003eLa plupart des produits ne devraient pas demander aux personnes de choisir un continent.\u003c/p\u003e\n\u003cp\u003ePour la facturation, la livraison, la fiscalité, la résidence légale, la localisation, les jointures analytiques et les intégrations avec des systèmes externes, un champ de pays ou territoire est habituellement le bon point de départ. Stockez un \u003ca href=\"/fr/blog/ref/iso-3166/\"\u003ecode de pays ISO 3166\u003c/a\u003e\n, puis dérivez les regroupements plus larges lorsque vous en avez besoin.\u003c/p\u003e\n\u003cp\u003eUn champ de continent peut tout de même être pertinent lorsque le produit demande explicitement une région générale : préférences de voyage, couverture de marché, catégorisation éditoriale, tableaux de bord grossiers ou champ de profil qui n\u0026rsquo;est pas une adresse. Dans ces cas, stockez des valeurs stables et gardez les libellés séparés afin que les traductions ou changements de noms ne nécessitent pas de migration de données.\u003c/p\u003e\n\u003cp\u003eSi le travail exige des regroupements statistiques plutôt qu\u0026rsquo;une simple liste destinée au produit, utilisez les \u003ca href=\"/fr/blog/ref/continents/\"\u003erégions géographiques UN M49\u003c/a\u003e\n. M49 est plus précis qu\u0026rsquo;un menu déroulant à sept continents parce qu\u0026rsquo;il inclut les régions, sous-régions, régions intermédiaires, correspondances de pays ou zones et groupes de développement comme LDC, LLDC et SIDS.\u003c/p\u003e\n\u003cp\u003eLa règle pratique : demandez le champ le plus petit qui convient au flux de travail, stockez un code stable et dérivez la géographie plus large à partir de données de référence maintenues au lieu de demander aux utilisateurs de se classer eux-mêmes.\u003c/p\u003e\n","date_modified":"2026-08-10T00:00:00Z","date_published":"2026-08-10T00:00:00Z","id":"https://BHDicaire.com/fr/blog/continent-fields-in-forms/","summary":"La plupart des produits ne devraient pas demander aux personnes de choisir un continent.\nPour la facturation, la livraison, la fiscalité, la résidence légale, la localisation, les jointures analytiques et les intégrations avec des systèmes externes, un champ de pays ou territoire est habituellement le bon point de départ. Stockez un code de pays ISO 3166 , puis dérivez les regroupements plus larges lorsque vous en avez besoin.\n","title":"Champs de continent dans les formulaires","url":"https://BHDicaire.com/fr/blog/continent-fields-in-forms/"},{"content_html":"\u003cp\u003eCette page rassemble les séries récurrentes du blogue et les notes liées qui se lisent mieux en ensemble qu’en articles isolés.\u003c/p\u003e\n","date_modified":"2026-08-08T00:00:00Z","date_published":"2026-08-08T00:00:00Z","id":"https://BHDicaire.com/fr/blog/series/","summary":"Cette page rassemble les séries récurrentes du blogue et les notes liées qui se lisent mieux en ensemble qu’en articles isolés.\n","title":"Séries du blogue","url":"https://BHDicaire.com/fr/blog/series/"},{"content_html":"\u003cp\u003eCette page temporaire teste une façon plus visuelle de parcourir les mindmaps avant de décider si elle devrait remplacer ou compléter le tableau de la série.\u003c/p\u003e\n","date_modified":"2026-08-08T00:00:00Z","date_published":"2026-08-08T00:00:00Z","id":"https://BHDicaire.com/fr/blog/mindmaps/gallery/","summary":"Cette page temporaire teste une façon plus visuelle de parcourir les mindmaps avant de décider si elle devrait remplacer ou compléter le tableau de la série.\n","title":"Galerie de mindmaps","url":"https://BHDicaire.com/fr/blog/mindmaps/gallery/"},{"content_html":"\u003cp\u003eBienvenue à l\u0026rsquo;antidote contre l\u0026rsquo;infrastructure ennuyante. Si votre convention de nommage actuelle ressemble à une collision aléatoire de majuscules, de chiffres et d\u0026rsquo;abréviations régionales, vous êtes au bon endroit.\u003c/p\u003e\n\u003cp\u003eLes conventions systématiques sont utiles jusqu\u0026rsquo;au moment où il faut nommer un serveur clairement pendant un incident. \u003ccode\u003eprod-app-server-04b\u003c/code\u003e n\u0026rsquo;a simplement pas la même urgence, ni le même charme, qu\u0026rsquo;\u003ccode\u003eElvis\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eMême si nous ne sommes plus censés traiter l\u0026rsquo;infrastructure comme des pets, certaines machines demandent une vraie identité. Qu\u0026rsquo;il s\u0026rsquo;agisse d\u0026rsquo;une machine de laboratoire, d\u0026rsquo;un NAS dédié ou d\u0026rsquo;un bastion qui refuse de mourir, certains composants méritent un nom qui ne ressemble pas à un numéro de série.\u003c/p\u003e\n\u003ch2 id=\"collection-organisée-de-thèmes-de-nommage\"\u003eCollection organisée de thèmes de nommage\u003ca class=\"heading-anchor\" href=\"#collection-organis%c3%a9e-de-th%c3%a8mes-de-nommage\" aria-label=\"Link to Collection organisée de thèmes de nommage\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eVoici une collection organisée de thèmes de nommage conçus pour ménager votre clavier et votre patience. Les noms sont courts, distincts, difficiles à mal épeler sous pression, et beaucoup plus intéressants qu\u0026rsquo;une autre chaîne d\u0026rsquo;abréviations régionales. Choisissez un thème, oubliez les codes-barres, et donnez un peu de caractère à votre infrastructure.\u003c/p\u003e\n","date_modified":"2026-08-08T00:00:00Z","date_published":"2026-08-08T00:00:00Z","id":"https://BHDicaire.com/fr/blog/themes/introduction/","summary":"Bienvenue à l\u0026rsquo;antidote contre l\u0026rsquo;infrastructure ennuyante. Si votre convention de nommage actuelle ressemble à une collision aléatoire de majuscules, de chiffres et d\u0026rsquo;abréviations régionales, vous êtes au bon endroit.\n","title":"Introduction","url":"https://BHDicaire.com/fr/blog/themes/introduction/"},{"content_html":"\u003cp\u003eThis is my slashes page where you can find all of my \u003ca href=\"https://slashpages.net/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eslash pages.\u003c/a\u003e\n\u003c/p\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003ePage\u003c/th\u003e\n          \u003cth\u003eDescription\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"/fr/blog/blogroll/\"\u003e/blogroll\u003c/a\u003e\n\u003c/td\u003e\n          \u003ctd\u003eA list of other sites I currently follow and recommend\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"/fr/blog/colophon/\"\u003e/colophon\u003c/a\u003e\n\u003c/td\u003e\n          \u003ctd\u003eThe technology and techniques I used to build this website\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"/fr/contact/\"\u003e/contact\u003c/a\u003e\n\u003c/td\u003e\n          \u003ctd\u003eA page with a contact form which you can use to reach me\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"/fr/blog/feeds/\"\u003e/feeds\u003c/a\u003e\n\u003c/td\u003e\n          \u003ctd\u003eThe availabe RSS feeds you can subscribe to to follow my work\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"/fr/mentions-legales/\"\u003e/legal\u003c/a\u003e\n\u003c/td\u003e\n          \u003ctd\u003eInformations officielles au sujet de ce site personnel\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"/fr/legal/license/\"\u003e/license\u003c/a\u003e\n\u003c/td\u003e\n          \u003ctd\u003eA page which clarifies how the content on this site is licenced\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"/fr/blog/now/\"\u003e/now\u003c/a\u003e\n\u003c/td\u003e\n          \u003ctd\u003eWhat I’m choosing to focus my attention on right now\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"/fr/legal/privacy/\"\u003e/privacy\u003c/a\u003e\n\u003c/td\u003e\n          \u003ctd\u003eHow I’m resepcting the privacy of visitors to my website\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"/fr/resources/books/\"\u003e/reading\u003c/a\u003e\n\u003c/td\u003e\n          \u003ctd\u003eThe books I’ve read since 2018\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"/fr/sitemap/\"\u003e/sitemap\u003c/a\u003e\n\u003c/td\u003e\n          \u003ctd\u003eUn index lisible des pages principales du site\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"/fr/blog/slashes/\"\u003e/slashes\u003c/a\u003e\n\u003c/td\u003e\n          \u003ctd\u003eA page that lists all my slash pages (how meta)\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"/support\"\u003e/support\u003c/a\u003e\n\u003c/td\u003e\n          \u003ctd\u003eWays in which you can support my work (should you wish to)\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"/fr/resources/projects/\"\u003e/projects\u003c/a\u003e\n\u003c/td\u003e\n          \u003ctd\u003eProjects from the past or that I’m currently working on\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"/testimonials\"\u003e/testimonials\u003c/a\u003e\n\u003c/td\u003e\n          \u003ctd\u003eThe kind words my clients have said about working with me\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"/fr/avant/\"\u003e/then\u003c/a\u003e\n\u003c/td\u003e\n          \u003ctd\u003eUne archive des anciennes versions de la page Maintenant\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"/fr/blog/uses/\"\u003e/uses\u003c/a\u003e\n\u003c/td\u003e\n          \u003ctd\u003eRedirects to \u003ca href=\"/fr/blog/uses/\"\u003e/fr/blog/uses/\u003c/a\u003e\n, my office setup and the app and services I use day to day\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eLearn more about my thoughts on slash pages and /slashes. \u003ca href=\"https://harrycresswell.com/writing/slash-pages-and-slashes/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ehttps://harrycresswell.com/writing/slash-pages-and-slashes/\u003c/a\u003e\n\u003c/p\u003e\n","date_modified":"2026-08-08T00:00:00Z","date_published":"2026-08-08T00:00:00Z","id":"https://BHDicaire.com/fr/blog/slashes/introduction/","summary":"This is my slashes page where you can find all of my slash pages. Page Description /blogroll A list of other sites I currently follow and recommend /colophon The technology and techniques I used to build this website /contact A page with a contact form which you can use to reach me /feeds The availabe RSS feeds you can subscribe to to follow my work /legal Informations officielles au sujet de ce site personnel /license A page which clarifies how the content on this site is licenced /now What I’m choosing to focus my attention on right now /privacy How I’m resepcting the privacy of visitors to my website /reading The books I’ve read since 2018 /sitemap Un index lisible des pages principales du site /slashes A page that lists all my slash pages (how meta) /support Ways in which you can support my work (should you wish to) /projects Projects from the past or that I’m currently working on /testimonials The kind words my clients have said about working with me /then Une archive des anciennes versions de la page Maintenant /uses Redirects to /fr/blog/uses/ , my office setup and the app and services I use day to day Learn more about my thoughts on slash pages and /slashes. https://harrycresswell.com/writing/slash-pages-and-slashes/ ","title":"Introduction","url":"https://BHDicaire.com/fr/blog/slashes/introduction/"},{"content_html":"\u003cp\u003eLa réponse aux incidents devient plus simple lorsque les premières décisions sont déjà documentées. Cette collection rassemble des notes pratiques pour signaler des vulnérabilités, trouver les bonnes équipes de réponse aux incidents et garder des fiches de contacts par juridiction dans le cahier d\u0026rsquo;intervention.\u003c/p\u003e\n\u003cp\u003eCommencez par le flux de signalement, puis gardez les fiches de contacts à portée de main :\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/fr/blog/incident-reporting/\"\u003eComment signaler une vulnérabilité de sécurité\u003c/a\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/fr/blog/incident-response-teams/\"\u003eRépertoires d\u0026rsquo;équipes de réponse aux incidents\u003c/a\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/fr/blog/incident-response-canada/\"\u003eFiche de contacts cyberincident Canada\u003c/a\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/fr/blog/incident-response-usa/\"\u003eFiche de contacts cyberincident États-Unis\u003c/a\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n","date_modified":"2026-08-08T00:00:00Z","date_published":"2026-08-08T00:00:00Z","id":"https://BHDicaire.com/fr/blog/incidents/introduction/","summary":"La réponse aux incidents devient plus simple lorsque les premières décisions sont déjà documentées. Cette collection rassemble des notes pratiques pour signaler des vulnérabilités, trouver les bonnes équipes de réponse aux incidents et garder des fiches de contacts par juridiction dans le cahier d\u0026rsquo;intervention.\n","title":"Introduction","url":"https://BHDicaire.com/fr/blog/incidents/introduction/"},{"content_html":"\u003cp\u003eCloudflare est à la fois une plateforme de publication, un plan de contrôle de sécurité et un runtime à l\u0026rsquo;edge. Cette collection rassemble des notes pour exploiter cette surface partagée avec prudence : règles, Workers, configuration de déploiement et endroits où les valeurs par défaut deviennent des décisions de sécurité.\u003c/p\u003e\n\u003cp\u003eCommencez par les contrôles publiés au niveau du domaine :\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/fr/blog/cf/cloudflare-domain-protection/\"\u003eLa protection Cloudflare est un état partagé\u003c/a\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/fr/blog/cf/cloudflare-rule-inventory/\"\u003eUn inventaire des règles Cloudflare\u003c/a\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n","date_modified":"2026-08-08T00:00:00Z","date_published":"2026-08-08T00:00:00Z","id":"https://BHDicaire.com/fr/blog/cf/introduction/","summary":"Cloudflare est à la fois une plateforme de publication, un plan de contrôle de sécurité et un runtime à l\u0026rsquo;edge. Cette collection rassemble des notes pour exploiter cette surface partagée avec prudence : règles, Workers, configuration de déploiement et endroits où les valeurs par défaut deviennent des décisions de sécurité.\n","title":"Introduction","url":"https://BHDicaire.com/fr/blog/cf/introduction/"},{"content_html":"","date_modified":"2026-08-07T00:00:00Z","date_published":"2026-08-07T00:00:00Z","id":"https://BHDicaire.com/fr/blog/mindmaps/smtp-tls-reporting/","summary":"","title":"SMTP TLS reporting (TLS-RPT)","url":"https://BHDicaire.com/fr/blog/mindmaps/smtp-tls-reporting/"},{"content_html":"","date_modified":"2026-08-07T00:00:00Z","date_published":"2026-08-07T00:00:00Z","id":"https://BHDicaire.com/fr/blog/mindmaps/microsoft-ur-ls/","summary":"","title":"Azure \u0026 Microsoft 365 URLs","url":"https://BHDicaire.com/fr/blog/mindmaps/microsoft-ur-ls/"},{"content_html":"\u003cp\u003e\u003ca href=\"https://tld-list.com/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eTLD List\u003c/a\u003e\n vérifie un nom sur toutes les extensions de premier niveau d\u0026rsquo;un coup et compare les prix des registraires: la disponibilité et le coût se trouvent au même endroit.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://www.expireddomains.net/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eExpiredDomains.net\u003c/a\u003e\n suit la disponibilité des domaines abandonnés.\u003c/p\u003e\n\u003ch2 id=\"registraires\"\u003eRegistraires\u003ca class=\"heading-anchor\" href=\"#registraires\" aria-label=\"Link to Registraires\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eGrand public\u003c/strong\u003e\nLes registraires réputés offrent la confidentialité WHOIS gratuite et évitent les techniques de vente incitative trompeuses.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.cloudflare.com/en-ca/products/registrar/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eCloudflare\u003c/a\u003e\n: prix coûtant sans marge, exige d\u0026rsquo;utiliser Cloudflare pour le DNS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.hover.com/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eHover\u003c/a\u003e\n: entreprise canadienne détenue par \u003ca href=\"https://www.tucows.com/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eTucows\u003c/a\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://porkbun.com\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ePorkbun\u003c/a\u003e\n: une tonne d\u0026rsquo;extensions et des prix bas\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eEntreprise\u003c/strong\u003e\nContrairement aux registraires conçus pour les particuliers, ces fournisseurs spécialisés défendent les marques à grande échelle pour les grandes entreprises et les marques multinationales.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://comlaude.com/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eCom Laude\u003c/a\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.cscdbs.com/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eCSC\u003c/a\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.markmonitor.com/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eMarkMonitor\u003c/a\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003ePlace de marché\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.atom.com\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eAtom\u003c/a\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://sedo.com\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eSedo\u003c/a\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"fournisseurs-dentiercement-indépendants\"\u003eFournisseurs d\u0026rsquo;entiercement indépendants\u003ca class=\"heading-anchor\" href=\"#fournisseurs-dentiercement-ind%c3%a9pendants\" aria-label=\"Link to Fournisseurs d’entiercement indépendants\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLa plupart des places de marché de domaines intègrent un processus d\u0026rsquo;entiercement. Les services d\u0026rsquo;entiercement spécialisés se concentrent sur la détention des fonds et la vérification du transfert technique du domaine, pour les transactions de grande valeur ou juridiquement complexes.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://escrow.com\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eEscrow.com\u003c/a\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://safefunds.com\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eSafeFunds\u003c/a\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://uniscrow.com\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eUniscrow\u003c/a\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n","date_modified":"2026-07-29T00:00:00Z","date_published":"2012-05-10T00:00:00Z","id":"https://BHDicaire.com/fr/til/finding-available-domain-name/","summary":"TLD List vérifie un nom sur toutes les extensions de premier niveau d\u0026rsquo;un coup et compare les prix des registraires: la disponibilité et le coût se trouvent au même endroit.\n","title":"Trouver un nom de domaine libre","url":"https://BHDicaire.com/fr/til/finding-available-domain-name/"},{"content_html":"\u003cp\u003eJ\u0026rsquo;ai récemment regardé quelqu\u0026rsquo;un passer un après-midi à tenter d\u0026rsquo;enregistrer ce qui semblait être le nom de domaine parfait. La recherche s\u0026rsquo;est terminée comme la plupart d\u0026rsquo;entre elles: toutes les extensions sensées étaient prises, le \u003ccode\u003e.com\u003c/code\u003e était stationné, et la seule étape évidente était de faire une offre.\u003c/p\u003e\n\u003cp\u003eC\u0026rsquo;est généralement le moment où l\u0026rsquo;on découvre qu\u0026rsquo;enregistrer un domaine et en acheter un sont deux problèmes différents.\u003c/p\u003e\n\u003cp\u003eLa distinction est simple. Trouver un nom libre est surtout un problème de recherche. Acquérir un nom existant est un problème de négociation. Savoir lequel des deux vous résolvez fait gagner du temps et évite les attentes irréalistes.\u003c/p\u003e\n\u003ch2 id=\"comprendre-dabord-pourquoi-le-domaine-existe\"\u003eComprendre d\u0026rsquo;abord pourquoi le domaine existe\u003ca class=\"heading-anchor\" href=\"#comprendre-dabord-pourquoi-le-domaine-existe\" aria-label=\"Link to Comprendre d’abord pourquoi le domaine existe\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eUn domaine enregistré appartient généralement à l\u0026rsquo;une de quelques catégories.\u003c/p\u003e\n\u003ch3 id=\"usage-actif\"\u003eUsage actif\u003ca class=\"heading-anchor\" href=\"#usage-actif\" aria-label=\"Link to Usage actif\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eLe domaine héberge un site web, un courriel, des API ou d\u0026rsquo;autres services de production. Il fait partie de l\u0026rsquo;infrastructure de quelqu\u0026rsquo;un.\u003c/p\u003e\n\u003cp\u003eCes domaines sont techniquement à vendre si le propriétaire y consent. En pratique, remplacer un domaine intégré à l\u0026rsquo;infrastructure d\u0026rsquo;une organisation coûte cher. La plupart des propriétaires refusent simplement.\u003c/p\u003e\n\u003ch3 id=\"stationné\"\u003eStationné\u003ca class=\"heading-anchor\" href=\"#stationn%c3%a9\" aria-label=\"Link to Stationné\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eLe domaine pointe vers une page de stationnement du registraire, des publicités ou une page générique « Faites une offre ».\u003c/p\u003e\n\u003cp\u003eCela ne veut pas nécessairement dire que le propriétaire veut vendre. Cela signifie seulement que le domaine ne sert pas actuellement à un service actif.\u003c/p\u003e\n\u003ch3 id=\"gardé-pour-la-revente\"\u003eGardé pour la revente\u003ca class=\"heading-anchor\" href=\"#gard%c3%a9-pour-la-revente\" aria-label=\"Link to Gardé pour la revente\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eCertains domaines sont acquis expressément comme placements.\u003c/p\u003e\n\u003cp\u003eLe propriétaire mise sur une prise de valeur et fixe son prix en conséquence. La négociation est normale.\u003c/p\u003e\n\u003ch3 id=\"enregistrement-défensif\"\u003eEnregistrement défensif\u003ca class=\"heading-anchor\" href=\"#enregistrement-d%c3%a9fensif\" aria-label=\"Link to Enregistrement défensif\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eBeaucoup d\u0026rsquo;organisations enregistrent des variantes de leurs marques qu\u0026rsquo;elles n\u0026rsquo;utiliseront jamais.\u003c/p\u003e\n\u003cp\u003eC\u0026rsquo;est une pratique courante de protection de marque, et ces domaines sont rarement à vendre.\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e Si la marque n\u0026rsquo;est plus stratégique, la négociation devient possible, mais attendez-vous à devoir en valoir la peine.\u003c/p\u003e\n\u003ch3 id=\"expiré\"\u003eExpiré\u003ca class=\"heading-anchor\" href=\"#expir%c3%a9\" aria-label=\"Link to Expiré\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eTous les domaines indisponibles ne le restent pas. Consultez \u003ca href=\"/fr/til/finding-available-domain-name/\"\u003etrouver un nom de domaine libre\u003c/a\u003e\n pour en savoir plus.\u003c/p\u003e\n\u003cp\u003eLes domaines passent généralement par l\u0026rsquo;expiration, une période de récupération, une suppression en attente, puis redeviennent disponibles ou sont vendus aux enchères, selon le registre et le registraire.\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e\u003c/p\u003e\n\u003cp\u003eLa patience l\u0026rsquo;emporte parfois sur la négociation.\u003c/p\u003e\n\u003ch2 id=\"chercher-largement-avant-de-négocier\"\u003eChercher largement avant de négocier\u003ca class=\"heading-anchor\" href=\"#chercher-largement-avant-de-n%c3%a9gocier\" aria-label=\"Link to Chercher largement avant de négocier\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAvant de conclure que le nom que vous préférez est indisponible, vérifiez toutes les extensions de premier niveau pertinentes.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://tld-list.com/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eTLD List\u003c/a\u003e\n offre une vue utile sur des centaines d\u0026rsquo;extensions tout en comparant les prix des registraires. La disponibilité et le coût apparaissent au même endroit.\u003c/p\u003e\n\u003cp\u003eChoisir une autre extension revient souvent moins cher que d\u0026rsquo;acheter un domaine de prestige. C\u0026rsquo;est aussi fréquemment la meilleure décision à long terme.\u003c/p\u003e\n\u003ch2 id=\"acheter-un-domaine-existant\"\u003eAcheter un domaine existant\u003ca class=\"heading-anchor\" href=\"#acheter-un-domaine-existant\" aria-label=\"Link to Acheter un domaine existant\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIl y a trois approches pratiques.\u003c/p\u003e\n\u003ch3 id=\"contacter-le-propriétaire\"\u003eContacter le propriétaire\u003ca class=\"heading-anchor\" href=\"#contacter-le-propri%c3%a9taire\" aria-label=\"Link to Contacter le propriétaire\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eSi le domaine héberge un site web, commencez par la page de contact. Un formulaire de contact ou une adresse courriel publiée est habituellement plus efficace que les données d\u0026rsquo;enregistrement.\u003c/p\u003e\n\u003cp\u003eLe service officiel \u003ca href=\"https://lookup.icann.org/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eICANN Registration Data Lookup Service\u003c/a\u003e\n vaut encore la peine d\u0026rsquo;être consulté, mais les règles de protection des renseignements personnels et le caviardage effectué par les registraires font qu\u0026rsquo;il ne contient souvent que peu ou pas d\u0026rsquo;information sur le titulaire. Ce service succède au service WHOIS traditionnel. WHOIS n\u0026rsquo;a pas disparu, mais les données d\u0026rsquo;enregistrement modernes sont désormais fournies par le Registration Data Directory Service (RDDS).\u003csup id=\"fnref:3\"\u003e\u003ca href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e3\u003c/a\u003e\u003c/sup\u003e\u003c/p\u003e\n\u003cp\u003eSi le site appartient à une entreprise d\u0026rsquo;Allemagne, d\u0026rsquo;Autriche ou de Suisse, l\u0026rsquo;\u003cem\u003eImpressum\u003c/em\u003e contient souvent les coordonnées de l\u0026rsquo;exploitant.\u003c/p\u003e\n\u003ch3 id=\"utiliser-une-place-de-marché\"\u003eUtiliser une place de marché\u003ca class=\"heading-anchor\" href=\"#utiliser-une-place-de-march%c3%a9\" aria-label=\"Link to Utiliser une place de marché\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eBeaucoup de domaines sont déjà en vente.\u003c/p\u003e\n\u003cp\u003eLes places de marché simplifient la négociation, le transfert et le paiement. Ces plateformes intègrent généralement une protection des paiements au flux de transaction.\u003c/p\u003e\n\u003ch3 id=\"engager-un-courtier\"\u003eEngager un courtier\u003ca class=\"heading-anchor\" href=\"#engager-un-courtier\" aria-label=\"Link to Engager un courtier\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003ePour les acquisitions de grande valeur, l\u0026rsquo;anonymat a de la valeur.\u003c/p\u003e\n\u003cp\u003eUn courtier négocie sans révéler l\u0026rsquo;acheteur, gère les attentes des deux côtés et coordonne le transfert. Cela n\u0026rsquo;en vaut généralement la peine que lorsque le domaine lui-même justifie le coût supplémentaire.\u003c/p\u003e\n\u003ch2 id=\"recourir-à-lentiercement-au-besoin\"\u003eRecourir à l\u0026rsquo;entiercement au besoin\u003ca class=\"heading-anchor\" href=\"#recourir-%c3%a0-lentiercement-au-besoin\" aria-label=\"Link to Recourir à l’entiercement au besoin\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLa transaction financière et le transfert technique devraient être traités comme deux événements distincts.\u003c/p\u003e\n\u003cp\u003eLa plupart des places de marché de domaines incluent un processus d\u0026rsquo;entiercement dans la transaction.\u003c/p\u003e\n\u003cp\u003eLes fournisseurs d\u0026rsquo;entiercement indépendants se consacrent exclusivement à la détention des fonds jusqu\u0026rsquo;à ce que la propriété ait été transférée avec succès. Ils sont surtout utiles pour les achats de grande valeur, les transactions juridiquement complexes ou les ententes négociées hors des places de marché établies.\u003c/p\u003e\n\u003ch2 id=\"choisir-un-registraire-pour-la-fiabilité\"\u003eChoisir un registraire pour la fiabilité\u003ca class=\"heading-anchor\" href=\"#choisir-un-registraire-pour-la-fiabilit%c3%a9\" aria-label=\"Link to Choisir un registraire pour la fiabilité\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLe choix d\u0026rsquo;un registraire ne dépend pas que du prix.\u003c/p\u003e\n\u003cp\u003eLa stabilité opérationnelle, les capacités DNS, les politiques de transfert, la qualité du soutien et la juridiction comptent toutes une fois que le domaine devient une infrastructure de production.\u003c/p\u003e\n\u003cp\u003eEn date de juillet 2026:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.hover.com/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eHover\u003c/a\u003e\n demeure mon registraire préféré. Il est soumis au droit canadien et appartient à \u003ca href=\"https://www.tucows.com/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eTucows\u003c/a\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.cloudflare.com/products/registrar/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eCloudflare Registrar\u003c/a\u003e\n vend les domaines au prix coûtant si Cloudflare héberge le DNS faisant autorité\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://porkbun.com/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ePorkbun\u003c/a\u003e\n propose une grande variété d\u0026rsquo;extensions génériques et de niche, à des prix concurrentiels\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eLes organisations qui gèrent de grands portefeuilles de marques recourent généralement à des fournisseurs spécialisés comme \u003ca href=\"https://comlaude.com/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eCom Laude\u003c/a\u003e\n, \u003ca href=\"https://www.markmonitor.com/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eMarkMonitor\u003c/a\u003e\n ou \u003ca href=\"https://www.cscdbs.com/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eCSC Digital Brand Services\u003c/a\u003e\n plutôt qu\u0026rsquo;à des registraires grand public.\u003c/p\u003e\n\u003ch2 id=\"le-compromis\"\u003eLe compromis\u003ca class=\"heading-anchor\" href=\"#le-compromis\" aria-label=\"Link to Le compromis\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003ePayer une prime pour le nom exact n\u0026rsquo;est pas toujours la meilleure décision.\u003c/p\u003e\n\u003cp\u003eUne marque mémorable sur une extension un peu moins à la mode fait souvent mieux qu\u0026rsquo;une acquisition coûteuse qui engloutit un budget mieux dépensé ailleurs.\u003c/p\u003e\n\u003cp\u003eLe domaine n\u0026rsquo;est qu\u0026rsquo;une partie de l\u0026rsquo;identité. Il est rarement le facteur limitant.\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eTrademark Clearinghouse (TMCH) de l\u0026rsquo;ICANN: \u003ca href=\"https://www.icann.org/resources/pages/tmch-requirements-2014-01-09-en\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ehttps://www.icann.org/resources/pages/tmch-requirements-2014-01-09-en\u003c/a\u003e\n\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003e\u003ca href=\"https://www.icann.org/resources/pages/errp-2013-02-28-en\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eICANN Expired Registration Recovery Policy (ERRP)\u003c/a\u003e\n et \u003ca href=\"https://www.icann.org/resources/pages/gtld-lifecycle-2012-02-25-en\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ecycle de vie des domaines de premier niveau génériques\u003c/a\u003e\n\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:3\"\u003e\n\u003cp\u003e\u003ca href=\"https://lookup.icann.org/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eICANN Registration Data Lookup Service\u003c/a\u003e\n, \u003ca href=\"https://www.icann.org/resources/pages/rdds-2018-05-22-en\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eRegistration Data Directory Service (RDDS)\u003c/a\u003e\n; les domaines de premier niveau nationaux (ccTLD) peuvent offrir leur propre service de recherche et suivre des règles de divulgation différentes.\u0026#160;\u003ca href=\"#fnref:3\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n","date_modified":"2026-07-29T00:00:00Z","date_published":"2015-07-29T00:00:00Z","id":"https://BHDicaire.com/fr/blog/domain-name/","summary":"J\u0026rsquo;ai récemment regardé quelqu\u0026rsquo;un passer un après-midi à tenter d\u0026rsquo;enregistrer ce qui semblait être le nom de domaine parfait. La recherche s\u0026rsquo;est terminée comme la plupart d\u0026rsquo;entre elles: toutes les extensions sensées étaient prises, le .com était stationné, et la seule étape évidente était de faire une offre.\n","title":"Enregistrer un nom de domaine est la partie facile","url":"https://BHDicaire.com/fr/blog/domain-name/"},{"content_html":"\u003cp\u003eIl faut souvent servir le répertoire courant en HTTP: tester une version statique, vérifier des liens relatifs ou ouvrir un fichier que \u003ccode\u003efile://\u003c/code\u003e refuse d\u0026rsquo;afficher. Deux formules d\u0026rsquo;une ligne suffisent, et vous en avez probablement déjà une d\u0026rsquo;installée.\u003c/p\u003e\n\u003ch2 id=\"python-intégré\"\u003ePython (intégré)\u003ca class=\"heading-anchor\" href=\"#python-int%c3%a9gr%c3%a9\" aria-label=\"Link to Python (intégré)\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cdiv class=\"code-block not-prose\"\u003e\n  \u003cbutton class=\"copy-btn-inline code-block-copy\" type=\"button\" aria-label=\"Copier\" title=\"Copier\" data-copy-label=\"Copier\" data-copied-label=\"Copié\"\u003e\n    \u003csvg class=\"code-block-copy-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/\u003e\n    \u003c/svg\u003e\n    \u003cspan class=\"sr-only\"\u003eCopier\u003c/span\u003e\n  \u003c/button\u003e\n  \u003cdiv class=\"code-block-body\"\u003e\n    \u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003epython3 -m http.server \u003cspan style=\"color:#ae81ff\"\u003e8000\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\u003cp\u003eSert le répertoire de travail à \u003ccode\u003ehttp://localhost:8000\u003c/code\u003e. Python 3 est fourni avec macOS et la plupart des distributions Linux; aucune installation requise.\u003c/p\u003e\n\u003ch2 id=\"node\"\u003eNode\u003ca class=\"heading-anchor\" href=\"#node\" aria-label=\"Link to Node\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cdiv class=\"code-block not-prose\"\u003e\n  \u003cbutton class=\"copy-btn-inline code-block-copy\" type=\"button\" aria-label=\"Copier\" title=\"Copier\" data-copy-label=\"Copier\" data-copied-label=\"Copié\"\u003e\n    \u003csvg class=\"code-block-copy-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/\u003e\n    \u003c/svg\u003e\n    \u003cspan class=\"sr-only\"\u003eCopier\u003c/span\u003e\n  \u003c/button\u003e\n  \u003cdiv class=\"code-block-body\"\u003e\n    \u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003enpx http-server\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\u003cp\u003eTélécharge et exécute \u003ca href=\"https://www.npmjs.com/package/http-server\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003ccode\u003ehttp-server\u003c/code\u003e\u003c/a\u003e\n à la demande; port 8080 par défaut.\u003c/p\u003e\n\u003cp\u003eArrêtez l\u0026rsquo;un ou l\u0026rsquo;autre avec \u003ccode\u003eControl-C\u003c/code\u003e dans le terminal où il tourne.\u003c/p\u003e\n\u003ch2 id=\"une-mise-en-garde\"\u003eUne mise en garde\u003ca class=\"heading-anchor\" href=\"#une-mise-en-garde\" aria-label=\"Link to Une mise en garde\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLes deux écoutent sur toutes les interfaces réseau par défaut: n\u0026rsquo;importe qui sur votre réseau peut atteindre le répertoire tant que le serveur tourne. Gardez-le sur votre machine:\u003c/p\u003e\n\u003cdiv class=\"code-block not-prose\"\u003e\n  \u003cbutton class=\"copy-btn-inline code-block-copy\" type=\"button\" aria-label=\"Copier\" title=\"Copier\" data-copy-label=\"Copier\" data-copied-label=\"Copié\"\u003e\n    \u003csvg class=\"code-block-copy-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/\u003e\n    \u003c/svg\u003e\n    \u003cspan class=\"sr-only\"\u003eCopier\u003c/span\u003e\n  \u003c/button\u003e\n  \u003cdiv class=\"code-block-body\"\u003e\n    \u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003epython3 -m http.server \u003cspan style=\"color:#ae81ff\"\u003e8000\u003c/span\u003e --bind 127.0.0.1\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\u003cp\u003e\u003ccode\u003ehttp-server\u003c/code\u003e accepte \u003ccode\u003e-a 127.0.0.1\u003c/code\u003e pour le même effet.\u003c/p\u003e\n","date_modified":"2026-07-29T00:00:00Z","date_published":"2026-07-29T00:00:00Z","id":"https://BHDicaire.com/fr/til/local-webserver/","summary":"Il faut souvent servir le répertoire courant en HTTP: tester une version statique, vérifier des liens relatifs ou ouvrir un fichier que file:// refuse d\u0026rsquo;afficher. Deux formules d\u0026rsquo;une ligne suffisent, et vous en avez probablement déjà une d\u0026rsquo;installée.\n","title":"Un serveur web local en une ligne","url":"https://BHDicaire.com/fr/til/local-webserver/"},{"content_html":"\u003cp\u003eTrois traits horizontaux, trois usages. Le clavier n\u0026rsquo;offre que le plus court; les deux autres sont souvent oubliés ou mal employés.\u003c/p\u003e\n\u003ch2 id=\"trait-dunion--\"\u003eTrait d\u0026rsquo;union (\u003ccode\u003e-\u003c/code\u003e)\u003ca class=\"heading-anchor\" href=\"#trait-dunion--\" aria-label=\"Link to Trait d’union (-)\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLa touche à côté du \u003ccode\u003e0\u003c/code\u003e. Il relie:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLes mots composés: \u003ccode\u003eporte-clé\u003c/code\u003e, \u003ccode\u003earc-en-ciel\u003c/code\u003e, \u003ccode\u003ec'est-à-dire\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eLes mots coupés en fin de ligne, ce qui relève de la mise en page, pas de vous.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"tiret-demi-cadratin-\"\u003eTiret demi-cadratin (\u003ccode\u003e–\u003c/code\u003e)\u003ca class=\"heading-anchor\" href=\"#tiret-demi-cadratin-\" aria-label=\"Link to Tiret demi-cadratin (–)\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLa largeur d\u0026rsquo;un « n ». Il marque les intervalles et les paires:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLes intervalles, qui se lisent « de … à … »: \u003ccode\u003ep. 3–5\u003c/code\u003e, \u003ccode\u003e2020–2026\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUne relation entre deux pôles: \u003ccode\u003ele trajet Montréal–Toronto\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePour le saisir: \u003ccode\u003e⌥-\u003c/code\u003e sur macOS, \u003ccode\u003eAlt+0150\u003c/code\u003e sur Windows, \u003ccode\u003e\u0026amp;ndash;\u003c/code\u003e en HTML.\u003c/p\u003e\n\u003ch2 id=\"tiret-cadratin-\"\u003eTiret cadratin (\u003ccode\u003e—\u003c/code\u003e)\u003ca class=\"heading-anchor\" href=\"#tiret-cadratin-\" aria-label=\"Link to Tiret cadratin (—)\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLa largeur d\u0026rsquo;un « m ». C\u0026rsquo;est le tiret de la phrase:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eL\u0026rsquo;incise, encadrée d\u0026rsquo;espaces: \u003ccode\u003eLa proposition — débattue des mois — a fini par passer.\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eLe dialogue, où chaque réplique s\u0026rsquo;ouvre par un cadratin.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eEn français soigné, l\u0026rsquo;incise se marque souvent au demi-cadratin plutôt qu\u0026rsquo;au cadratin; les deux se rencontrent. Pour le saisir: \u003ccode\u003e⇧⌥-\u003c/code\u003e sur macOS, \u003ccode\u003eAlt+0151\u003c/code\u003e sur Windows, \u003ccode\u003e\u0026amp;mdash;\u003c/code\u003e en HTML.\u003c/p\u003e\n\u003ch2 id=\"choisir\"\u003eChoisir\u003ca class=\"heading-anchor\" href=\"#choisir\" aria-label=\"Link to Choisir\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeux mots, une idée: trait d\u0026rsquo;union.\u003c/li\u003e\n\u003cli\u003eUn intervalle: demi-cadratin.\u003c/li\u003e\n\u003cli\u003eUne rupture dans la phrase: cadratin (ou demi-cadratin).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"sur-ce-site\"\u003eSur ce site\u003ca class=\"heading-anchor\" href=\"#sur-ce-site\" aria-label=\"Link to Sur ce site\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eCe site active l\u0026rsquo;extension \u003ca href=\"https://gohugo.io/getting-started/configuration-markup/#goldmark\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003ccode\u003etypographer\u003c/code\u003e\u003c/a\u003e\n de Goldmark: \u003ccode\u003e--\u003c/code\u003e devient un demi-cadratin, \u003ccode\u003e---\u003c/code\u003e un cadratin, et les apostrophes droites deviennent courbes. Les guillemets français « » se saisissent toujours à la main. Saisir les vrais caractères \u003ccode\u003e–\u003c/code\u003e et \u003ccode\u003e—\u003c/code\u003e fonctionne aussi.\u003c/p\u003e\n","date_modified":"2026-07-29T00:00:00Z","date_published":"2026-07-29T00:00:00Z","id":"https://BHDicaire.com/fr/til/dashes/","summary":"Trois traits horizontaux, trois usages. Le clavier n\u0026rsquo;offre que le plus court; les deux autres sont souvent oubliés ou mal employés.\nTrait d\u0026rsquo;union (-)# La touche à côté du 0. Il relie:\n","title":"Tirets : trait d'union, demi-cadratin et cadratin","url":"https://BHDicaire.com/fr/til/dashes/"},{"content_html":"\u003cp\u003eQuiconque a travaillé avec des noms de domaine a tapé \u003ccode\u003ewhois example.com\u003c/code\u003e plus souvent qu\u0026rsquo;il ne peut le compter.\u003c/p\u003e\n\u003cp\u003eLa commande fonctionne toujours.\u003c/p\u003e\n\u003cp\u003eLe protocole derrière elle est essentiellement obsolète.\u003c/p\u003e\n\u003cp\u003eLa distinction compte, parce que l\u0026rsquo;information que vous recevez aujourd\u0026rsquo;hui n\u0026rsquo;est plus régie par le protocole \u003ca href=\"https://www.rfc-editor.org/rfc/rfc954\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eWHOIS\u003c/a\u003e\n d\u0026rsquo;origine. Pour la plupart des domaines génériques de premier niveau (gTLD), elle provient du \u003ca href=\"https://www.rfc-editor.org/rfc/rfc9082\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eRegistration Data Access Protocol (RDAP)\u003c/a\u003e\n, un remplaçant moderne normalisé par l\u0026rsquo;\u003ca href=\"https://www.ietf.org/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eInternet Engineering Task Force (IETF)\u003c/a\u003e\n et adopté par l\u0026rsquo;\u003ca href=\"https://www.icann.org/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eInternet Corporation for Assigned Names and Numbers (ICANN)\u003c/a\u003e\n.\u003c/p\u003e\n\u003cp\u003eComprendre la différence explique pourquoi les recherches de domaine se comportent autrement qu\u0026rsquo;il y a dix ans.\u003c/p\u003e\n\u003ch2 id=\"whois-répondait-au-problème-dhier\"\u003eWHOIS répondait au problème d\u0026rsquo;hier\u003ca class=\"heading-anchor\" href=\"#whois-r%c3%a9pondait-au-probl%c3%a8me-dhier\" aria-label=\"Link to WHOIS répondait au problème d’hier\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWHOIS est antérieur au web moderne.\u003c/p\u003e\n\u003cp\u003eLe protocole a d\u0026rsquo;abord été défini en 1982 dans la \u003ca href=\"https://www.rfc-editor.org/rfc/rfc812\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eRFC 812 — NICNAME/WHOIS\u003c/a\u003e\n, puis révisé dans la \u003ca href=\"https://www.rfc-editor.org/rfc/rfc954\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eRFC 954 — NICNAME/WHOIS\u003c/a\u003e\n.\u003c/p\u003e\n\u003cp\u003eSa conception reflétait un Internet beaucoup plus petit, où chaque domaine enregistré était censé exposer publiquement des coordonnées.\u003c/p\u003e\n\u003cp\u003eLe protocole est délibérément simple.\u003c/p\u003e\n\u003cdiv class=\"code-block not-prose\"\u003e\n  \u003cbutton class=\"copy-btn-inline code-block-copy\" type=\"button\" aria-label=\"Copier\" title=\"Copier\" data-copy-label=\"Copier\" data-copied-label=\"Copié\"\u003e\n    \u003csvg class=\"code-block-copy-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/\u003e\n    \u003c/svg\u003e\n    \u003cspan class=\"sr-only\"\u003eCopier\u003c/span\u003e\n  \u003c/button\u003e\n  \u003cdiv class=\"code-block-body\"\u003e\n    \u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-text\" data-lang=\"text\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eClient\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    │\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eTCP/43\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    │\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    ▼\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eServeur WHOIS\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    │\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eRéponse en texte brut\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\u003cp\u003eUn client se connecte au port TCP 43, envoie un nom de domaine et reçoit un bloc de texte non structuré.\u003c/p\u003e\n\u003cdiv class=\"code-block not-prose\"\u003e\n  \u003cbutton class=\"copy-btn-inline code-block-copy\" type=\"button\" aria-label=\"Copier\" title=\"Copier\" data-copy-label=\"Copier\" data-copied-label=\"Copié\"\u003e\n    \u003csvg class=\"code-block-copy-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/\u003e\n    \u003c/svg\u003e\n    \u003cspan class=\"sr-only\"\u003eCopier\u003c/span\u003e\n  \u003c/button\u003e\n  \u003cdiv class=\"code-block-body\"\u003e\n    \u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-text\" data-lang=\"text\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e$ whois example.com\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eDomain Name: EXAMPLE.COM\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eRegistrar: ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eCreation Date: ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eRegistrant:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e...\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\u003cp\u003eIl n\u0026rsquo;y a pas de schéma.\u003c/p\u003e\n\u003cp\u003eIl n\u0026rsquo;y a pas de format de réponse normalisé.\u003c/p\u003e\n\u003cp\u003eChaque registre décide de la façon de présenter l\u0026rsquo;information.\u003c/p\u003e\n\u003cp\u003eCette simplicité rendait WHOIS facile à implémenter. Elle rendait aussi l\u0026rsquo;automatisation inutilement difficile.\u003c/p\u003e\n\u003ch2 id=\"pourquoi-whois-devait-changer\"\u003ePourquoi WHOIS devait changer\u003ca class=\"heading-anchor\" href=\"#pourquoi-whois-devait-changer\" aria-label=\"Link to Pourquoi WHOIS devait changer\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWHOIS a accumulé une dette technique pendant des décennies.\u003c/p\u003e\n\u003cp\u003eParmi ses lacunes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003etexte brut seulement\u003c/li\u003e\n\u003cli\u003eaucun schéma normalisé\u003c/li\u003e\n\u003cli\u003edes noms de champs incohérents\u003c/li\u003e\n\u003cli\u003eaucune authentification\u003c/li\u003e\n\u003cli\u003eaucune autorisation\u003c/li\u003e\n\u003cli\u003eaucune gestion structurée des erreurs\u003c/li\u003e\n\u003cli\u003eaucune internationalisation\u003c/li\u003e\n\u003cli\u003eaucune pagination normalisée\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eL\u0026rsquo;arrivée du \u003ca href=\"https://eur-lex.europa.eu/eli/reg/2016/679/oj\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eRèglement général sur la protection des données (RGPD)\u003c/a\u003e\n de l\u0026rsquo;Union européenne a exposé une autre faiblesse.\u003c/p\u003e\n\u003cp\u003eWHOIS n\u0026rsquo;avait aucune notion d\u0026rsquo;accès différencié.\u003c/p\u003e\n\u003cp\u003eTout le monde recevait la même réponse.\u003c/p\u003e\n\u003cp\u003eParfois, cette réponse devenait presque vide.\u003c/p\u003e\n\u003cp\u003eLe protocole lui-même n\u0026rsquo;était plus en mesure de répondre aux exigences modernes de confidentialité.\u003c/p\u003e\n\u003ch2 id=\"larrivée-de-rdap\"\u003eL\u0026rsquo;arrivée de RDAP\u003ca class=\"heading-anchor\" href=\"#larriv%c3%a9e-de-rdap\" aria-label=\"Link to L’arrivée de RDAP\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLe \u003ca href=\"https://www.rfc-editor.org/rfc/rfc9082\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eRegistration Data Access Protocol (RDAP)\u003c/a\u003e\n est défini principalement par la \u003ca href=\"https://www.rfc-editor.org/rfc/rfc9082\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eRFC 9082 — Registration Data Access Protocol Query Format\u003c/a\u003e\n et la \u003ca href=\"https://www.rfc-editor.org/rfc/rfc9083\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eRFC 9083 — Registration Data Access Protocol JSON Responses\u003c/a\u003e\n.\u003c/p\u003e\n\u003cp\u003eÀ première vue, RDAP ressemble à WHOIS avec du JSON.\u003c/p\u003e\n\u003cp\u003eCette description passe à côté de l\u0026rsquo;essentiel.\u003c/p\u003e\n\u003cp\u003eRDAP introduit des capacités que WHOIS n\u0026rsquo;a jamais eues.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003etransport HTTPS\u003c/li\u003e\n\u003cli\u003eréponses JSON\u003c/li\u003e\n\u003cli\u003eschémas lisibles par la machine\u003c/li\u003e\n\u003cli\u003eréponses d\u0026rsquo;erreur normalisées\u003c/li\u003e\n\u003cli\u003eauthentification\u003c/li\u003e\n\u003cli\u003econtrôle d\u0026rsquo;accès différencié\u003c/li\u003e\n\u003cli\u003einternationalisation\u003c/li\u003e\n\u003cli\u003ehyperliens entre objets liés\u003c/li\u003e\n\u003cli\u003eextensibilité par des extensions enregistrées auprès de l\u0026rsquo;IANA\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eUne réponse simplifiée ressemble à ceci.\u003c/p\u003e\n\u003cdiv class=\"code-block not-prose\"\u003e\n  \u003cbutton class=\"copy-btn-inline code-block-copy\" type=\"button\" aria-label=\"Copier\" title=\"Copier\" data-copy-label=\"Copier\" data-copied-label=\"Copié\"\u003e\n    \u003csvg class=\"code-block-copy-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/\u003e\n    \u003c/svg\u003e\n    \u003cspan class=\"sr-only\"\u003eCopier\u003c/span\u003e\n  \u003c/button\u003e\n  \u003cdiv class=\"code-block-body\"\u003e\n    \u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-json\" data-lang=\"json\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e{\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003e\u0026#34;objectClassName\u0026#34;\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;domain\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003e\u0026#34;ldhName\u0026#34;\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;example.com\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003e\u0026#34;status\u0026#34;\u003c/span\u003e: [\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;active\u0026#34;\u003c/span\u003e],\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003e\u0026#34;events\u0026#34;\u003c/span\u003e: [\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#f92672\"\u003e\u0026#34;eventAction\u0026#34;\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;registration\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#f92672\"\u003e\u0026#34;eventDate\u0026#34;\u003c/span\u003e: \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;1995-08-14T04:00:00Z\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  ]\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\u003cp\u003eLes applications peuvent analyser ceci sans analyseurs propriétaires ni expressions régulières.\u003c/p\u003e\n\u003cp\u003eÇa n\u0026rsquo;a jamais été vrai de WHOIS.\u003c/p\u003e\n\u003ch2 id=\"petite-histoire-de-la-transition\"\u003ePetite histoire de la transition\u003ca class=\"heading-anchor\" href=\"#petite-histoire-de-la-transition\" aria-label=\"Link to Petite histoire de la transition\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eRemplacer WHOIS n\u0026rsquo;a pas été un événement unique.\u003c/p\u003e\n\u003cp\u003eCela a pris plus d\u0026rsquo;une décennie.\u003c/p\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003eAnnée\u003c/th\u003e\n          \u003cth\u003eJalon\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e2011\u003c/td\u003e\n          \u003ctd\u003eLe comité consultatif sur la sécurité et la stabilité de l\u0026rsquo;ICANN recommande de remplacer WHOIS.\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e2012\u003c/td\u003e\n          \u003ctd\u003eL\u0026rsquo;IETF entreprend le développement de RDAP au sein du groupe de travail WEIRDS.\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e2015\u003c/td\u003e\n          \u003ctd\u003eLes spécifications de base de RDAP sont publiées sous forme de RFC.\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e2017\u003c/td\u003e\n          \u003ctd\u003eL\u0026rsquo;ICANN lance un projet pilote RDAP pour les registres et les registraires.\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e2019\u003c/td\u003e\n          \u003ctd\u003eRDAP devient obligatoire pour les registres et registraires de gTLD accrédités par l\u0026rsquo;ICANN.\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e2025\u003c/td\u003e\n          \u003ctd\u003eL\u0026rsquo;ICANN commence à retirer les exigences contractuelles WHOIS pour les domaines génériques de premier niveau.\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eLe protocole a changé graduellement.\u003c/p\u003e\n\u003cp\u003eBien des utilisateurs l\u0026rsquo;ont à peine remarqué.\u003c/p\u003e\n\u003ch2 id=\"pourquoi-ca-se-comporte-autrement-que-com\"\u003ePourquoi \u003ccode\u003e.ca\u003c/code\u003e se comporte autrement que \u003ccode\u003e.com\u003c/code\u003e\u003ca class=\"heading-anchor\" href=\"#pourquoi-ca-se-comporte-autrement-que-com\" aria-label=\"Link to Pourquoi .ca se comporte autrement que .com\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eL\u0026rsquo;une des plus grandes idées fausses au sujet de l\u0026rsquo;ICANN est qu\u0026rsquo;elle gouvernerait chaque domaine de premier niveau.\u003c/p\u003e\n\u003cp\u003eCe n\u0026rsquo;est pas le cas.\u003c/p\u003e\n\u003cp\u003ePour les domaines génériques de premier niveau comme \u003ccode\u003e.com\u003c/code\u003e, \u003ccode\u003e.org\u003c/code\u003e, \u003ccode\u003e.net\u003c/code\u003e et \u003ccode\u003e.info\u003c/code\u003e, les données d\u0026rsquo;enregistrement sont régies par les politiques de l\u0026rsquo;ICANN et consultées par le \u003ca href=\"https://www.icann.org/resources/pages/rdds-2018-05-22-en\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eRegistration Data Directory Service (RDDS)\u003c/a\u003e\n au moyen de RDAP.\u003c/p\u003e\n\u003cp\u003eLe point de départ officiel est le \u003ca href=\"https://lookup.icann.org/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eservice de recherche de données d\u0026rsquo;enregistrement de l\u0026rsquo;ICANN\u003c/a\u003e\n.\u003c/p\u003e\n\u003cp\u003eLes domaines de premier niveau nationaux (ccTLD) fonctionnent différemment.\u003c/p\u003e\n\u003cp\u003eLes registres responsables de domaines comme:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e.ca\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e.fr\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e.de\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e.uk\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e.jp\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003edéfinissent leurs propres politiques d\u0026rsquo;enregistrement.\u003c/p\u003e\n\u003cp\u003eBeaucoup ont implémenté RDAP.\u003c/p\u003e\n\u003cp\u003eCertains continuent de prendre en charge WHOIS.\u003c/p\u003e\n\u003cp\u003eD\u0026rsquo;autres exposent des services de recherche propriétaires.\u003c/p\u003e\n\u003cp\u003eLes règles de divulgation varient aussi considérablement.\u003c/p\u003e\n\u003cp\u003eUne recherche sur \u003ccode\u003e.com\u003c/code\u003e et une recherche sur \u003ccode\u003e.ca\u003c/code\u003e ne devraient pas être présumées renvoyer la même information, même interrogées au moyen de RDAP.\u003c/p\u003e\n\u003cp\u003eLe protocole est normalisé.\u003c/p\u003e\n\u003cp\u003eLa politique de divulgation ne l\u0026rsquo;est pas.\u003c/p\u003e\n\u003ch2 id=\"whois-nest-pas-mort\"\u003eWHOIS n\u0026rsquo;est pas mort\u003ca class=\"heading-anchor\" href=\"#whois-nest-pas-mort\" aria-label=\"Link to WHOIS n’est pas mort\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWHOIS existe encore.\u003c/p\u003e\n\u003cp\u003eBeaucoup de registres continuent d\u0026rsquo;exploiter des services WHOIS pour la rétrocompatibilité.\u003c/p\u003e\n\u003cp\u003eLes outils en ligne de commande continuent de fonctionner parce que les registres continuent d\u0026rsquo;exposer des points d\u0026rsquo;accès WHOIS.\u003c/p\u003e\n\u003cp\u003eLa tendance de fond, cependant, est claire.\u003c/p\u003e\n\u003cp\u003eTout nouveau développement devrait viser RDAP plutôt que WHOIS.\u003c/p\u003e\n\u003ch2 id=\"conseils-pratiques\"\u003eConseils pratiques\u003ca class=\"heading-anchor\" href=\"#conseils-pratiques\" aria-label=\"Link to Conseils pratiques\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eSi vous devez occasionnellement chercher de l\u0026rsquo;information sur un domaine générique de premier niveau, commencez par le \u003ca href=\"https://lookup.icann.org/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eservice de recherche de données d\u0026rsquo;enregistrement de l\u0026rsquo;ICANN\u003c/a\u003e\n.\u003c/p\u003e\n\u003cp\u003eSi vous écrivez du logiciel, implémentez RDAP.\u003c/p\u003e\n\u003cp\u003eSi vous enquêtez sur un domaine national, attendez-vous à ce que différents registres exposent différentes informations selon différentes politiques.\u003c/p\u003e\n\u003cp\u003eCes différences sont généralement des décisions de politique plutôt que des limites du protocole.\u003c/p\u003e\n\u003ch2 id=\"références\"\u003eRéférences\u003ca class=\"heading-anchor\" href=\"#r%c3%a9f%c3%a9rences\" aria-label=\"Link to Références\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.rfc-editor.org/rfc/rfc812\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eRFC 812 — NICNAME/WHOIS\u003c/a\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.rfc-editor.org/rfc/rfc954\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eRFC 954 — NICNAME/WHOIS\u003c/a\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.rfc-editor.org/rfc/rfc9082\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eRFC 9082 — Registration Data Access Protocol (RDAP) Query Format\u003c/a\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.rfc-editor.org/rfc/rfc9083\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eRFC 9083 — Registration Data Access Protocol (RDAP) JSON Responses\u003c/a\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.ietf.org/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eInternet Engineering Task Force (IETF)\u003c/a\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.icann.org/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eInternet Corporation for Assigned Names and Numbers (ICANN)\u003c/a\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://lookup.icann.org/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eICANN Registration Data Lookup Service\u003c/a\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.icann.org/resources/pages/rdds-2018-05-22-en\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eRegistration Data Directory Service (RDDS)\u003c/a\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://eur-lex.europa.eu/eli/reg/2016/679/oj\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eRèglement général sur la protection des données (RGPD)\u003c/a\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.iana.org/assignments/rdap-extensions/rdap-extensions.xhtml\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eIANA RDAP Extensions Registry\u003c/a\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cem\u003eDernière vérification: 2026-07-29.\u003c/em\u003e\u003c/p\u003e\n","date_modified":"2026-07-29T00:00:00Z","date_published":"2026-07-29T00:00:00Z","id":"https://BHDicaire.com/fr/blog/rdap-whois/","summary":"Quiconque a travaillé avec des noms de domaine a tapé whois example.com plus souvent qu\u0026rsquo;il ne peut le compter.\nLa commande fonctionne toujours.\nLe protocole derrière elle est essentiellement obsolète.\n","title":"RDAP et WHOIS : qu'est-ce qui change vraiment?","url":"https://BHDicaire.com/fr/blog/rdap-whois/"},{"content_html":"\u003cp\u003eSi vous devez inscrire une adresse courriel dans des fichiers texte ouverts ou de la documentation, utilisez des techniques de brouillage standards pour empêcher les robots moissonneurs de l\u0026rsquo;analyser.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBrouillage lisible par l\u0026rsquo;humain:\u003c/strong\u003e écrivez-la sous la forme \u003ccode\u003ejoe42 [at] domain [dot] com\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAlias courriel fourni par GitHub:\u003c/strong\u003e \u003ccode\u003e12345678+patd42@users.noreply.github.com\u003c/code\u003e. Les robots moissonneurs ciblent rarement ces adresses, car GitHub jette le pourriel ordinaire envoyé aux adresses noreply.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFormulaires de contact tiers:\u003c/strong\u003e pointez vers un service de formulaire qui masque votre adresse et ajoute une protection anti-pourriel ou CAPTCHA.\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eTally.so, Typeform ou Google Forms:\u003c/strong\u003e créez un formulaire minimal et anonyme à trois champs (Résumé, Étapes pour reproduire, Coordonnées).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFormspree ou Web3Forms:\u003c/strong\u003e configurez un point de terminaison de formulaire HTML/Markdown léger qui achemine les messages vers votre boîte de réception tout en soustrayant votre adresse aux robots moissonneurs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"repérer-lalias-privé-fourni-par-github\"\u003eRepérer l\u0026rsquo;alias privé fourni par GitHub\u003ca class=\"heading-anchor\" href=\"#rep%c3%a9rer-lalias-priv%c3%a9-fourni-par-github\" aria-label=\"Link to Repérer l’alias privé fourni par GitHub\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eL\u0026rsquo;alias suit la structure \u003ccode\u003eID+USERNAME@users.noreply.github.com\u003c/code\u003e — par exemple, \u003ccode\u003e12345678+joe42@users.noreply.github.com\u003c/code\u003e.\u003c/p\u003e\n\u003ch3 id=\"méthode-1-linterface-de-github-la-plus-simple\"\u003eMéthode 1: l\u0026rsquo;interface de GitHub (la plus simple)\u003ca class=\"heading-anchor\" href=\"#m%c3%a9thode-1-linterface-de-github-la-plus-simple\" aria-label=\"Link to Méthode 1: l’interface de GitHub (la plus simple)\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003eConnectez-vous à GitHub et cliquez sur votre photo de profil, dans le coin supérieur droit.\u003c/li\u003e\n\u003cli\u003eSélectionnez \u003cstrong\u003eSettings\u003c/strong\u003e.\u003c/li\u003e\n\u003cli\u003eSous \u003cstrong\u003eAccess\u003c/strong\u003e, dans la barre latérale de gauche, cliquez sur \u003cstrong\u003eEmails\u003c/strong\u003e.\u003c/li\u003e\n\u003cli\u003eRegardez sous \u003cstrong\u003eKeep my email addresses private\u003c/strong\u003e.\u003c/li\u003e\n\u003cli\u003eLa boîte d\u0026rsquo;explication contient votre adresse noreply exacte.\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"méthode-2-lapi-de-github-ou-le-terminal\"\u003eMéthode 2: l\u0026rsquo;API de GitHub ou le terminal\u003ca class=\"heading-anchor\" href=\"#m%c3%a9thode-2-lapi-de-github-ou-le-terminal\" aria-label=\"Link to Méthode 2: l’API de GitHub ou le terminal\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eSi vous connaissez votre nom d\u0026rsquo;utilisateur, récupérez votre identifiant numérique unique depuis l\u0026rsquo;API de GitHub:\u003c/p\u003e\n\u003cdiv class=\"code-block not-prose\"\u003e\n  \u003cbutton class=\"copy-btn-inline code-block-copy\" type=\"button\" aria-label=\"Copier\" title=\"Copier\" data-copy-label=\"Copier\" data-copied-label=\"Copié\"\u003e\n    \u003csvg class=\"code-block-copy-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/\u003e\n    \u003c/svg\u003e\n    \u003cspan class=\"sr-only\"\u003eCopier\u003c/span\u003e\n  \u003c/button\u003e\n  \u003cdiv class=\"code-block-body\"\u003e\n    \u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ecurl -s https://api.github.com/users/patd42 | grep \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;\u0026#34;id\u0026#34;\u0026#39;\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\u003cp\u003eCherchez le nombre \u003ccode\u003e\u0026quot;id\u0026quot;\u003c/code\u003e dans la sortie (par exemple, \u003ccode\u003e12345678\u003c/code\u003e). Votre alias privé est alors:\u003c/p\u003e\n\u003cdiv class=\"code-block not-prose\"\u003e\n  \u003cbutton class=\"copy-btn-inline code-block-copy\" type=\"button\" aria-label=\"Copier\" title=\"Copier\" data-copy-label=\"Copier\" data-copied-label=\"Copié\"\u003e\n    \u003csvg class=\"code-block-copy-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/\u003e\n    \u003c/svg\u003e\n    \u003cspan class=\"sr-only\"\u003eCopier\u003c/span\u003e\n  \u003c/button\u003e\n  \u003cdiv class=\"code-block-body\"\u003e\n    \u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-text\" data-lang=\"text\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e[ID]+[USERNAME]@users.noreply.github.com\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\u003ch2 id=\"ce-quil-faut-savoir-sur-lalias-noreply\"\u003eCe qu\u0026rsquo;il faut savoir sur l\u0026rsquo;alias noreply\u003ca class=\"heading-anchor\" href=\"#ce-quil-faut-savoir-sur-lalias-noreply\" aria-label=\"Link to Ce qu’il faut savoir sur l’alias noreply\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCommits sortants:\u003c/strong\u003e pointez Git vers cette adresse (\u003ccode\u003egit config --global user.email \u0026quot;ID+USERNAME@users.noreply.github.com\u0026quot;\u003c/code\u003e) pour que votre courriel personnel n\u0026rsquo;apparaisse jamais dans l\u0026rsquo;historique Git.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLes courriels entrants sont rejetés:\u003c/strong\u003e comme \u003ccode\u003e@users.noreply.github.com\u003c/code\u003e est un pseudo-domaine, tout ce que des tiers y envoient rebondit. L\u0026rsquo;alias sert à l\u0026rsquo;attribution des commits et à la vérification d\u0026rsquo;identité, pas à recevoir des messages.\u003c/li\u003e\n\u003c/ul\u003e\n","date_modified":"2026-07-26T00:00:00Z","date_published":"2026-07-26T00:00:00Z","id":"https://BHDicaire.com/fr/blog/masking-your-email-address/","summary":"Si vous devez inscrire une adresse courriel dans des fichiers texte ouverts ou de la documentation, utilisez des techniques de brouillage standards pour empêcher les robots moissonneurs de l\u0026rsquo;analyser.\n","title":"Masquer votre adresse courriel","url":"https://BHDicaire.com/fr/blog/masking-your-email-address/"},{"content_html":"\u003cp\u003e\u003ccode\u003egit log\u003c/code\u003e conserve chaque adresse avec laquelle vous avez déjà fait un commit. La mienne était une adresse personnelle, définie une fois puis inscrite dans l\u0026rsquo;historique permanent de chaque dépôt que j\u0026rsquo;ai touché — publics et privés, copiée dans chaque clone et chaque fork. Personne ne l\u0026rsquo;a divulguée. Git l\u0026rsquo;a enregistrée par conception, parce que je ne lui avais jamais dit de s\u0026rsquo;en abstenir.\u003c/p\u003e\n\u003cp\u003eUn commit stocke une adresse d\u0026rsquo;auteur, et GitHub comme GitLab s\u0026rsquo;en servent pour attribuer le commit à votre compte. Elle est publique, et elle n\u0026rsquo;expire pas. L\u0026rsquo;effacer de l\u0026rsquo;historique après coup est coûteux et demande de la coordination; ne pas l\u0026rsquo;inscrire au départ tient en trois lignes de configuration. Ce billet fait en sorte que Git enregistre par défaut un alias noreply par hôte, sans dépendre de votre mémoire.\u003c/p\u003e\n\u003ch2 id=\"ladresse-que-chaque-hôte-vous-fournit\"\u003eL\u0026rsquo;adresse que chaque hôte vous fournit\u003ca class=\"heading-anchor\" href=\"#ladresse-que-chaque-h%c3%b4te-vous-fournit\" aria-label=\"Link to L’adresse que chaque hôte vous fournit\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eGitHub et GitLab émettent tous deux une adresse de commit noreply qui attribue les commits à votre compte sans exposer une vraie boîte de réception.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eGitHub: \u003ccode\u003eID+username@users.noreply.github.com\u003c/code\u003e, une fois l\u0026rsquo;option \u003ca href=\"https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/setting-your-commit-email-address\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eKeep my email addresses private\u003c/a\u003e\n activée.\u003c/li\u003e\n\u003cli\u003eGitLab: \u003ccode\u003eID-username@users.noreply.gitlab.com\u003c/code\u003e, affichée dans vos \u003ca href=\"https://docs.gitlab.com/ee/user/profile/#use-an-automatically-generated-private-commit-email\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eparamètres de profil\u003c/a\u003e\n.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eGitHub joint l\u0026rsquo;identifiant numérique avec un \u003ccode\u003e+\u003c/code\u003e, GitLab avec un \u003ccode\u003e-\u003c/code\u003e. Le courrier envoyé à l\u0026rsquo;une ou l\u0026rsquo;autre est jeté — elles servent à l\u0026rsquo;attribution, pas à la correspondance. \u003cem\u003eDernière vérification: 2026-07-26.\u003c/em\u003e\u003c/p\u003e\n\u003ch2 id=\"faire-de-ladresse-privée-la-valeur-par-défaut\"\u003eFaire de l\u0026rsquo;adresse privée la valeur par défaut\u003ca class=\"heading-anchor\" href=\"#faire-de-ladresse-priv%c3%a9e-la-valeur-par-d%c3%a9faut\" aria-label=\"Link to Faire de l’adresse privée la valeur par défaut\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLa définir dépôt par dépôt est l\u0026rsquo;étape que tout le monde oublie. Deux clés de configuration éliminent le besoin de s\u0026rsquo;en souvenir.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://git-scm.com/docs/git-config#Documentation/git-config.txt-useruseConfigOnly\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003ccode\u003euser.useConfigOnly\u003c/code\u003e\u003c/a\u003e\n empêche Git d\u0026rsquo;inventer une identité:\u003c/p\u003e\n\u003cdiv class=\"code-block not-prose\"\u003e\n  \u003cbutton class=\"copy-btn-inline code-block-copy\" type=\"button\" aria-label=\"Copier\" title=\"Copier\" data-copy-label=\"Copier\" data-copied-label=\"Copié\"\u003e\n    \u003csvg class=\"code-block-copy-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/\u003e\n    \u003c/svg\u003e\n    \u003cspan class=\"sr-only\"\u003eCopier\u003c/span\u003e\n  \u003c/button\u003e\n  \u003cdiv class=\"code-block-body\"\u003e\n    \u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit config --global user.useConfigOnly true\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\u003cp\u003eSans elle, quand aucun courriel n\u0026rsquo;est configuré, Git en fabrique un à partir de votre nom d\u0026rsquo;utilisateur et du nom de la machine — \u003ccode\u003euser@laptop.local\u003c/code\u003e — et l\u0026rsquo;utilise pour créer des commits en silence. Avec elle, un dépôt sans courriel configuré refuse de créer un commit tant que vous n\u0026rsquo;en définissez pas un. Le défaut silencieux devient un échec bruyant. \u003ccode\u003euseConfigOnly\u003c/code\u003e existe depuis Git 2.8 (2016); c\u0026rsquo;est la moitié durable de cette approche.\u003c/p\u003e\n\u003ch2 id=\"choisir-ladresse-selon-le-dépôt-distant\"\u003eChoisir l\u0026rsquo;adresse selon le dépôt distant\u003ca class=\"heading-anchor\" href=\"#choisir-ladresse-selon-le-d%c3%a9p%c3%b4t-distant\" aria-label=\"Link to Choisir l’adresse selon le dépôt distant\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003euseConfigOnly\u003c/code\u003e bloque le mauvais défaut. Elle ne choisit pas la bonne adresse. Une \u003ca href=\"https://git-scm.com/docs/git-config#_conditional_includes\" target=\"_blank\" rel=\"noopener noreferrer\"\u003einclusion conditionnelle\u003c/a\u003e\n le fait, en s\u0026rsquo;appuyant sur l\u0026rsquo;URL du dépôt distant:\u003c/p\u003e\n\u003cdiv class=\"code-block not-prose\"\u003e\n  \u003cbutton class=\"copy-btn-inline code-block-copy\" type=\"button\" aria-label=\"Copier\" title=\"Copier\" data-copy-label=\"Copier\" data-copied-label=\"Copié\"\u003e\n    \u003csvg class=\"code-block-copy-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/\u003e\n    \u003c/svg\u003e\n    \u003cspan class=\"sr-only\"\u003eCopier\u003c/span\u003e\n  \u003c/button\u003e\n  \u003cdiv class=\"code-block-body\"\u003e\n    \u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-ini\" data-lang=\"ini\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# ~/.gitconfig\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003e[user]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003euseConfigOnly\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003etrue\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003e[includeIf \u0026#34;hasconfig:remote.*.url:**/*github.com/**\u0026#34;]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003epath\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e~/.gitconfig-github\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003e[includeIf \u0026#34;hasconfig:remote.*.url:**/*gitlab.com/**\u0026#34;]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003epath\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e~/.gitconfig-gitlab\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\u003cdiv class=\"code-block not-prose\"\u003e\n  \u003cbutton class=\"copy-btn-inline code-block-copy\" type=\"button\" aria-label=\"Copier\" title=\"Copier\" data-copy-label=\"Copier\" data-copied-label=\"Copié\"\u003e\n    \u003csvg class=\"code-block-copy-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/\u003e\n    \u003c/svg\u003e\n    \u003cspan class=\"sr-only\"\u003eCopier\u003c/span\u003e\n  \u003c/button\u003e\n  \u003cdiv class=\"code-block-body\"\u003e\n    \u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-ini\" data-lang=\"ini\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# ~/.gitconfig-github\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003e[user]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003eemail\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e12345678+username@users.noreply.github.com\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\u003cp\u003eLe fichier GitLab reprend le même modèle avec l\u0026rsquo;adresse GitLab. \u003ccode\u003ehasconfig:remote.*.url:\u003c/code\u003e s\u0026rsquo;appuie sur les dépôts distants configurés; le motif \u003ccode\u003e**/*github.com/**\u003c/code\u003e couvre à la fois HTTPS (\u003ccode\u003ehttps://github.com/…\u003c/code\u003e) et SSH (\u003ccode\u003egit@github.com:…\u003c/code\u003e). Il nécessite Git 2.36 (avril 2022) ou une version plus récente.\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e\u003c/p\u003e\n\u003cp\u003eL\u0026rsquo;adresse suit maintenant le dépôt distant: clonez depuis GitHub et faites vos commits sous votre alias GitHub, clonez depuis GitLab et faites-les sous votre alias GitLab, sans étape par dépôt. Mes propres \u003ca href=\"https://github.com/bhdicaire/dotFiles/blob/main/dot_gitconfig\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003ccode\u003e~/.gitconfig\u003c/code\u003e\u003c/a\u003e\n et \u003ca href=\"https://github.com/bhdicaire/dotFiles/blob/main/dot_config/git/config.tmpl\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003ccode\u003e~/.config/git/config\u003c/code\u003e\u003c/a\u003e\n contiennent la version complète.\u003c/p\u003e\n\u003ch2 id=\"où-ça-cède\"\u003eOù ça cède\u003ca class=\"heading-anchor\" href=\"#o%c3%b9-%c3%a7a-c%c3%a8de\" aria-label=\"Link to Où ça cède\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eUn nouveau dépôt n\u0026rsquo;a pas encore de dépôt distant.\u003c/strong\u003e \u003ccode\u003ehasconfig:remote.*.url\u003c/code\u003e correspond aux dépôts distants qui existent. Faites \u003ccode\u003egit init\u003c/code\u003e, faites un commit avant \u003ccode\u003egit remote add\u003c/code\u003e, et aucun bloc d\u0026rsquo;hôte ne s\u0026rsquo;active — avec \u003ccode\u003euseConfigOnly\u003c/code\u003e, ce premier commit échoue. Ajoutez d\u0026rsquo;abord le dépôt distant, ou définissez le courriel localement.\u003csup id=\"fnref:2\"\u003e\u003ca href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e2\u003c/a\u003e\u003c/sup\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eInstances autohébergées et autres hôtes.\u003c/strong\u003e Les motifs \u003ccode\u003egithub.com\u003c/code\u003e et \u003ccode\u003egitlab.com\u003c/code\u003e ne visent que les services publics. Une instance GitLab autohébergée, Gitea ou Bitbucket exige son propre bloc et sa propre adresse.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLes flux qui attendent une vraie boîte de réception.\u003c/strong\u003e Les projets qui reçoivent des correctifs par courriel — le noyau Linux et les autres listes \u003ca href=\"https://git-scm.com/docs/git-send-email\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003ccode\u003egit send-email\u003c/code\u003e\u003c/a\u003e\n — ont besoin d\u0026rsquo;une adresse qui accepte les réponses. Un alias noreply est le mauvais choix là.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"ce-que-ça-ne-règle-pas\"\u003eCe que ça ne règle pas\u003ca class=\"heading-anchor\" href=\"#ce-que-%c3%a7a-ne-r%c3%a8gle-pas\" aria-label=\"Link to Ce que ça ne règle pas\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLes adresses déjà présentes dans votre historique y restent. Les corriger implique de réécrire les commits avec \u003ca href=\"https://github.com/newren/git-filter-repo\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003ccode\u003egit filter-repo\u003c/code\u003e\u003c/a\u003e\n ou de les remapper au moyen d\u0026rsquo;un \u003ca href=\"https://git-scm.com/docs/gitmailmap\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003ccode\u003e.mailmap\u003c/code\u003e\u003c/a\u003e\n, puis de forcer la publication et de recoordonner chaque clone — une opération plus lourde, avec ses propres coûts. La configuration présentée ici est la moitié économique: elle gouverne le prochain commit, pas les mille derniers. \u003ccode\u003euseConfigOnly\u003c/code\u003e mérite sa place même seule. Elle ne vous rend pas privé; elle retire à Git la permission de deviner, pour qu\u0026rsquo;une machine neuve échoue bruyamment au lieu de créer un commit sous un nom que vous n\u0026rsquo;avez pas choisi.\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eLa condition \u003ccode\u003ehasconfig:remote.*.url:\u003c/code\u003e est arrivée dans \u003ca href=\"https://github.com/git/git/blob/v2.36.0/Documentation/RelNotes/2.36.0.txt\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eGit 2.36.0\u003c/a\u003e\n (2022-04-18).\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn:2\"\u003e\n\u003cp\u003eLes inclusions conditionnelles sont évaluées au moment où Git lit la configuration, en fonction des dépôts distants présents à cet instant — pas de ceux que vous comptez ajouter plus tard.\u0026#160;\u003ca href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n","date_modified":"2026-07-26T00:00:00Z","date_published":"2026-07-26T00:00:00Z","id":"https://BHDicaire.com/fr/blog/git-commit-email-privacy/","summary":"git log conserve chaque adresse avec laquelle vous avez déjà fait un commit. La mienne était une adresse personnelle, définie une fois puis inscrite dans l\u0026rsquo;historique permanent de chaque dépôt que j\u0026rsquo;ai touché — publics et privés, copiée dans chaque clone et chaque fork. Personne ne l\u0026rsquo;a divulguée. Git l\u0026rsquo;a enregistrée par conception, parce que je ne lui avais jamais dit de s\u0026rsquo;en abstenir.\n","title":"Confidentialité du courriel de commit Git","url":"https://BHDicaire.com/fr/blog/git-commit-email-privacy/"},{"content_html":"\u003cp\u003eLes fichiers \u003ca href=\"https://editorconfig.org/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eEditorConfig\u003c/a\u003e\n imposent des réglages cohérents entre les éditeurs pour un projet donné, et ils sont \u003ca href=\"https://editorconfig.org/#download\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eassez largement pris en charge\u003c/a\u003e\n. Utile pour la collaboration: la norme de codage voyage avec le dépôt au lieu de vivre dans les préférences de l\u0026rsquo;éditeur de chacun.\u003c/p\u003e\n\u003cp\u003eApparemment, \u003ca href=\"https://www.barebones.com/support/technotes/editorconfig.html\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eBBEdit prend en charge EditorConfig nativement\u003c/a\u003e\n — sans extension.\u003c/p\u003e\n\u003ch2 id=\"comment-se-fait-la-recherche\"\u003eComment se fait la recherche\u003ca class=\"heading-anchor\" href=\"#comment-se-fait-la-recherche\" aria-label=\"Link to Comment se fait la recherche\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eÀ l\u0026rsquo;ouverture d\u0026rsquo;un fichier, les extensions EditorConfig cherchent un fichier nommé \u003ccode\u003e.editorconfig\u003c/code\u003e dans le répertoire du fichier ouvert et dans chaque répertoire parent. La recherche s\u0026rsquo;arrête quand la racine du système de fichiers est atteinte, ou quand un fichier EditorConfig contenant \u003ccode\u003eroot = true\u003c/code\u003e est trouvé.\u003c/p\u003e\n\u003cp\u003eC\u0026rsquo;est pour cette raison que le fichier au sommet d\u0026rsquo;un projet devrait commencer par \u003ccode\u003eroot = true\u003c/code\u003e — sinon la recherche continue de remonter jusque dans le répertoire personnel et récupère des réglages sans rapport.\u003c/p\u003e\n\u003ch2 id=\"clés-propres-à-bbedit\"\u003eClés propres à BBEdit\u003ca class=\"heading-anchor\" href=\"#cl%c3%a9s-propres-%c3%a0-bbedit\" aria-label=\"Link to Clés propres à BBEdit\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLes réglages de retour à la ligne automatique ne font pas partie des \u003ca href=\"https://editorconfig.org/#file-format-details\" target=\"_blank\" rel=\"noopener noreferrer\"\u003epropriétés de base\u003c/a\u003e\n, alors BBEdit définit ses propres clés préfixées par \u003ccode\u003ex-\u003c/code\u003e, dont \u003ccode\u003ex-soft-wrap-text\u003c/code\u003e, \u003ccode\u003ex-soft-wrap-mode\u003c/code\u003e et \u003ccode\u003ex-soft-wrap-limit\u003c/code\u003e. Les autres éditeurs ignorent les clés inconnues, donc ces lignes sont sans risque dans un dépôt partagé.\u003c/p\u003e\n\u003cdiv class=\"code-block not-prose\"\u003e\n  \u003cbutton class=\"copy-btn-inline code-block-copy\" type=\"button\" aria-label=\"Copier\" title=\"Copier\" data-copy-label=\"Copier\" data-copied-label=\"Copié\"\u003e\n    \u003csvg class=\"code-block-copy-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/\u003e\n    \u003c/svg\u003e\n    \u003cspan class=\"sr-only\"\u003eCopier\u003c/span\u003e\n  \u003c/button\u003e\n  \u003cdiv class=\"code-block-body\"\u003e\n    \u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-ini\" data-lang=\"ini\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003e[*]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003ex-soft-wrap-text\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e1\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003ex-soft-wrap-mode\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003eWindowWidth\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003ex-show-invisibles\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e1\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003ex-show-spaces\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e1\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\u003cp\u003eAttention aux deux clés de retour à la ligne, faciles à intervertir: \u003ccode\u003ex-soft-wrap-mode\u003c/code\u003e accepte \u003ccode\u003eCharacterWidth\u003c/code\u003e, \u003ccode\u003eWindowWidth\u003c/code\u003e ou \u003ccode\u003ePageGuide\u003c/code\u003e, tandis que \u003ccode\u003ex-soft-wrap-limit\u003c/code\u003e est un nombre \u003cem\u003eentier\u003c/em\u003e de caractères qui n\u0026rsquo;a de sens que si le mode est \u003ccode\u003eCharacterWidth\u003c/code\u003e. Écrire \u003ccode\u003ex-soft-wrap-limit = WindowWidth\u003c/code\u003e paraît plausible et ne fait rien.\u003c/p\u003e\n\u003cp\u003eLa note technique en énumère d\u0026rsquo;autres: \u003ccode\u003ex-typographers-quotes\u003c/code\u003e, \u003ccode\u003ex-balance-while-typing\u003c/code\u003e, \u003ccode\u003ex-font-name\u003c/code\u003e et \u003ccode\u003ex-font-size\u003c/code\u003e. Hormis le mode, la limite et les clés de police, ce sont toutes des valeurs booléennes.\u003c/p\u003e\n\u003ch2 id=\"ma-norme-actuelle\"\u003eMa norme actuelle\u003ca class=\"heading-anchor\" href=\"#ma-norme-actuelle\" aria-label=\"Link to Ma norme actuelle\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eVoici le \u003ca href=\"https://github.com/bhdicaire/dotFiles/blob/main/.editorconfig\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003ccode\u003e.editorconfig\u003c/code\u003e de mes dotfiles\u003c/a\u003e\n:\u003c/p\u003e\n\u003cdiv class=\"code-block not-prose\"\u003e\n  \u003cbutton class=\"copy-btn-inline code-block-copy\" type=\"button\" aria-label=\"Copier\" title=\"Copier\" data-copy-label=\"Copier\" data-copied-label=\"Copié\"\u003e\n    \u003csvg class=\"code-block-copy-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/\u003e\n    \u003c/svg\u003e\n    \u003cspan class=\"sr-only\"\u003eCopier\u003c/span\u003e\n  \u003c/button\u003e\n  \u003cdiv class=\"code-block-body\"\u003e\n    \u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-ini\" data-lang=\"ini\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003eroot\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003etrue\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003e[*]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003echarset\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003eutf-8\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003eend_of_line\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003elf\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003eindent_size\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e2\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003eindent_style\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003espace\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003einsert_final_newline\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003etrue\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003etrim_trailing_whitespace\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003etrue\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003e[*.md]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003etrim_trailing_whitespace\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003efalse\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# Makefiles REQUIRE tabs\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003e[{Makefile,makefile,GNUmakefile,*.mk}]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003eindent_style\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003etab\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# Terminfo files use tabs\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003e[*.terminfo]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003eindent_style\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003etab\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# Git config uses tabs by convention\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003e[dot_config/git/config.tmpl]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003eindent_style\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003etab\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# Vim colorschemes — third-party, don\u0026#39;t enforce\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003e[dot_vim/colors/*.vim]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003eindent_style\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003eunset\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003eindent_size\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003eunset\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003etrim_trailing_whitespace\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003eunset\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# Contributor Covenant — don\u0026#39;t enforce indent rules\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003e[.github/CODE_OF_CONDUCT.md]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003eindent_size\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003eunset\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\u003cp\u003eTrois choses à savoir sur ce fichier.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eDéfinir les valeurs par défaut une seule fois.\u003c/strong\u003e Plutôt que d\u0026rsquo;énumérer chaque extension dans un motif, \u003ccode\u003e[*]\u003c/code\u003e porte toute la base et les sections suivantes découpent les exceptions. Les sections s\u0026rsquo;appliquent dans l\u0026rsquo;ordre et les dernières l\u0026rsquo;emportent pour les fichiers qu\u0026rsquo;elles visent: les exceptions doivent donc venir après \u003ccode\u003e[*]\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLe Markdown exige de désactiver la coupe des espaces de fin.\u003c/strong\u003e Deux espaces en fin de ligne constituent un saut de ligne forcé en Markdown, et un \u003ccode\u003etrim_trailing_whitespace = true\u003c/code\u003e global les supprime silencieusement. D\u0026rsquo;où la neutralisation dans \u003ccode\u003e[*.md]\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003eunset\u003c/code\u003e est la porte de sortie pour le code tiers.\u003c/strong\u003e Le code importé — jeux de couleurs vim, code de conduite en amont — ne devrait pas être reformaté selon vos conventions maison. Mettre une propriété à \u003ccode\u003eunset\u003c/code\u003e fait retomber l\u0026rsquo;éditeur sur ses propres valeurs par défaut au lieu d\u0026rsquo;hériter de \u003ccode\u003e[*]\u003c/code\u003e, ce qui est plus propre que de deviner les réglages de l\u0026rsquo;auteur d\u0026rsquo;origine.\u003c/p\u003e\n\u003cp\u003eUn Makefile indenté avec des tabulations n\u0026rsquo;est pas une préférence de style: make exige des tabulations pour les lignes de recette, et un fichier indenté avec des espaces refuse de s\u0026rsquo;exécuter. Même raisonnement pour terminfo.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePour les utilisateurs de Windows:\u003c/strong\u003e pour créer un fichier \u003ccode\u003e.editorconfig\u003c/code\u003e depuis l\u0026rsquo;Explorateur Windows, créer un fichier nommé \u003ccode\u003e.editorconfig.\u003c/code\u003e — l\u0026rsquo;Explorateur le renommera automatiquement en \u003ccode\u003e.editorconfig\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eNote source: inspiré de \u003ca href=\"https://jeffvautin.com/2018/02/editorconfig/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eEditorConfig\u003c/a\u003e\n de Jeff Vautin.\u003c/p\u003e\n","date_modified":"2026-07-20T00:00:00Z","date_published":"2017-01-01T00:00:00Z","id":"https://BHDicaire.com/fr/til/editorconfig/","summary":"Les fichiers EditorConfig imposent des réglages cohérents entre les éditeurs pour un projet donné, et ils sont assez largement pris en charge . Utile pour la collaboration: la norme de codage voyage avec le dépôt au lieu de vivre dans les préférences de l\u0026rsquo;éditeur de chacun.\n","title":"EditorConfig : des réglages cohérents entre éditeurs","url":"https://BHDicaire.com/fr/til/editorconfig/"},{"content_html":"\u003cp\u003eLe sous-système Windows pour Linux (WSL) permet d\u0026rsquo;exécuter un environnement Debian complet directement sous Windows, ce qui en fait le compagnon idéal d\u0026rsquo;un flux de travail macOS et Proxmox.\u003c/p\u003e\n\u003ch3 id=\"1-installer-wsl-et-debian\"\u003e1. Installer WSL et Debian\u003ca class=\"heading-anchor\" href=\"#1-installer-wsl-et-debian\" aria-label=\"Link to 1. Installer WSL et Debian\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eOuvrir PowerShell en tant qu\u0026rsquo;administrateur et lancer :\u003c/p\u003e\n\u003cdiv class=\"code-block not-prose\"\u003e\n  \u003cbutton class=\"copy-btn-inline code-block-copy\" type=\"button\" aria-label=\"Copier\" title=\"Copier\" data-copy-label=\"Copier\" data-copied-label=\"Copié\"\u003e\n    \u003csvg class=\"code-block-copy-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/\u003e\n    \u003c/svg\u003e\n    \u003cspan class=\"sr-only\"\u003eCopier\u003c/span\u003e\n  \u003c/button\u003e\n  \u003cdiv class=\"code-block-body\"\u003e\n    \u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-powershell\" data-lang=\"powershell\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ewsl --install -d Debian\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\u003cp\u003eUne fois l\u0026rsquo;installation terminée, mettre le système à jour :\u003c/p\u003e\n\u003cdiv class=\"code-block not-prose\"\u003e\n  \u003cbutton class=\"copy-btn-inline code-block-copy\" type=\"button\" aria-label=\"Copier\" title=\"Copier\" data-copy-label=\"Copier\" data-copied-label=\"Copié\"\u003e\n    \u003csvg class=\"code-block-copy-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/\u003e\n    \u003c/svg\u003e\n    \u003cspan class=\"sr-only\"\u003eCopier\u003c/span\u003e\n  \u003c/button\u003e\n  \u003cdiv class=\"code-block-body\"\u003e\n    \u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003esudo apt update \u003cspan style=\"color:#f92672\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e sudo apt upgrade -y\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\u003ch3 id=\"2-installer-zsh-et-chezmoi\"\u003e2. Installer Zsh et chezmoi\u003ca class=\"heading-anchor\" href=\"#2-installer-zsh-et-chezmoi\" aria-label=\"Link to 2. Installer Zsh et chezmoi\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003ePour rester cohérent avec les configurations macOS et serveur, installer Zsh et le binaire \u003cstrong\u003echezmoi\u003c/strong\u003e [\u003ca href=\"https://chezmoi.io/install/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e2\u003c/a\u003e\n] :\u003c/p\u003e\n\u003cdiv class=\"code-block not-prose\"\u003e\n  \u003cbutton class=\"copy-btn-inline code-block-copy\" type=\"button\" aria-label=\"Copier\" title=\"Copier\" data-copy-label=\"Copier\" data-copied-label=\"Copié\"\u003e\n    \u003csvg class=\"code-block-copy-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/\u003e\n    \u003c/svg\u003e\n    \u003cspan class=\"sr-only\"\u003eCopier\u003c/span\u003e\n  \u003c/button\u003e\n  \u003cdiv class=\"code-block-body\"\u003e\n    \u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003esudo apt install zsh\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003esh -c \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003e$(\u003c/span\u003ecurl -fsLS get.chezmoi.io\u003cspan style=\"color:#66d9ef\"\u003e)\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\u003ch3 id=\"3-déployer-sa-configuration\"\u003e3. Déployer sa configuration\u003ca class=\"heading-anchor\" href=\"#3-d%c3%a9ployer-sa-configuration\" aria-label=\"Link to 3. Déployer sa configuration\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eInitialiser l\u0026rsquo;environnement à partir de son dépôt public de fichiers de configuration [\u003ca href=\"https://github.com/bhdicaire/dotFiles\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e1\u003c/a\u003e\n] :\u003c/p\u003e\n\u003cdiv class=\"code-block not-prose\"\u003e\n  \u003cbutton class=\"copy-btn-inline code-block-copy\" type=\"button\" aria-label=\"Copier\" title=\"Copier\" data-copy-label=\"Copier\" data-copied-label=\"Copié\"\u003e\n    \u003csvg class=\"code-block-copy-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/\u003e\n    \u003c/svg\u003e\n    \u003cspan class=\"sr-only\"\u003eCopier\u003c/span\u003e\n  \u003c/button\u003e\n  \u003cdiv class=\"code-block-body\"\u003e\n    \u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003echezmoi init --apply bhdicaire\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003echsh -s \u003cspan style=\"color:#66d9ef\"\u003e$(\u003c/span\u003ewhich zsh\u003cspan style=\"color:#66d9ef\"\u003e)\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\u003ch3 id=\"4-secrets-sans-interface-graphique-avec-1password\"\u003e4. Secrets sans interface graphique avec 1Password\u003ca class=\"heading-anchor\" href=\"#4-secrets-sans-interface-graphique-avec-1password\" aria-label=\"Link to 4. Secrets sans interface graphique avec 1Password\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eComme on évite les interfaces graphiques sur les serveurs et sous WSL, installer le \u003cstrong\u003eCLI 1Password\u003c/strong\u003e pour gérer les secrets par SSH ou au terminal [\u003ca href=\"https://developer.1password.com/docs/cli/get-started/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e3\u003c/a\u003e\n]. L\u0026rsquo;instance Debian sous WSL peut ainsi injecter de façon sécuritaire des variables d\u0026rsquo;environnement ou des secrets gardés en mémoire vive au moment de l\u0026rsquo;exécution, comme le fait déjà l\u0026rsquo;automatisation sur Proxmox et Raspberry Pi [\u003ca href=\"https://boranuzun.ch/blog/dotfiles-setup/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e4\u003c/a\u003e\n].\u003c/p\u003e\n\u003ch2 id=\"-sources\"\u003e🌐 Sources\u003ca class=\"heading-anchor\" href=\"#-sources\" aria-label=\"Link to 🌐 Sources\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bhdicaire/dotFiles\" target=\"_blank\" rel=\"noopener noreferrer\"\u003egithub.com - bhdicaire/dotFiles : mes fichiers de configuration gérés avec chezmoi\u003c/a\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://chezmoi.io/install/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003echezmoi.io - Install\u003c/a\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://developer.1password.com/docs/cli/get-started/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003edeveloper.1password.com - Get started with 1Password CLI\u003c/a\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://boranuzun.ch/blog/dotfiles-setup/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eboranuzun.ch - ~/how i manage my dotfiles - Boran UZUN\u003c/a\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003chr\u003e\n","date_modified":"2026-07-20T00:00:00Z","date_published":"2021-03-12T00:00:00Z","id":"https://BHDicaire.com/fr/til/wsl/","summary":"Le sous-système Windows pour Linux (WSL) permet d\u0026rsquo;exécuter un environnement Debian complet directement sous Windows, ce qui en fait le compagnon idéal d\u0026rsquo;un flux de travail macOS et Proxmox.\n","title":"Sous-système Windows pour Linux (WSL)","url":"https://BHDicaire.com/fr/til/wsl/"},{"content_html":"\u003cp\u003e\u003ca href=\"https://www.chezmoi.io/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003echezmoi\u003c/a\u003e\n gère les dotfiles sur plusieurs machines à partir d\u0026rsquo;un seul dépôt git. Contrairement à une forêt de liens symboliques, il conserve un \u003cem\u003eétat source\u003c/em\u003e distinct du répertoire personnel et matérialise les fichiers à leur place — c\u0026rsquo;est ce qui rend gérables les différences entre machines et les secrets.\u003c/p\u003e\n\u003cp\u003eMa configuration se trouve sur \u003ca href=\"https://github.com/bhdicaire/dotFiles\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ebhdicaire/dotFiles\u003c/a\u003e\n.\u003c/p\u003e\n\u003ch2 id=\"la-boucle-quotidienne\"\u003eLa boucle quotidienne\u003ca class=\"heading-anchor\" href=\"#la-boucle-quotidienne\" aria-label=\"Link to La boucle quotidienne\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cdiv class=\"code-block not-prose\"\u003e\n  \u003cbutton class=\"copy-btn-inline code-block-copy\" type=\"button\" aria-label=\"Copier\" title=\"Copier\" data-copy-label=\"Copier\" data-copied-label=\"Copié\"\u003e\n    \u003csvg class=\"code-block-copy-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/\u003e\n    \u003c/svg\u003e\n    \u003cspan class=\"sr-only\"\u003eCopier\u003c/span\u003e\n  \u003c/button\u003e\n  \u003cdiv class=\"code-block-body\"\u003e\n    \u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-sh\" data-lang=\"sh\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003echezmoi add ~/.zshrc      \u003cspan style=\"color:#75715e\"\u003e# commencer à gérer un fichier existant\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003echezmoi edit ~/.zshrc     \u003cspan style=\"color:#75715e\"\u003e# modifier la source, pas la cible\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003echezmoi diff              \u003cspan style=\"color:#75715e\"\u003e# prévisualiser ce qui changerait dans $HOME\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003echezmoi -v apply          \u003cspan style=\"color:#75715e\"\u003e# écrire les changements\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\u003cp\u003e\u003ccode\u003echezmoi cd\u003c/code\u003e ouvre un shell dans le répertoire source, qui est un dépôt git ordinaire:\u003c/p\u003e\n\u003cdiv class=\"code-block not-prose\"\u003e\n  \u003cbutton class=\"copy-btn-inline code-block-copy\" type=\"button\" aria-label=\"Copier\" title=\"Copier\" data-copy-label=\"Copier\" data-copied-label=\"Copié\"\u003e\n    \u003csvg class=\"code-block-copy-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/\u003e\n    \u003c/svg\u003e\n    \u003cspan class=\"sr-only\"\u003eCopier\u003c/span\u003e\n  \u003c/button\u003e\n  \u003cdiv class=\"code-block-body\"\u003e\n    \u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-sh\" data-lang=\"sh\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003echezmoi cd\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit add .\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit commit -m \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;chore: update zsh config\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit push\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eexit\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\u003cp\u003eSur une autre machine, récupérer et appliquer en une étape:\u003c/p\u003e\n\u003cdiv class=\"code-block not-prose\"\u003e\n  \u003cbutton class=\"copy-btn-inline code-block-copy\" type=\"button\" aria-label=\"Copier\" title=\"Copier\" data-copy-label=\"Copier\" data-copied-label=\"Copié\"\u003e\n    \u003csvg class=\"code-block-copy-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/\u003e\n    \u003c/svg\u003e\n    \u003cspan class=\"sr-only\"\u003eCopier\u003c/span\u003e\n  \u003c/button\u003e\n  \u003cdiv class=\"code-block-body\"\u003e\n    \u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-sh\" data-lang=\"sh\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003echezmoi update -v\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\u003ch2 id=\"le-nom-des-fichiers-est-la-configuration\"\u003eLe nom des fichiers est la configuration\u003ca class=\"heading-anchor\" href=\"#le-nom-des-fichiers-est-la-configuration\" aria-label=\"Link to Le nom des fichiers est la configuration\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLe répertoire source ne contient pas \u003ccode\u003e.zshrc\u003c/code\u003e mais \u003ccode\u003edot_zshrc\u003c/code\u003e. Les attributs sont encodés dans le nom du fichier, ce qui explique pourquoi l\u0026rsquo;arborescence source paraît étrange au début, et pourquoi les outils qui se fient aux extensions ont besoin d\u0026rsquo;aide.\u003c/p\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003ePréfixe\u003c/th\u003e\n          \u003cth\u003eEffet\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ccode\u003edot_\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eRenommer avec un point initial: \u003ccode\u003edot_zshrc\u003c/code\u003e → \u003ccode\u003e.zshrc\u003c/code\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ccode\u003eprivate_\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eRetirer les permissions groupe et autres\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ccode\u003ereadonly_\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eRetirer les permissions d\u0026rsquo;écriture\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ccode\u003eexecutable_\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eAjouter les permissions d\u0026rsquo;exécution\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ccode\u003esymlink_\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eCréer un lien symbolique au lieu d\u0026rsquo;un fichier\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ccode\u003eencrypted_\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eStocker le fichier chiffré dans l\u0026rsquo;état source\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ccode\u003eexact_\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eSur un répertoire, supprimer tout ce que chezmoi ne gère pas\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ccode\u003ecreate_\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eCréer si absent, puis ne plus y toucher\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ccode\u003erun_\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eTraiter le contenu comme un script à exécuter\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ccode\u003eliteral_\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eArrêter l\u0026rsquo;analyse des préfixes — pour un fichier réellement nommé \u003ccode\u003edot_foo\u003c/code\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eLes préfixes se combinent: \u003ccode\u003eprivate_dot_ssh\u003c/code\u003e est donc un répertoire \u003ccode\u003e.ssh\u003c/code\u003e aux permissions restreintes. Le suffixe \u003ccode\u003e.tmpl\u003c/code\u003e marque un fichier comme gabarit.\u003c/p\u003e\n\u003cp\u003eLes scripts combinent \u003ccode\u003erun_\u003c/code\u003e avec \u003ccode\u003eonce_\u003c/code\u003e ou \u003ccode\u003eonchange_\u003c/code\u003e: \u003ccode\u003erun_once_install-packages.sh\u003c/code\u003e s\u0026rsquo;exécute une seule fois par machine, tandis que \u003ccode\u003erun_onchange_\u003c/code\u003e se relance dès que son contenu change — la façon habituelle de réinstaller des paquets après modification d\u0026rsquo;un Brewfile.\u003c/p\u003e\n\u003ch2 id=\"différences-entre-machines\"\u003eDifférences entre machines\u003ca class=\"heading-anchor\" href=\"#diff%c3%a9rences-entre-machines\" aria-label=\"Link to Différences entre machines\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eC\u0026rsquo;est la raison de préférer chezmoi aux liens symboliques. Un fichier \u003ccode\u003e.tmpl\u003c/code\u003e est un gabarit Go, avec les caractéristiques de la machine à disposition:\u003c/p\u003e\n\u003cdiv class=\"code-block not-prose\"\u003e\n  \u003cbutton class=\"copy-btn-inline code-block-copy\" type=\"button\" aria-label=\"Copier\" title=\"Copier\" data-copy-label=\"Copier\" data-copied-label=\"Copié\"\u003e\n    \u003csvg class=\"code-block-copy-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/\u003e\n    \u003c/svg\u003e\n    \u003cspan class=\"sr-only\"\u003eCopier\u003c/span\u003e\n  \u003c/button\u003e\n  \u003cdiv class=\"code-block-body\"\u003e\n    \u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-gotmpl\" data-lang=\"gotmpl\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e{{\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eeq\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003e.chezmoi.os\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;darwin\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#75715e\"\u003e}}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eexport HOMEBREW_PREFIX=\u0026#34;/opt/homebrew\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e{{\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eelse\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eeq\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003e.chezmoi.os\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;linux\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#75715e\"\u003e}}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eexport HOMEBREW_PREFIX=\u0026#34;/home/linuxbrew/.linuxbrew\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e{{\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eend\u003c/span\u003e \u003cspan style=\"color:#75715e\"\u003e}}\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\u003cp\u003e\u003ccode\u003echezmoi data\u003c/code\u003e affiche tout ce qui est disponible dans les gabarits — système, architecture, nom d\u0026rsquo;hôte, nom d\u0026rsquo;utilisateur, plus les variables que vous définissez vous-même.\u003c/p\u003e\n\u003ch2 id=\"les-secrets-restent-dans-1password\"\u003eLes secrets restent dans 1Password\u003ca class=\"heading-anchor\" href=\"#les-secrets-restent-dans-1password\" aria-label=\"Link to Les secrets restent dans 1Password\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLes gabarits peuvent interroger un gestionnaire de mots de passe: le secret est récupéré au moment de l\u0026rsquo;application et n\u0026rsquo;atterrit jamais dans le dépôt. Avec le \u003ca href=\"/fr/blog/1password-secrets/\"\u003eCLI 1Password\u003c/a\u003e\n déjà configuré, \u003ccode\u003eonepasswordRead\u003c/code\u003e accepte la même référence \u003ccode\u003eop://\u003c/code\u003e:\u003c/p\u003e\n\u003cdiv class=\"code-block not-prose\"\u003e\n  \u003cbutton class=\"copy-btn-inline code-block-copy\" type=\"button\" aria-label=\"Copier\" title=\"Copier\" data-copy-label=\"Copier\" data-copied-label=\"Copié\"\u003e\n    \u003csvg class=\"code-block-copy-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/\u003e\n    \u003c/svg\u003e\n    \u003cspan class=\"sr-only\"\u003eCopier\u003c/span\u003e\n  \u003c/button\u003e\n  \u003cdiv class=\"code-block-body\"\u003e\n    \u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-gotmpl\" data-lang=\"gotmpl\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eexport GITHUB_TOKEN=\u0026#34;\u003cspan style=\"color:#75715e\"\u003e{{\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eonepasswordRead\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;op://Production/GitHub/token\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#75715e\"\u003e}}\u003c/span\u003e\u0026#34;\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\u003cp\u003echezmoi expose aussi \u003ccode\u003eonepassword\u003c/code\u003e pour un élément entier en données structurées, \u003ccode\u003eonepasswordDetailsFields\u003c/code\u003e pour les champs indexés par nom, et \u003ccode\u003eonepasswordDocument\u003c/code\u003e pour les fichiers stockés.\u003c/p\u003e\n\u003cp\u003eUne distinction mérite d\u0026rsquo;être posée clairement. \u003ccode\u003eop run\u003c/code\u003e garde le secret hors du fichier: le fichier contient la référence \u003ccode\u003eop://\u003c/code\u003e et la résolution se fait à l\u0026rsquo;exécution, à chaque fois. Un gabarit chezmoi résout au moment de l\u0026rsquo;\u003cem\u003eapplication\u003c/em\u003e et écrit le secret réel sur le disque dans \u003ccode\u003e$HOME\u003c/code\u003e. C\u0026rsquo;est le bon compromis pour une valeur littérale exigée par un fichier de configuration incapable d\u0026rsquo;appeler \u003ccode\u003eop\u003c/code\u003e lui-même; mais pour tout ce qu\u0026rsquo;un shell peut résoudre à la demande, exporter la référence et utiliser \u003ccode\u003eop run\u003c/code\u003e laisse moins de traces sur le disque.\u003c/p\u003e\n\u003cp\u003eDans les deux cas, le dépôt source ne contient que la référence, ce qui le rend sûr à publier.\u003c/p\u003e\n\u003ch2 id=\"une-nouvelle-machine\"\u003eUne nouvelle machine\u003ca class=\"heading-anchor\" href=\"#une-nouvelle-machine\" aria-label=\"Link to Une nouvelle machine\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cdiv class=\"code-block not-prose\"\u003e\n  \u003cbutton class=\"copy-btn-inline code-block-copy\" type=\"button\" aria-label=\"Copier\" title=\"Copier\" data-copy-label=\"Copier\" data-copied-label=\"Copié\"\u003e\n    \u003csvg class=\"code-block-copy-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/\u003e\n    \u003c/svg\u003e\n    \u003cspan class=\"sr-only\"\u003eCopier\u003c/span\u003e\n  \u003c/button\u003e\n  \u003cdiv class=\"code-block-body\"\u003e\n    \u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-sh\" data-lang=\"sh\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003esh -c \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003e$(\u003c/span\u003ecurl -fsLS get.chezmoi.io\u003cspan style=\"color:#66d9ef\"\u003e)\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\u003c/span\u003e -- init --apply bhdicaire/dotFiles\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\u003cp\u003eCette commande installe chezmoi, clone le dépôt et l\u0026rsquo;applique d\u0026rsquo;un coup. La forme abrégée se développe en URL GitHub — et elle fonctionne malgré la majuscule de \u003ccode\u003edotFiles\u003c/code\u003e. Pour tout autre hébergeur, utiliser la forme complète \u003ccode\u003ehttps://…git\u003c/code\u003e.\u003c/p\u003e\n\u003ch2 id=\"le-compromis\"\u003eLe compromis\u003ca class=\"heading-anchor\" href=\"#le-compromis\" aria-label=\"Link to Le compromis\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eL\u0026rsquo;indirection est réelle: on modifie \u003ccode\u003e~/.local/share/chezmoi/dot_zshrc\u003c/code\u003e et non \u003ccode\u003e~/.zshrc\u003c/code\u003e, et l\u0026rsquo;oublier revient à éditer un fichier que le prochain \u003ccode\u003eapply\u003c/code\u003e écrasera. \u003ccode\u003echezmoi edit\u003c/code\u003e existe précisément pour éviter cela. En échange: les gabarits, le chiffrement, et une seule commande pour monter une nouvelle machine.\u003c/p\u003e\n\u003cp\u003eUne conséquence pratique: comme les attributs masquent la véritable extension, les outils d\u0026rsquo;édition qui se basent sur le type de fichier ne reconnaissent pas \u003ccode\u003edot_zshrc\u003c/code\u003e comme du shell. Cela vaut pour \u003ca href=\"/fr/til/editorconfig/\"\u003eEditorConfig\u003c/a\u003e\n, qui a besoin de sections explicites pour la convention de nommage de chezmoi.\u003c/p\u003e\n","date_modified":"2026-07-20T00:00:00Z","date_published":"2026-02-04T00:00:00Z","id":"https://BHDicaire.com/fr/til/chezmoi/","summary":"chezmoi gère les dotfiles sur plusieurs machines à partir d\u0026rsquo;un seul dépôt git. Contrairement à une forêt de liens symboliques, il conserve un état source distinct du répertoire personnel et matérialise les fichiers à leur place — c\u0026rsquo;est ce qui rend gérables les différences entre machines et les secrets.\n","title":"chezmoi : gérer ses dotfiles sur plusieurs machines","url":"https://BHDicaire.com/fr/til/chezmoi/"},{"content_html":"\u003cblockquote\u003e\n    \u003cp\u003e\u003cstrong\u003eCeci n’est pas un avis juridique.\u003c/strong\u003e J’exploite un site personnel depuis Montréal; je ne suis pas avocat. Voici une carte du terrain, à jour en juillet 2026, avec des liens vers les sources primaires pour que vous puissiez vérifier. Le droit d’auteur a bougé considérablement au premier semestre 2026 — voyez les dates des décisions citées. Si la question compte pour votre entreprise, payez un vrai avocat.\u003c/p\u003e\n\n  \u003c/blockquote\u003e\u003cp\u003eLa violation du droit d’auteur, c’est l’exercice de l’un des droits exclusifs du titulaire — reproduction, distribution, exécution publique, communication au public, adaptation — sans autorisation et sans qu’une exception légale ne le couvre.\u003c/p\u003e\n\u003cp\u003eCette définition est ennuyeuse et à peu près universelle. Ce qui ne l’est pas, c’est tout ce qui en découle: quelles utilisations non autorisées sont excusées, ce que votre hébergeur doit faire quand quelqu’un se plaint, et combien vous risquez de perdre. Ces éléments diffèrent assez entre le Canada, les États-Unis et l’Union européenne pour qu’un conseil rédigé pour une juridiction soit couramment faux dans les autres. La majeure partie du contenu « conformité DMCA » que l’on trouve en ligne est écrite pour les États-Unis et présentée comme si c’était le droit partout.\u003c/p\u003e\n\u003ch2 id=\"trois-juridictions-trois-formes-différentes\"\u003eTrois juridictions, trois formes différentes\u003ca class=\"heading-anchor\" href=\"#trois-juridictions-trois-formes-diff%c3%a9rentes\" aria-label=\"Link to Trois juridictions, trois formes différentes\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch3 id=\"canada-avis-et-avis\"\u003eCanada: avis et \u003cem\u003eavis\u003c/em\u003e\u003ca class=\"heading-anchor\" href=\"#canada-avis-et-avis\" aria-label=\"Link to Canada: avis et avis\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eCela surprend, alors commençons par là: \u003cstrong\u003ele Canada n’a pas de régime de retrait sur avis.\u003c/strong\u003e Il a un régime d’\u003cstrong\u003eavis et avis\u003c/strong\u003e, aux \u003ca href=\"https://laws-lois.justice.gc.ca/fra/lois/C-42/section-41.26.html\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eart. 41.25 à 41.27\u003c/a\u003e\n de la \u003cem\u003eLoi sur le droit d’auteur\u003c/em\u003e, en vigueur depuis le 2 janvier 2015.\u003c/p\u003e\n\u003cp\u003eLorsqu’un titulaire envoie un avis conforme, l’hébergeur ou le FSI canadien doit le transmettre à l’abonné et conserver pendant six mois les registres permettant de l’identifier. C’est toute l’obligation. \u003cstrong\u003eRien dans la Loi n’exige de retirer quoi que ce soit.\u003c/strong\u003e Le retrait, s’il a lieu, est volontaire ou contractuel.\u003c/p\u003e\n\u003cp\u003eL’immunité d’hébergement de l’\u003ca href=\"https://laws-lois.justice.gc.ca/fra/lois/C-42/section-31.1.html\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eart. 31.1(4)\u003c/a\u003e\n fonctionne aussi autrement: l’hébergeur la perd lorsqu’il a connaissance d’une \u003cstrong\u003edécision judiciaire\u003c/strong\u003e concluant que le contenu stocké est contrefaisant — pas lorsqu’un titulaire envoie une lettre. Recevoir un avis ne vous retire pas votre protection.\u003c/p\u003e\n\u003cp\u003eDeux autres particularités canadiennes à retenir:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eL’utilisation équitable est une liste fermée.\u003c/strong\u003e Contrairement au \u003cem\u003efair use\u003c/em\u003e américain, qui s’ouvre sur « des fins telles que », l’utilisation équitable canadienne ne couvre que huit fins énumérées: recherche, étude privée, éducation, parodie, satire (art. 29), critique, compte rendu (art. 29.1) et communication de nouvelles (art. 29.2). La critique, le compte rendu et la communication de nouvelles exigent la mention de la source. Un usage qui n’entre dans aucune des huit ne peut pas être équitable, si transformatif soit-il. L’arrêt \u003cem\u003e\u003ca href=\"https://www.canlii.org/fr/ca/csc/doc/2004/2004csc13/2004csc13.html\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eCCH Canadienne c. Barreau du Haut-Canada\u003c/a\u003e\n\u003c/em\u003e, 2004 CSC 13, applique ensuite un test d’équité à six facteurs — et a établi que l’utilisation équitable est un \u003cstrong\u003edroit des utilisateurs\u003c/strong\u003e, et non un simple moyen de défense.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLes dommages-intérêts préétablis sont modestes pour la violation non commerciale\u003c/strong\u003e: de 100 $ à 5 000 $ \u003ca href=\"https://laws-lois.justice.gc.ca/fra/lois/C-42/section-38.1.html\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eau total\u003c/a\u003e\n — pour toutes les œuvres et toutes les procédures entre les mêmes parties — contre 500 $ à 20 000 $ \u003cem\u003epar œuvre\u003c/em\u003e pour la violation commerciale. Comparez au plafond américain de 150 000 $ par œuvre en cas de violation délibérée: c’est l’écart le plus frappant de ce billet.\u003c/p\u003e\n\u003cp\u003eDepuis le 13 décembre 2018, un avis ne peut contenir ni offre de règlement ni demande de paiement ou de renseignements personnels (art. 41.25(3)). Un avis qui en contient est non conforme et ne déclenche aucune obligation. Cette modification existe parce que des chasseurs de droits ont passé trois ans à utiliser les FSI canadiens comme service de livraison de factures spéculatives.\u003c/p\u003e\n\u003ch3 id=\"états-unis-le-marché-du-dmca\"\u003eÉtats-Unis: le marché du DMCA\u003ca class=\"heading-anchor\" href=\"#%c3%a9tats-unis-le-march%c3%a9-du-dmca\" aria-label=\"Link to États-Unis: le marché du DMCA\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eLe \u003ca href=\"https://www.law.cornell.edu/uscode/text/17/512\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e17 U.S.C. § 512\u003c/a\u003e\n offre quatre régimes d’exonération — simple transport, mise en cache, stockage à la demande d’un utilisateur, et outils de localisation — et le marché est explicite: respectez la procédure et vous obtenez l’immunité pécuniaire pour les violations de vos utilisateurs.\u003c/p\u003e\n\u003cp\u003eLes conditions qui comptent pour un site hébergeant du contenu d’utilisateurs:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eUn agent désigné\u003c/strong\u003e, publié sur votre site \u003cem\u003eet\u003c/em\u003e enregistré auprès du Copyright Office via son \u003ca href=\"https://www.copyright.gov/dmca-directory/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003erépertoire électronique\u003c/a\u003e\n.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eUne politique sur les récidivistes\u003c/strong\u003e au sens du § 512(i), que vous appliquez réellement et que vous communiquez aux utilisateurs.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eUn retrait diligent\u003c/strong\u003e dès que vous avez une connaissance effective, ou manifeste, d’un contenu contrefaisant précis.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAucun bénéfice financier direct\u003c/strong\u003e tiré d’une activité contrefaisante que vous avez le droit et la capacité de contrôler.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"union-européenne-pas-de-dmca-deux-régimes-superposés\"\u003eUnion européenne: pas de DMCA, deux régimes superposés\u003ca class=\"heading-anchor\" href=\"#union-europ%c3%a9enne-pas-de-dmca-deux-r%c3%a9gimes-superpos%c3%a9s\" aria-label=\"Link to Union européenne: pas de DMCA, deux régimes superposés\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eL’UE n’a pas d’équivalent unique. Elle en a deux.\u003c/p\u003e\n\u003cp\u003eLe \u003cstrong\u003erèglement sur les services numériques\u003c/strong\u003e (\u003ca href=\"https://eur-lex.europa.eu/eli/reg/2022/2065/oj/fra\" target=\"_blank\" rel=\"noopener noreferrer\"\u003erèglement (UE) 2022/2065\u003c/a\u003e\n), pleinement applicable depuis le 17 février 2024, a absorbé les exonérations de l’ancienne directive sur le commerce électronique: l’immunité d’hébergement de l’art. 14 est désormais l’\u003cstrong\u003eart. 6\u003c/strong\u003e, et l’interdiction d’obligation générale de surveillance, l’\u003cstrong\u003eart. 8\u003c/strong\u003e. Son mécanisme de notification et action (art. 16) s’applique à \u003cem\u003etout\u003c/em\u003e hébergeur, sans exemption de taille, et une notification conforme confère la connaissance effective au sens de l’art. 6.\u003c/p\u003e\n\u003cp\u003eLa \u003cstrong\u003edirective sur le droit d’auteur dans le marché unique numérique\u003c/strong\u003e (\u003ca href=\"https://eur-lex.europa.eu/eli/dir/2019/790/oj/fra\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e2019/790\u003c/a\u003e\n), art. 17, est le régime agressif, mais il ne vise que les « fournisseurs de services de partage de contenus en ligne » — ceux dont l’objectif principal est de stocker et de donner accès à une \u003cem\u003equantité importante\u003c/em\u003e d’œuvres protégées, organisées et promues à des fins lucratives. Ces fournisseurs doivent obtenir des licences, filtrer, et empêcher la réapparition des contenus. Wikipédia, les dépôts de logiciels libres, les places de marché, l’infonuagique B2B et le stockage personnel en sont expressément exclus. \u003cstrong\u003eUn blogue avec commentaires n’est pas un tel fournisseur.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eEt il n’existe pas de \u003cem\u003efair use\u003c/em\u003e européen. L’\u003ca href=\"https://eur-lex.europa.eu/eli/dir/2001/29/oj/fra\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eart. 5 de la directive InfoSoc\u003c/a\u003e\n est un menu exhaustif, en grande partie facultatif pour les États membres — d’où une liberté de panorama admise en Allemagne et problématique en France. La Cour de justice a dit clairement que les droits fondamentaux ne peuvent pas créer d’exception hors de cette liste (\u003cem\u003ePelham\u003c/em\u003e, \u003cem\u003eFunke Medien\u003c/em\u003e, \u003cem\u003eSpiegel Online\u003c/em\u003e, tous du 29 juillet 2019).\u003c/p\u003e\n\u003ch3 id=\"la-comparaison-en-un-tableau\"\u003eLa comparaison en un tableau\u003ca class=\"heading-anchor\" href=\"#la-comparaison-en-un-tableau\" aria-label=\"Link to La comparaison en un tableau\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e\u003c/th\u003e\n          \u003cth\u003eCanada\u003c/th\u003e\n          \u003cth\u003eÉtats-Unis\u003c/th\u003e\n          \u003cth\u003eUnion européenne\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eDevoir de l’hébergeur sur avis\u003c/td\u003e\n          \u003ctd\u003eTransmettre; conserver les registres. \u003cstrong\u003eAucun retrait obligatoire\u003c/strong\u003e\u003c/td\u003e\n          \u003ctd\u003eRetrait diligent, pour conserver l’immunité du § 512\u003c/td\u003e\n          \u003ctd\u003eAgir; une notification valide (art. 16) vaut connaissance\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eImmunité perdue quand\u003c/td\u003e\n          \u003ctd\u003eL’hébergeur connaît une \u003cstrong\u003edécision judiciaire\u003c/strong\u003e\u003c/td\u003e\n          \u003ctd\u003eConnaissance effective ou manifeste d’un contenu précis\u003c/td\u003e\n          \u003ctd\u003eConnaissance effective (art. 6)\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eException souple\u003c/td\u003e\n          \u003ctd\u003eUtilisation équitable — \u003cstrong\u003eliste fermée de 8\u003c/strong\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003cem\u003eFair use\u003c/em\u003e — ouvert\u003c/td\u003e\n          \u003ctd\u003e\u003cstrong\u003ePas de \u003cem\u003efair use\u003c/em\u003e\u003c/strong\u003e; liste fermée, souvent facultative\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eDommages préétablis\u003c/td\u003e\n          \u003ctd\u003e100 $ – 5 000 $ au total (non commercial)\u003c/td\u003e\n          \u003ctd\u003eJusqu’à 150 000 $ par œuvre (délibéré)\u003c/td\u003e\n          \u003ctd\u003ePas de régime unifié à l’échelle de l’UE\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eDurée\u003c/td\u003e\n          \u003ctd\u003eVie + 70 (depuis le 30 déc. 2022)\u003c/td\u003e\n          \u003ctd\u003eVie + 70\u003c/td\u003e\n          \u003ctd\u003eVie + 70\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2 id=\"lexonération-et-la-part-de-chacun\"\u003eL’exonération, et la part de chacun\u003ca class=\"heading-anchor\" href=\"#lexon%c3%a9ration-et-la-part-de-chacun\" aria-label=\"Link to L’exonération, et la part de chacun\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eL’exonération de responsabilité n’est pas un statut que l’on possède. C’est une \u003cstrong\u003edéfense à laquelle on se qualifie en se comportant d’une façon précise\u003c/strong\u003e — et que l’on peut perdre par simple paperasse.\u003c/p\u003e\n\u003cp\u003eL’erreur la plus courante aux États-Unis est celle que personne n’attend: \u003cstrong\u003el’enregistrement de votre agent auprès du Copyright Office expire tous les trois ans.\u003c/strong\u003e Laissez-le échoir et vous n’avez plus de protection au titre du § 512(c), sans qu’aucun argument sur votre connaissance ou votre bonne conduite ne puisse aider: la condition préalable n’est simplement pas remplie. Mettez le renouvellement à l’agenda, pas dans votre mémoire. L’ancien répertoire papier est hors service depuis fin 2017.\u003c/p\u003e\n\u003cp\u003eLes responsabilités se répartissent ainsi:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLes titulaires de droits\u003c/strong\u003e doivent envoyer des avis réellement conformes — identifier l’œuvre, identifier le contenu de façon assez précise pour le localiser, attester de leur bonne foi sous peine de parjure. Aux États-Unis, ils doivent aussi \u003cem\u003eenvisager le fair use avant l’envoi\u003c/em\u003e, selon \u003cem\u003e\u003ca href=\"https://www.eff.org/cases/lenz-v-universal\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eLenz c. Universal\u003c/a\u003e\n\u003c/em\u003e (9e circuit, 2016). Sachez que la contrainte est faible: le critère est subjectif, de sorte qu’un expéditeur à la croyance déraisonnable mais sincère n’engage pas sa responsabilité au titre du § 512(f). Ne bâtissez pas votre stratégie sur ce recours.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLes intermédiaires\u003c/strong\u003e exécutent la procédure: recevoir, apprécier, agir, informer les deux parties, et respecter le délai de contre-avis. Selon le § 512(g), le contenu est rétabli entre \u003cstrong\u003e10 et 14 jours ouvrables\u003c/strong\u003e après un contre-avis, sauf si le plaignant intente une action. Respecter ce calendrier est ce qui vous protège d’être poursuivi par votre propre utilisateur pour avoir retiré son contenu.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLes utilisateurs\u003c/strong\u003e qui déposent un contre-avis devraient comprendre ce qu’ils signent: le § 512(g)(3) exige de consentir à la compétence d’un tribunal fédéral américain. Pour une personne au Canada, contester un retrait revient à s’engager dans un litige aux États-Unis. Cette asymétrie explique en pratique pourquoi tant de contre-avis fondés ne sont jamais déposés.\u003c/p\u003e\n\u003ch3 id=\"la-question-de-la-surveillance-que-presque-tout-le-monde-comprend-de-travers\"\u003eLa question de la surveillance, que presque tout le monde comprend de travers\u003ca class=\"heading-anchor\" href=\"#la-question-de-la-surveillance-que-presque-tout-le-monde-comprend-de-travers\" aria-label=\"Link to La question de la surveillance, que presque tout le monde comprend de travers\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eDes conseils qui circulent en ligne — dont la page à l’origine de ce billet — recommandent d’éviter d’avoir connaissance des contenus contrefaisants « par exemple en mettant en place des outils de filtrage ou de surveillance ».\u003c/p\u003e\n\u003cp\u003eC’est confus, et suivre ce conseil pourrait vous nuire. Voici la règle réelle:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLe § 512(m) écarte catégoriquement toute obligation de surveillance.\u003c/strong\u003e On ne peut pas vous retirer une exonération parce que vous n’avez pas cherché. Le filtrage volontaire ne la fait pas perdre non plus — Veoh a conservé la sienne tout en exploitant un filtrage par empreintes et Audible Magic (\u003cem\u003eUMG c. Shelter Capital\u003c/em\u003e, 9e circuit, 2013), et l’UE a codifié la même idée à l’art. 7 du règlement sur les services numériques.\u003c/p\u003e\n\u003cp\u003eMais le filtrage ne vous aide pas à \u003cem\u003eéviter\u003c/em\u003e la connaissance. Il la \u003cstrong\u003efabrique\u003c/strong\u003e. Tous les mécanismes qui font perdre l’exonération passent par la connaissance \u003cem\u003eprécise\u003c/em\u003e d’un contenu \u003cem\u003eprécis\u003c/em\u003e: dès que votre filtre révèle un élément contrefaisant, le compte à rebours démarre. La règle tient en une ligne:\u003c/p\u003e\n\u003cblockquote\u003e\n    \u003cp\u003e\u003cstrong\u003eNe filtrez que si vous comptez agir sur ce que vous trouvez.\u003c/strong\u003e Construire une détection et en ignorer les résultats est pire que de ne rien construire.\u003c/p\u003e\n\n  \u003c/blockquote\u003e\u003cp\u003eLa conscience générale que des violations surviennent sur votre service n’est pas disqualifiante — c’est le cœur de l’arrêt \u003cem\u003e\u003ca href=\"https://cyber.harvard.edu/people/tfisher/cx/2012_Viacom.pdf\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eViacom c. YouTube\u003c/a\u003e\n\u003c/em\u003e (2e circuit, 2012), et c’est la protection porteuse de quiconque héberge du contenu d’utilisateurs.\u003c/p\u003e\n\u003ch3 id=\"lautre-erreur-répandue-la-cda-230-ne-couvre-pas-le-droit-dauteur\"\u003eL’autre erreur répandue: la CDA 230 ne couvre pas le droit d’auteur\u003ca class=\"heading-anchor\" href=\"#lautre-erreur-r%c3%a9pandue-la-cda-230-ne-couvre-pas-le-droit-dauteur\" aria-label=\"Link to L’autre erreur répandue: la CDA 230 ne couvre pas le droit d’auteur\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eLes mêmes conseils mêlent le § 512 à des recommandations sur les contenus « diffamatoires, obscènes ou autrement répréhensibles ». Ce sont deux lois distinctes, et la distinction n’est pas théorique.\u003c/p\u003e\n\u003cp\u003eLe \u003ca href=\"https://www.law.cornell.edu/uscode/text/47/230\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e47 U.S.C. § 230\u003c/a\u003e\n vous protège de la responsabilité pour le contenu de tiers — diffamation, plupart des délits civils étatiques — sans enregistrement, sans agent, sans procédure. Mais le \u003cstrong\u003e§ 230(e)(2) exclut expressément la propriété intellectuelle\u003c/strong\u003e. Pour le droit d’auteur, le § 230 ne vous donne rien du tout. La procédure DMCA est le seul bouclier légal, et c’est pourquoi ses mécanismes ne sont pas facultatifs pour un site accueillant du contenu d’utilisateurs.\u003c/p\u003e\n\u003ch3 id=\"deux-décisions-de-2026-à-connaître\"\u003eDeux décisions de 2026 à connaître\u003ca class=\"heading-anchor\" href=\"#deux-d%c3%a9cisions-de-2026-%c3%a0-conna%c3%aetre\" aria-label=\"Link to Deux décisions de 2026 à connaître\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eLes deux sont postérieures à la plupart des guides de conformité que l’on trouve en cherchant, y compris les pages à l’origine de ce billet.\u003c/p\u003e\n\u003cp\u003eDans \u003cem\u003e\u003ca href=\"https://www.supremecourt.gov/opinions/25pdf/24-171_bq7d.pdf\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eCox Communications c. Sony Music\u003c/a\u003e\n\u003c/em\u003e (rendu le 25 mars 2026), une Cour suprême unanime a infirmé un jugement d’environ 1 G$ et rejeté la simple connaissance comme fondement de la responsabilité contributive. Il faut désormais une \u003cstrong\u003eintention\u003c/strong\u003e — démontrée par l’incitation, ou par un service conçu pour la violation. « Une entreprise n’est pas responsable comme contrefacteur du seul fait de fournir un service au public en sachant que certains l’utiliseront pour violer des droits d’auteur. » L’exonération demeure la sortie la moins coûteuse et la plus rapide, mais la perdre n’est plus la catastrophe qu’elle était.\u003c/p\u003e\n\u003cp\u003eEn sens inverse, la Cour de justice, dans les affaires \u003ca href=\"https://curia.europa.eu/site/upload/docs/application/pdf/2026-06/cp260087en.pdf\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eC-188/24 et C-190/24\u003c/a\u003e\n (16 juin 2026), a jugé qu’un opérateur ne peut invoquer l’immunité d’hébergement pour une information qu’il \u003cstrong\u003econtrôle\u003c/strong\u003e — notamment lorsqu’il « détermine, au moyen d’un algorithme, dans quelles conditions, comment et dans quel ordre de priorité cette information est ou non rediffusée ». Connaissance et contrôle sont des critères cumulatifs. La portée exacte reste à éprouver, mais si vous classez ou organisez les commentaires par algorithme plutôt que chronologiquement, la question est désormais ouverte. L’ordre chronologique est le choix prudent.\u003c/p\u003e\n\u003ch2 id=\"alors-que-devrait-faire-un-site-normal\"\u003eAlors, que devrait faire un site normal?\u003ca class=\"heading-anchor\" href=\"#alors-que-devrait-faire-un-site-normal\" aria-label=\"Link to Alors, que devrait faire un site normal?\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLa réponse honnête pour la plupart des sites: \u003cstrong\u003ebien moins que ce que laisse croire le contenu sur la conformité, parce que vous n’êtes pas Reddit.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eUn site statique qui publie vos propres textes ne stocke aucun contenu de tiers. Il n’y a pas de question d’exonération parce qu’il n’y a pas de rôle d’intermédiaire à protéger. Votre exposition réelle va dans l’autre sens: elle porte sur les images, extraits et citations que \u003cem\u003evous\u003c/em\u003e publiez. Licenciez clairement vos propres contenus, gardez des attributions honnêtes, et restez dans les limites de l’utilisation équitable.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLe risque arrive avec une zone de texte.\u003c/strong\u003e Dès que vous ajoutez des commentaires, un forum, un wiki, des téléversements, ou un Slack ou Discord public, vous stockez du contenu à la demande d’autrui. C’est la définition de l’hébergement, et les obligations s’y attachent. Nuance pour les plateformes de discussion: si votre communauté vit dans Slack ou Discord, c’est \u003cem\u003eeux\u003c/em\u003e l’hébergeur et c’est \u003cem\u003eleur\u003c/em\u003e processus qui gouverne — mais vous êtes l’exploitant, et les décisions de modération et de récidive dans votre espace vous appartiennent.\u003c/p\u003e\n\u003cp\u003eSi vous hébergez du contenu d’utilisateurs, voici la liste corrigée:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\u003cstrong\u003ePubliez un contact pour les retraits.\u003c/strong\u003e Une adresse courriel sur une page légale suffit pour un petit site. Si vous êtes hébergé aux États-Unis avec du contenu d’utilisateurs, enregistrez un agent désigné auprès du Copyright Office — et inscrivez à l’agenda le renouvellement triennal.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eÉcrivez votre procédure de notification et retrait\u003c/strong\u003e, et suivez-la de façon constante. La constance, c’est l’essentiel de ce que veut dire « raisonnablement mise en œuvre ».\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAyez une politique sur les récidivistes et appliquez-la vraiment.\u003c/strong\u003e Cox a perdu son exonération pour avoir maintenu une politique jamais appliquée; Motherless a conservé la sienne sans aucune politique écrite, parce qu’un être humain prenait manifestement de vraies décisions de résiliation. L’application prime sur la paperasse.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNe tirez aucun bénéfice financier direct\u003c/strong\u003e d’une activité contrefaisante que vous contrôlez.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNe surveillez que si vous comptez agir.\u003c/strong\u003e Voir plus haut. C’est le point que la plupart des guides prennent à l’envers.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNe comptez pas sur la CDA 230 pour le droit d’auteur.\u003c/strong\u003e Elle ne s’applique pas.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDites aux utilisateurs ce que vous avez fait et pourquoi.\u003c/strong\u003e Exigé dans l’UE par l’art. 17 du règlement sur les services numériques (exposé des motifs); bonne pratique partout, et c’est ce qui rend une politique sur les récidivistes défendable plus tard.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eLisez les conditions de votre hébergeur.\u003c/strong\u003e Pour un exploitant canadien, c’est le document qui gouverne en pratique. Votre hébergeur veut sa propre exonération américaine: il vous répercute la conformité par contrat et désactivera du contenu pour se protéger. Le titulaire se plaint à votre hébergeur, pas à vous — et vos droits canadiens à l’utilisation équitable ne sont jamais tranchés nulle part dans cette boucle. Il en va de même à chaque couche touchant les États-Unis: RDC, registraire, DNS, paiements.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eCe dernier point mérite le mot de la fin. Si vous exploitez un site depuis le Canada, la règle qui décide le plus souvent du sort de votre contenu n’est pas la \u003cem\u003eLoi sur le droit d’auteur\u003c/em\u003e. C’est votre contrat d’hébergement.\u003c/p\u003e\n","date_modified":"2026-07-20T00:00:00Z","date_published":"2026-07-20T00:00:00Z","id":"https://BHDicaire.com/fr/blog/violation-du-droit-dauteur/","summary":" Ceci n’est pas un avis juridique. J’exploite un site personnel depuis Montréal; je ne suis pas avocat. Voici une carte du terrain, à jour en juillet 2026, avec des liens vers les sources primaires pour que vous puissiez vérifier. Le droit d’auteur a bougé considérablement au premier semestre 2026 — voyez les dates des décisions citées. Si la question compte pour votre entreprise, payez un vrai avocat.\n","title":"Violation du droit d’auteur, exonération et ce qu’un site doit vraiment faire","url":"https://BHDicaire.com/fr/blog/violation-du-droit-dauteur/"},{"content_html":"\u003cp\u003eLes shortcodes sont la porte de sortie de Hugo: un moyen de placer dans une page ce que le Markdown ne sait pas exprimer, sans basculer dans du HTML brut. Ce site en a accumulé un bon nombre, et jusqu’ici rien ne les recensait.\u003c/p\u003e\n\u003cp\u003eLe tableau ci-dessous est \u003cstrong\u003egénéré à la compilation\u003c/strong\u003e par lecture de \u003ccode\u003elayouts/shortcodes/\u003c/code\u003e. Ajoutez un shortcode et il apparaît; supprimez-en un et il disparaît. Une liste tenue à la main aurait commencé à dériver dès le lendemain.\u003c/p\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth\u003eShortcode\u003c/th\u003e\n      \u003cth\u003eRôle\u003c/th\u003e\n      \u003cth\u003eUtilisation\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003earrow\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eUne flèche \u003ccode\u003e←\u003c/code\u003e ou \u003ccode\u003e→\u003c/code\u003e en ligne, utilisée comme repère d\u0026rsquo;annotation à côté d\u0026rsquo;un terme.\u003c/td\u003e\n        \u003ctd\u003e\u003ccode\u003e{{\u0026lt; arrow left \u0026gt;}}\u003c/code\u003e\u003c/td\u003e\n      \u003c/tr\u003e\u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003ecallout\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eUn encadré. Préférer la syntaxe Markdown \u003ccode\u003e\u0026gt; [!NOTE]\u003c/code\u003e; celui-ci reste pour \u003ccode\u003earchive\u003c/code\u003e.\u003c/td\u003e\n        \u003ctd\u003e\u003ccode\u003e{{\u0026lt; callout type=\u0026#34;archive\u0026#34; title=\u0026#34;Optional title\u0026#34; \u0026gt;}}\u003c/code\u003e\u003c/td\u003e\n      \u003c/tr\u003e\u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003ecard\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eUne carte cliquable avec icône et titre.\u003c/td\u003e\n        \u003ctd\u003e\u003ccode\u003e{{\u0026lt; card \u0026gt;}}\u003c/code\u003e\u003c/td\u003e\n      \u003c/tr\u003e\u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003ecards\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eGrille adaptative pour un ensemble de \u003ccode\u003ecard\u003c/code\u003e.\u003c/td\u003e\n        \u003ctd\u003e\u003ccode\u003e{{\u0026lt; cards \u0026gt;}}\u003c/code\u003e\u003c/td\u003e\n      \u003c/tr\u003e\u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003ecode\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eUn bloc de code avec en-tête de nom de fichier et bouton de copie.\u003c/td\u003e\n        \u003ctd\u003e\u003ccode\u003e{{\u0026lt; code file=\u0026#34;config/deploy.yml\u0026#34; lang=\u0026#34;yaml\u0026#34; \u0026gt;}}\u003c/code\u003e\u003c/td\u003e\n      \u003c/tr\u003e\u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003ecompanion\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eUn renvoi en haut de page vers une page liée, avec une phrase justifiant le lien.\u003c/td\u003e\n        \u003ctd\u003e\u003ccode\u003e{{\u0026lt; companion \u0026#34;/blog/rustdesk/self-hosting/\u0026#34; \u0026gt;}}\u003c/code\u003e\u003c/td\u003e\n      \u003c/tr\u003e\u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003edefinition\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eUne infobulle de glossaire, résolue depuis \u003ccode\u003edata/series/ref/glossary.yml\u003c/code\u003e.\u003c/td\u003e\n        \u003ctd\u003e\u003ccode\u003e{{\u0026lt; definition \u0026#34;saffron\u0026#34; /\u0026gt;}}\u003c/code\u003e\u003c/td\u003e\n      \u003c/tr\u003e\u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003edetails\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eUne section repliable.\u003c/td\u003e\n        \u003ctd\u003e\u003ccode\u003e{{\u0026lt; details \u0026gt;}}\u003c/code\u003e\u003c/td\u003e\n      \u003c/tr\u003e\u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003eemoji\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eUn émoji recherché par nom dans \u003ccode\u003edata/series/ref/emoji.yml\u003c/code\u003e.\u003c/td\u003e\n        \u003ctd\u003e\u003ccode\u003e{{\u0026lt; emoji \u0026#34;warning\u0026#34; \u0026gt;}}\u003c/code\u003e\u003c/td\u003e\n      \u003c/tr\u003e\u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003efiletree/container\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eConteneur d\u0026rsquo;arborescence de fichiers; contient des \u003ccode\u003efiletree/folder\u003c/code\u003e et \u003ccode\u003efiletree/file\u003c/code\u003e.\u003c/td\u003e\n        \u003ctd\u003e\u003ccode\u003e{{\u0026lt; filetree/container \u0026gt;}}\u003c/code\u003e\u003c/td\u003e\n      \u003c/tr\u003e\u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003efiletree/file\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eUne entrée de fichier dans un \u003ccode\u003efiletree/container\u003c/code\u003e.\u003c/td\u003e\n        \u003ctd\u003e\u003ccode\u003e{{\u0026lt; filetree/file \u0026gt;}}\u003c/code\u003e\u003c/td\u003e\n      \u003c/tr\u003e\u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003efiletree/folder\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eUne entrée de dossier dans un \u003ccode\u003efiletree/container\u003c/code\u003e.\u003c/td\u003e\n        \u003ctd\u003e\u003ccode\u003e{{\u0026lt; filetree/folder \u0026gt;}}\u003c/code\u003e\u003c/td\u003e\n      \u003c/tr\u003e\u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003ekbd\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eUne touche de clavier, pour les raccourcis.\u003c/td\u003e\n        \u003ctd\u003e\u003ccode\u003e{{\u0026lt; kbd \u0026gt;}}\u003c/code\u003e\u003c/td\u003e\n      \u003c/tr\u003e\u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003emermaid\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eUn diagramme Mermaid rendu à partir d\u0026rsquo;une définition texte.\u003c/td\u003e\n        \u003ctd\u003e\u003ccode\u003e{{\u0026lt; mermaid \u0026gt;}}\u003c/code\u003e\u003c/td\u003e\n      \u003c/tr\u003e\u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003epullquote\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eUne citation mise en exergue.\u003c/td\u003e\n        \u003ctd\u003e\u003ccode\u003e{{\u0026lt; pullquote \u0026gt;}}\u003c/code\u003e\u003c/td\u003e\n      \u003c/tr\u003e\u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003esteps\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eUne suite d\u0026rsquo;étapes numérotées.\u003c/td\u003e\n        \u003ctd\u003e\u003ccode\u003e{{\u0026lt; steps \u0026gt;}}\u003c/code\u003e\u003c/td\u003e\n      \u003c/tr\u003e\u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003etab\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eUn panneau dans un groupe \u003ccode\u003etabs\u003c/code\u003e.\u003c/td\u003e\n        \u003ctd\u003e\u003ccode\u003e{{\u0026lt; tab label=\u0026#34;Ruby\u0026#34; \u0026gt;}}\u003c/code\u003e\u003c/td\u003e\n      \u003c/tr\u003e\u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003etabs\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eUn groupe d\u0026rsquo;onglets; contient des \u003ccode\u003etab\u003c/code\u003e.\u003c/td\u003e\n        \u003ctd\u003e\u003ccode\u003e{{\u0026lt; tabs \u0026gt;}}\u003c/code\u003e\u003c/td\u003e\n      \u003c/tr\u003e\u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003etimeline\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eUne chronologie verticale de jalons datés; chaque titre \u003ccode\u003e###\u003c/code\u003e est une entrée.\u003c/td\u003e\n        \u003ctd\u003e\u003ccode\u003e{{\u0026lt; timeline \u0026gt;}}\u003c/code\u003e\u003c/td\u003e\n      \u003c/tr\u003e\u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003eversion\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eUne étiquette d\u0026rsquo;ajout, de modification ou d\u0026rsquo;obsolescence.\u003c/td\u003e\n        \u003ctd\u003e\u003ccode\u003e{{\u0026lt; version added=\u0026#34;2.1\u0026#34; \u0026gt;}}\u003c/code\u003e\u003c/td\u003e\n      \u003c/tr\u003e\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eLa colonne \u003cem\u003eUtilisation\u003c/em\u003e est extraite du commentaire de documentation en tête de chaque gabarit: elle reste donc exacte pour la même raison que la liste. Les descriptions viennent de \u003ccode\u003edata/shortcodes.yml\u003c/code\u003e; tout shortcode sans entrée est listé quand même et signalé, et la compilation affiche un avertissement le nommant.\u003c/p\u003e\n\u003ch2 id=\"les-shortcodes-natifs-ne-sont-pas-dans-le-tableau\"\u003eLes shortcodes natifs ne sont pas dans le tableau\u003ca class=\"heading-anchor\" href=\"#les-shortcodes-natifs-ne-sont-pas-dans-le-tableau\" aria-label=\"Link to Les shortcodes natifs ne sont pas dans le tableau\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHugo fournit ses propres shortcodes, absents de \u003ccode\u003elayouts/shortcodes/\u003c/code\u003e: ils n’apparaissent donc pas ci-dessus. Celui qui compte ici est \u003ccode\u003erelref\u003c/code\u003e, qui résout un lien interne à la compilation:\u003c/p\u003e\n\u003cdiv class=\"code-block not-prose\"\u003e\n  \u003cbutton class=\"copy-btn-inline code-block-copy\" type=\"button\" aria-label=\"Copier\" title=\"Copier\" data-copy-label=\"Copier\" data-copied-label=\"Copié\"\u003e\n    \u003csvg class=\"code-block-copy-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/\u003e\n    \u003c/svg\u003e\n    \u003cspan class=\"sr-only\"\u003eCopier\u003c/span\u003e\n  \u003c/button\u003e\n  \u003cdiv class=\"code-block-body\"\u003e\n    \u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-markdown\" data-lang=\"markdown\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e[\u003cspan style=\"color:#f92672\"\u003ePage Maintenant\u003c/span\u003e](\u003cspan style=\"color:#a6e22e\"\u003e{{\u0026lt; relref \u0026#34;/blog/slashes/now/\u0026#34; \u0026gt;}}\u003c/span\u003e)\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\u003cp\u003eDeux raisons de le préférer à une URL tapée à la main. Il \u003cstrong\u003efait échouer la compilation\u003c/strong\u003e sur un mauvais chemin plutôt que de publier un lien mort — c’est ainsi qu’ont été détectés les billets sur les renvois qui pointaient vers \u003ccode\u003e/blog/hugo/callouts/\u003c/code\u003e alors que l’URL publiée est \u003ccode\u003e/blog/callouts/\u003c/code\u003e. Et il se résout sur le \u003cstrong\u003echemin de contenu\u003c/strong\u003e, ce qui lui permet de continuer à fonctionner quand un schéma de permalien change.\u003c/p\u003e\n\u003cp\u003eDonnez-lui un chemin de contenu absolu. Un simple nom de fichier fonctionne, mais seulement jusqu’à ce qu’un fichier soit déplacé ou qu’un nom entre en collision.\u003c/p\u003e\n\u003ch2 id=\"écrire-au-sujet-des-shortcodes\"\u003eÉcrire au sujet des shortcodes\u003ca class=\"heading-anchor\" href=\"#%c3%a9crire-au-sujet-des-shortcodes\" aria-label=\"Link to Écrire au sujet des shortcodes\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003ePour afficher un shortcode sans l’exécuter, entourez les accolades de \u003ccode\u003e/*\u003c/code\u003e et \u003ccode\u003e*/\u003c/code\u003e:\u003c/p\u003e\n\u003cdiv class=\"code-block not-prose\"\u003e\n  \u003cbutton class=\"copy-btn-inline code-block-copy\" type=\"button\" aria-label=\"Copier\" title=\"Copier\" data-copy-label=\"Copier\" data-copied-label=\"Copié\"\u003e\n    \u003csvg class=\"code-block-copy-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/\u003e\n    \u003c/svg\u003e\n    \u003cspan class=\"sr-only\"\u003eCopier\u003c/span\u003e\n  \u003c/button\u003e\n  \u003cdiv class=\"code-block-body\"\u003e\n    \u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-text\" data-lang=\"text\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e{{\u0026lt;/* callout type=\u0026#34;archive\u0026#34; */\u0026gt;}}\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\u003cp\u003eC’est une syntaxe de l’analyseur de Hugo, et non un shortcode: elle ne figure donc pas non plus dans le tableau. Tout ce qui affiche un shortcode sur cette page l’utilise.\u003c/p\u003e\n\u003ch2 id=\"quand-ne-pas-en-créer\"\u003eQuand ne pas en créer\u003ca class=\"heading-anchor\" href=\"#quand-ne-pas-en-cr%c3%a9er\" aria-label=\"Link to Quand ne pas en créer\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eUn shortcode se justifie quand l’alternative est de répéter du balisage, ou quand le contenu a besoin de données situées ailleurs dans le site — \u003ccode\u003edefinition\u003c/code\u003e lit le glossaire, \u003ccode\u003eemoji\u003c/code\u003e lit la table des émojis.\u003c/p\u003e\n\u003cp\u003eIl ne se justifie pas quand le Markdown dispose déjà d’une syntaxe. Les \u003ca href=\"/fr/blog/encadres/\"\u003eencadrés\u003c/a\u003e\n en sont le cas le plus net: ils étaient autrefois réservés au shortcode, et leur passage à la syntaxe standard \u003ccode\u003e\u0026gt; [!NOTE]\u003c/code\u003e fait que le même texte fonctionne dans Bear, sur GitHub et ici. Un shortcode est une petite dépendance: du contenu qui ne s’affiche que dans ce site. Cela vaut la peine quand on y gagne quelque chose, et pas autrement.\u003c/p\u003e\n","date_modified":"2026-07-20T00:00:00Z","date_published":"2026-07-20T00:00:00Z","id":"https://BHDicaire.com/fr/blog/shortcodes/","summary":"Les shortcodes sont la porte de sortie de Hugo: un moyen de placer dans une page ce que le Markdown ne sait pas exprimer, sans basculer dans du HTML brut. Ce site en a accumulé un bon nombre, et jusqu’ici rien ne les recensait.\n","title":"Shortcodes","url":"https://BHDicaire.com/fr/blog/shortcodes/"},{"content_html":"\u003cp\u003eRenvoyer un lecteur vers une autre page a l’air d’être un seul problème. C’en est trois, et pendant un temps ce site les a résolus de quatre façons différentes: une liste en front matter sur un billet, des lignes « Companion note: » tapées à la main sur quatre autres, une flèche dans les tableaux de données, et des « voir aussi » improvisés au gré de l’envie. Rien n’imposait la cohérence, donc rien n’était cohérent.\u003c/p\u003e\n\u003cp\u003eIl y a désormais trois mécanismes, choisis selon ce à quoi sert le renvoi.\u003c/p\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003eMécanisme\u003c/th\u003e\n          \u003cth\u003eOù il apparaît\u003c/th\u003e\n          \u003cth\u003eÀ utiliser quand\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ccode\u003erelated:\u003c/code\u003e en front matter\u003c/td\u003e\n          \u003ctd\u003eEn fin de page, sous forme de liste\u003c/td\u003e\n          \u003ctd\u003ePlusieurs pages sont pertinentes; aucune explication nécessaire\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ccode\u003e{{\u0026lt; companion \u0026gt;}}\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eEn haut de page, avec une phrase\u003c/td\u003e\n          \u003ctd\u003eUne page donne le contexte indispensable à celle-ci\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ccode\u003ebackLink\u003c/code\u003e dans un fichier de données\u003c/td\u003e\n          \u003ctd\u003eDans une ligne de tableau, en \u003ccode\u003e↩︎\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eUne ligne de tableau a une note correspondante\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2 id=\"related--la-liste-de-fin-de-page\"\u003erelated: — la liste de fin de page\u003ca class=\"heading-anchor\" href=\"#related--la-liste-de-fin-de-page\" aria-label=\"Link to related: — la liste de fin de page\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eUne liste de chemins en front matter produit un bloc \u003cem\u003eBillets liés\u003c/em\u003e après le contenu.\u003c/p\u003e\n\u003cdiv class=\"code-block not-prose\"\u003e\n  \u003cbutton class=\"copy-btn-inline code-block-copy\" type=\"button\" aria-label=\"Copier\" title=\"Copier\" data-copy-label=\"Copier\" data-copied-label=\"Copié\"\u003e\n    \u003csvg class=\"code-block-copy-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/\u003e\n    \u003c/svg\u003e\n    \u003cspan class=\"sr-only\"\u003eCopier\u003c/span\u003e\n  \u003c/button\u003e\n  \u003cdiv class=\"code-block-body\"\u003e\n    \u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-yaml\" data-lang=\"yaml\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003erelated\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  - \u003cspan style=\"color:#ae81ff\"\u003e/blog/hugo/callouts/\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  - \u003cspan style=\"color:#ae81ff\"\u003e/til/editorconfig/\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\u003cp\u003eLes chemins sont indépendants de la langue. Chaque site linguistique les résout sur ses propres pages: la liste identique va donc dans le front matter du \u003ccode\u003e.en.md\u003c/code\u003e \u003cstrong\u003eet\u003c/strong\u003e du \u003ccode\u003e.fr.md\u003c/code\u003e — ce qui est bien l’objectif, puisque la version précédente, tenue à la main, n’existait qu’en anglais et que les pages françaises n’affichaient silencieusement rien.\u003c/p\u003e\n\u003cp\u003eDeux comportements délibérés:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eToutes les entrées sont affichées.\u003c/strong\u003e Une version antérieure plafonnait la liste à trois, sans le dire. Le billet qui atteignait ce plafond en comptait quatre, et la quatrième, masquée, pointait vers une page inexistante: la troncature dissimulait donc un lien mort.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLes chemins non résolus déclenchent un avertissement\u003c/strong\u003e à la compilation. Notez qu’une page en \u003ccode\u003edraft: true\u003c/code\u003e ne se résout pas: pointer vers un brouillon non publié est signalé comme manquant plutôt qu’ignoré en silence.\u003c/p\u003e\n\u003ch2 id=\"companion--le-renvoi-en-haut-de-page\"\u003ecompanion — le renvoi en haut de page\u003ca class=\"heading-anchor\" href=\"#companion--le-renvoi-en-haut-de-page\" aria-label=\"Link to companion — le renvoi en haut de page\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIl arrive que le lecteur ait besoin d’une page \u003cem\u003eavant\u003c/em\u003e celle-ci, et qu’il doive savoir pourquoi. Ce n’est pas une liste; c’est la phrase qui a de la valeur.\u003c/p\u003e\n\u003cdiv class=\"code-block not-prose\"\u003e\n  \u003cbutton class=\"copy-btn-inline code-block-copy\" type=\"button\" aria-label=\"Copier\" title=\"Copier\" data-copy-label=\"Copier\" data-copied-label=\"Copié\"\u003e\n    \u003csvg class=\"code-block-copy-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/\u003e\n    \u003c/svg\u003e\n    \u003cspan class=\"sr-only\"\u003eCopier\u003c/span\u003e\n  \u003c/button\u003e\n  \u003cdiv class=\"code-block-body\"\u003e\n    \u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-text\" data-lang=\"text\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e{{\u0026lt; companion \u0026#34;/blog/rustdesk/self-hosting/\u0026#34; \u0026gt;}}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eexplique l’architecture et les compromis côté serveur derrière ce guide d’installation.\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e{{\u0026lt; /companion \u0026gt;}}\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\u003cp\u003eLe rendu est un encart discret marqué \u003ccode\u003e↩︎\u003c/code\u003e au-dessus du contenu: l’étiquette, le titre de la page liée, puis votre phrase. Les guides d’installation s’en servent pour renvoyer au billet d’architecture, ce qui leur permet de rester des guides au lieu de réexpliquer la conception.\u003c/p\u003e\n\u003cp\u003eHugo résout le chemin à la compilation et fait échouer la construction s’il est mauvais: une coquille est détectée tout de suite plutôt que publiée en lien mort.\u003c/p\u003e\n\u003ch2 id=\"backlink--la-flèche-des-tableaux\"\u003ebackLink — la flèche des tableaux\u003ca class=\"heading-anchor\" href=\"#backlink--la-fl%c3%a8che-des-tableaux\" aria-label=\"Link to backLink — la flèche des tableaux\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLes pages \u003ccode\u003e/uses\u003c/code\u003e, \u003ccode\u003e/projects\u003c/code\u003e et \u003ccode\u003e/publications\u003c/code\u003e sont construites à partir de YAML, et une ligne de tableau n’a pas de place pour de la prose. Un \u003ccode\u003ebackLink\u003c/code\u003e sur une entrée ajoute un \u003ccode\u003e↩︎\u003c/code\u003e en exposant après le nom, pointant vers la note liée:\u003c/p\u003e\n\u003cdiv class=\"code-block not-prose\"\u003e\n  \u003cbutton class=\"copy-btn-inline code-block-copy\" type=\"button\" aria-label=\"Copier\" title=\"Copier\" data-copy-label=\"Copier\" data-copied-label=\"Copié\"\u003e\n    \u003csvg class=\"code-block-copy-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/\u003e\n    \u003c/svg\u003e\n    \u003cspan class=\"sr-only\"\u003eCopier\u003c/span\u003e\n  \u003c/button\u003e\n  \u003cdiv class=\"code-block-body\"\u003e\n    \u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-yaml\" data-lang=\"yaml\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e- \u003cspan style=\"color:#f92672\"\u003ename\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003echezmoi\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#f92672\"\u003ebackLink\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e/til/chezmoi/\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\u003ch2 id=\"la-règle\"\u003eLa règle\u003ca class=\"heading-anchor\" href=\"#la-r%c3%a8gle\" aria-label=\"Link to La règle\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eDeux règles empêchent tout cela de proliférer à nouveau.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eUn renvoi relève de la navigation, pas de la gravité.\u003c/strong\u003e Il reste visuellement discret — sans fond, sans couleur. Les \u003ca href=\"/fr/blog/encadres/\"\u003eencadrés\u003c/a\u003e\n sont le mécanisme bruyant, réservé au contenu qui change ce que le lecteur doit \u003cem\u003efaire\u003c/em\u003e. Une note compagnon déguisée en avertissement dévalue les vrais avertissements.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003e↩︎\u003c/code\u003e signifie toujours « contenu lié ».\u003c/strong\u003e C’est le symbole commun aux notes compagnons et aux lignes de tableau: la même marque a le même sens partout où elle apparaît.\u003c/p\u003e\n\u003cp\u003eUn cas reste délibérément en prose: une ligne qui renvoie à des sources \u003cem\u003eexternes\u003c/em\u003e est une citation, non un renvoi interne, et sa place est dans le texte, là où le lecteur voit ce sur quoi il clique.\u003c/p\u003e\n","date_modified":"2026-07-20T00:00:00Z","date_published":"2026-07-20T00:00:00Z","id":"https://BHDicaire.com/fr/blog/renvois/","summary":"Renvoyer un lecteur vers une autre page a l’air d’être un seul problème. C’en est trois, et pendant un temps ce site les a résolus de quatre façons différentes: une liste en front matter sur un billet, des lignes « Companion note: » tapées à la main sur quatre autres, une flèche dans les tableaux de données, et des « voir aussi » improvisés au gré de l’envie. Rien n’imposait la cohérence, donc rien n’était cohérent.\n","title":"Renvois","url":"https://BHDicaire.com/fr/blog/renvois/"},{"content_html":"\u003cp\u003eLes encadrés — admonitions, alertes, appelez-les comme vous voulez — sont des blocs de citation dotés d’une couleur, d’une icône et d’une étiquette, qui signalent ce qu’un lecteur pressé ne doit pas manquer.\u003c/p\u003e\n\u003cp\u003eLa décision importante ici a été de \u003cstrong\u003ene pas inventer une syntaxe\u003c/strong\u003e. Ce site rend \u003ca href=\"https://github.blog/changelog/2023-12-14-new-markdown-extension-alerts-provide-distinctive-styling-for-significant-content/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003el’extension d’alertes de GitHub\u003c/a\u003e\n, celle-là même qu’utilise Bear. Une note rédigée dans Bear se colle dans un billet et s’affiche correctement, sans rien traduire. C’est tout l’intérêt: les notes et le site publié partagent un seul format.\u003c/p\u003e\n\u003ch2 id=\"les-cinq-types-standards\"\u003eLes cinq types standards\u003ca class=\"heading-anchor\" href=\"#les-cinq-types-standards\" aria-label=\"Link to Les cinq types standards\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cdiv class=\"code-block not-prose\"\u003e\n  \u003cbutton class=\"copy-btn-inline code-block-copy\" type=\"button\" aria-label=\"Copier\" title=\"Copier\" data-copy-label=\"Copier\" data-copied-label=\"Copié\"\u003e\n    \u003csvg class=\"code-block-copy-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/\u003e\n    \u003c/svg\u003e\n    \u003cspan class=\"sr-only\"\u003eCopier\u003c/span\u003e\n  \u003c/button\u003e\n  \u003cdiv class=\"code-block-body\"\u003e\n    \u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-markdown\" data-lang=\"markdown\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003e\u0026gt; \u003c/span\u003e\u003cspan style=\"font-style:italic\"\u003e[!NOTE]\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003e\u0026gt; \u003c/span\u003e\u003cspan style=\"font-style:italic\"\u003eInformation utile à connaître, même en survolant le contenu.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003e\u0026gt; \u003c/span\u003e\u003cspan style=\"font-style:italic\"\u003e[!TIP]\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003e\u0026gt; \u003c/span\u003e\u003cspan style=\"font-style:italic\"\u003eConseil pratique pour faire les choses mieux ou plus simplement.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003e\u0026gt; \u003c/span\u003e\u003cspan style=\"font-style:italic\"\u003e[!IMPORTANT]\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003e\u0026gt; \u003c/span\u003e\u003cspan style=\"font-style:italic\"\u003eInformation clé pour atteindre son objectif.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003e\u0026gt; \u003c/span\u003e\u003cspan style=\"font-style:italic\"\u003e[!WARNING]\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003e\u0026gt; \u003c/span\u003e\u003cspan style=\"font-style:italic\"\u003eInformation urgente exigeant une attention immédiate.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003e\u0026gt; \u003c/span\u003e\u003cspan style=\"font-style:italic\"\u003e[!CAUTION]\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026gt; Avertit d’un risque ou d’une conséquence négative.\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\u003cp\u003eCe qui donne:\u003c/p\u003e\n\u003c!-- markdownlint-disable MD028 --\u003e\n\u003cdiv class=\"not-prose my-5 rounded-lg border border-blue-200 dark:border-blue-800 bg-blue-50 dark:bg-blue-900/20 p-4\"\u003e\n  \u003cdiv class=\"flex gap-3\"\u003e\n    \u003csvg class=\"w-5 h-5 text-blue-500 dark:text-blue-400 shrink-0 mt-0.5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"/\u003e\n    \u003c/svg\u003e\n    \u003cdiv class=\"flex-1 min-w-0\"\u003e\n      \u003cp class=\"text-sm font-semibold text-blue-800 dark:text-blue-300 mb-1\"\u003eNote\u003c/p\u003e\n      \u003cdiv class=\"callout-body text-sm text-blue-700 dark:text-blue-300 [\u0026\u003ep]:m-0 [\u0026\u003ep+p]:mt-2 [\u0026\u003ecode]:bg-black/10 [\u0026\u003ecode]:px-1 [\u0026\u003ecode]:rounded\"\u003e\n        \u003cp\u003eInformation utile à connaître, même en survolant le contenu.\u003c/p\u003e\n      \u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"not-prose my-5 rounded-lg border border-green-200 dark:border-green-800 bg-green-50 dark:bg-green-900/20 p-4\"\u003e\n  \u003cdiv class=\"flex gap-3\"\u003e\n    \u003csvg class=\"w-5 h-5 text-green-500 dark:text-green-400 shrink-0 mt-0.5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z\"/\u003e\n    \u003c/svg\u003e\n    \u003cdiv class=\"flex-1 min-w-0\"\u003e\n      \u003cp class=\"text-sm font-semibold text-green-800 dark:text-green-300 mb-1\"\u003eConseil\u003c/p\u003e\n      \u003cdiv class=\"callout-body text-sm text-green-700 dark:text-green-300 [\u0026\u003ep]:m-0 [\u0026\u003ep+p]:mt-2 [\u0026\u003ecode]:bg-black/10 [\u0026\u003ecode]:px-1 [\u0026\u003ecode]:rounded\"\u003e\n        \u003cp\u003eConseil pratique pour faire les choses mieux ou plus simplement.\u003c/p\u003e\n      \u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"not-prose my-5 rounded-lg border border-purple-200 dark:border-purple-800 bg-purple-50 dark:bg-purple-900/20 p-4\"\u003e\n  \u003cdiv class=\"flex gap-3\"\u003e\n    \u003csvg class=\"w-5 h-5 text-purple-500 dark:text-purple-400 shrink-0 mt-0.5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.9 9.9 0 01-4-.8L3 20l1.2-3.6A7.9 7.9 0 013 12c0-4.418 4.03-8 9-8s9 3.582 9 8z\"/\u003e\n    \u003c/svg\u003e\n    \u003cdiv class=\"flex-1 min-w-0\"\u003e\n      \u003cp class=\"text-sm font-semibold text-purple-800 dark:text-purple-300 mb-1\"\u003eImportant\u003c/p\u003e\n      \u003cdiv class=\"callout-body text-sm text-purple-700 dark:text-purple-300 [\u0026\u003ep]:m-0 [\u0026\u003ep+p]:mt-2 [\u0026\u003ecode]:bg-black/10 [\u0026\u003ecode]:px-1 [\u0026\u003ecode]:rounded\"\u003e\n        \u003cp\u003eInformation clé pour atteindre son objectif.\u003c/p\u003e\n      \u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"not-prose my-5 rounded-lg border border-amber-200 dark:border-amber-800 bg-amber-50 dark:bg-amber-900/20 p-4\"\u003e\n  \u003cdiv class=\"flex gap-3\"\u003e\n    \u003csvg class=\"w-5 h-5 text-amber-500 dark:text-amber-400 shrink-0 mt-0.5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z\"/\u003e\n    \u003c/svg\u003e\n    \u003cdiv class=\"flex-1 min-w-0\"\u003e\n      \u003cp class=\"text-sm font-semibold text-amber-800 dark:text-amber-300 mb-1\"\u003eAvertissement\u003c/p\u003e\n      \u003cdiv class=\"callout-body text-sm text-amber-700 dark:text-amber-300 [\u0026\u003ep]:m-0 [\u0026\u003ep+p]:mt-2 [\u0026\u003ecode]:bg-black/10 [\u0026\u003ecode]:px-1 [\u0026\u003ecode]:rounded\"\u003e\n        \u003cp\u003eInformation urgente exigeant une attention immédiate.\u003c/p\u003e\n      \u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"not-prose my-5 rounded-lg border border-red-200 dark:border-red-800 bg-red-50 dark:bg-red-900/20 p-4\"\u003e\n  \u003cdiv class=\"flex gap-3\"\u003e\n    \u003csvg class=\"w-5 h-5 text-red-500 dark:text-red-400 shrink-0 mt-0.5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126zM12 17.25h.007v.008H12v-.008z\"/\u003e\n    \u003c/svg\u003e\n    \u003cdiv class=\"flex-1 min-w-0\"\u003e\n      \u003cp class=\"text-sm font-semibold text-red-800 dark:text-red-300 mb-1\"\u003eAttention\u003c/p\u003e\n      \u003cdiv class=\"callout-body text-sm text-red-700 dark:text-red-300 [\u0026\u003ep]:m-0 [\u0026\u003ep+p]:mt-2 [\u0026\u003ecode]:bg-black/10 [\u0026\u003ecode]:px-1 [\u0026\u003ecode]:rounded\"\u003e\n        \u003cp\u003eAvertit d’un risque ou d’une conséquence négative.\u003c/p\u003e\n      \u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c!-- markdownlint-enable MD028 --\u003e\n\u003cp\u003eLa distinction qui compte vraiment à l’écriture est celle entre \u003cstrong\u003eavertissement et attention\u003c/strong\u003e. L’avertissement porte sur l’\u003cem\u003eattention du lecteur\u003c/em\u003e: quelque chose ira mal si vous survolez ce passage. L’attention porte sur les \u003cem\u003econséquences d’une action\u003c/em\u003e: cette étape peut détruire des données. Si rien de fâcheux n’arrive quand on l’ignore, c’est une note.\u003c/p\u003e\n\u003cp\u003eUn bloc de citation ordinaire reste un bloc de citation. Utilisez-le pour citer.\u003c/p\u003e\n\u003ch2 id=\"titres-personnalisés\"\u003eTitres personnalisés\u003ca class=\"heading-anchor\" href=\"#titres-personnalis%c3%a9s\" aria-label=\"Link to Titres personnalisés\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLe texte placé après le type remplace l’étiquette par défaut:\u003c/p\u003e\n\u003cdiv class=\"code-block not-prose\"\u003e\n  \u003cbutton class=\"copy-btn-inline code-block-copy\" type=\"button\" aria-label=\"Copier\" title=\"Copier\" data-copy-label=\"Copier\" data-copied-label=\"Copié\"\u003e\n    \u003csvg class=\"code-block-copy-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/\u003e\n    \u003c/svg\u003e\n    \u003cspan class=\"sr-only\"\u003eCopier\u003c/span\u003e\n  \u003c/button\u003e\n  \u003cdiv class=\"code-block-body\"\u003e\n    \u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-markdown\" data-lang=\"markdown\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003e\u0026gt; \u003c/span\u003e\u003cspan style=\"font-style:italic\"\u003e[!IMPORTANT] L’enregistrement expire tous les trois ans\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026gt; Inscrivez le renouvellement à l’agenda.\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\u003cdiv class=\"not-prose my-5 rounded-lg border border-purple-200 dark:border-purple-800 bg-purple-50 dark:bg-purple-900/20 p-4\"\u003e\n  \u003cdiv class=\"flex gap-3\"\u003e\n    \u003csvg class=\"w-5 h-5 text-purple-500 dark:text-purple-400 shrink-0 mt-0.5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.9 9.9 0 01-4-.8L3 20l1.2-3.6A7.9 7.9 0 013 12c0-4.418 4.03-8 9-8s9 3.582 9 8z\"/\u003e\n    \u003c/svg\u003e\n    \u003cdiv class=\"flex-1 min-w-0\"\u003e\n      \u003cp class=\"text-sm font-semibold text-purple-800 dark:text-purple-300 mb-1\"\u003eL’enregistrement expire tous les trois ans\u003c/p\u003e\n      \u003cdiv class=\"callout-body text-sm text-purple-700 dark:text-purple-300 [\u0026\u003ep]:m-0 [\u0026\u003ep+p]:mt-2 [\u0026\u003ecode]:bg-black/10 [\u0026\u003ecode]:px-1 [\u0026\u003ecode]:rounded\"\u003e\n        \u003cp\u003eInscrivez le renouvellement à l’agenda.\u003c/p\u003e\n      \u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eLes titres sont localisés lorsqu’on ne les remplace pas: un \u003ccode\u003e[!TIP]\u003c/code\u003e devient \u003cem\u003eTip\u003c/em\u003e en anglais et \u003cem\u003eConseil\u003c/em\u003e en français, de sorte que le même fichier fonctionne dans les deux langues sans rien coder en dur.\u003c/p\u003e\n\u003ch2 id=\"contenu-riche\"\u003eContenu riche\u003ca class=\"heading-anchor\" href=\"#contenu-riche\" aria-label=\"Link to Contenu riche\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLes encadrés acceptent du Markdown normal — listes, code en ligne, emphase, liens:\u003c/p\u003e\n\u003cdiv class=\"code-block not-prose\"\u003e\n  \u003cbutton class=\"copy-btn-inline code-block-copy\" type=\"button\" aria-label=\"Copier\" title=\"Copier\" data-copy-label=\"Copier\" data-copied-label=\"Copié\"\u003e\n    \u003csvg class=\"code-block-copy-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/\u003e\n    \u003c/svg\u003e\n    \u003cspan class=\"sr-only\"\u003eCopier\u003c/span\u003e\n  \u003c/button\u003e\n  \u003cdiv class=\"code-block-body\"\u003e\n    \u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-markdown\" data-lang=\"markdown\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003e\u0026gt; \u003c/span\u003e\u003cspan style=\"font-style:italic\"\u003e[!NOTE]\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003e\u0026gt; \u003c/span\u003e\u003cspan style=\"font-style:italic\"\u003eTrois choses à savoir:\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"font-style:italic\"\u003e\u0026gt; - Les listes fonctionnent\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003e\u0026gt; \u003c/span\u003e\u003cspan style=\"font-style:italic\"\u003e- Le `code en ligne` aussi\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026gt; - Et l’**emphase**\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\u003cdiv class=\"not-prose my-5 rounded-lg border border-blue-200 dark:border-blue-800 bg-blue-50 dark:bg-blue-900/20 p-4\"\u003e\n  \u003cdiv class=\"flex gap-3\"\u003e\n    \u003csvg class=\"w-5 h-5 text-blue-500 dark:text-blue-400 shrink-0 mt-0.5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"/\u003e\n    \u003c/svg\u003e\n    \u003cdiv class=\"flex-1 min-w-0\"\u003e\n      \u003cp class=\"text-sm font-semibold text-blue-800 dark:text-blue-300 mb-1\"\u003eNote\u003c/p\u003e\n      \u003cdiv class=\"callout-body text-sm text-blue-700 dark:text-blue-300 [\u0026\u003ep]:m-0 [\u0026\u003ep+p]:mt-2 [\u0026\u003ecode]:bg-black/10 [\u0026\u003ecode]:px-1 [\u0026\u003ecode]:rounded\"\u003e\n        \u003cp\u003eTrois choses à savoir:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLes listes fonctionnent\u003c/li\u003e\n\u003cli\u003eLe \u003ccode\u003ecode en ligne\u003c/code\u003e aussi\u003c/li\u003e\n\u003cli\u003eEt l’\u003cstrong\u003eemphase\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n      \u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003ch2 id=\"le-sixième-type-archive\"\u003eLe sixième type: archive\u003ca class=\"heading-anchor\" href=\"#le-sixi%c3%a8me-type-archive\" aria-label=\"Link to Le sixième type: archive\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003earchive\u003c/code\u003e est propre à ce site, sans équivalent GitHub: il reste donc un shortcode. Il signale une page conservée pour mémoire plutôt que tenue à jour — la plupart des pages de versions de macOS en portent un.\u003c/p\u003e\n\u003cdiv class=\"code-block not-prose\"\u003e\n  \u003cbutton class=\"copy-btn-inline code-block-copy\" type=\"button\" aria-label=\"Copier\" title=\"Copier\" data-copy-label=\"Copier\" data-copied-label=\"Copié\"\u003e\n    \u003csvg class=\"code-block-copy-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/\u003e\n    \u003c/svg\u003e\n    \u003cspan class=\"sr-only\"\u003eCopier\u003c/span\u003e\n  \u003c/button\u003e\n  \u003cdiv class=\"code-block-body\"\u003e\n    \u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-text\" data-lang=\"text\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e{{\u0026lt; callout type=\u0026#34;archive\u0026#34; \u0026gt;}}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eCette page documente une version qu’Apple ne prend plus en charge.\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e{{\u0026lt; /callout \u0026gt;}}\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\u003cp\u003eLe shortcode accepte toujours tous les types, et \u003ccode\u003edanger\u003c/code\u003e est conservé comme alias de \u003ccode\u003ecaution\u003c/code\u003e pour que les anciens billets continuent de fonctionner. Pour tout sauf \u003ccode\u003earchive\u003c/code\u003e, préférez la syntaxe Markdown: elle survit à une copie hors du site.\u003c/p\u003e\n\u003ch2 id=\"comment-ça-fonctionne\"\u003eComment ça fonctionne\u003ca class=\"heading-anchor\" href=\"#comment-%c3%a7a-fonctionne\" aria-label=\"Link to Comment ça fonctionne\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eUn \u003ca href=\"https://gohugo.io/render-hooks/blockquotes/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003erender hook de bloc de citation\u003c/a\u003e\n, dans \u003ccode\u003elayouts/_default/_markup/render-blockquote.html\u003c/code\u003e, inspecte chaque bloc et confie ceux qui portent un marqueur d’alerte à \u003ccode\u003elayouts/partials/callout.html\u003c/code\u003e. Le shortcode appelle ce même partiel: les deux points d’entrée ne peuvent donc pas diverger.\u003c/p\u003e\n\u003cp\u003eLes encadrés signalent une \u003cstrong\u003egravité\u003c/strong\u003e. Ils ne servent délibérément pas à pointer vers d’autres pages — c’est un mécanisme distinct et plus discret, décrit dans \u003ca href=\"/fr/blog/renvois/\"\u003erenvois\u003c/a\u003e\n. Une note compagnon habillée en avertissement apprend au lecteur à ignorer les avertissements.\u003c/p\u003e\n","date_modified":"2026-07-20T00:00:00Z","date_published":"2026-07-20T00:00:00Z","id":"https://BHDicaire.com/fr/blog/encadres/","summary":"Les encadrés — admonitions, alertes, appelez-les comme vous voulez — sont des blocs de citation dotés d’une couleur, d’une icône et d’une étiquette, qui signalent ce qu’un lecteur pressé ne doit pas manquer.\n","title":"Encadrés","url":"https://BHDicaire.com/fr/blog/encadres/"},{"content_html":"\u003cp\u003eUne question, un projet ou quelque chose à partager ? Écrivez-moi ci-dessous, ou retrouvez-moi sur les plateformes indiquées ici.\u003c/p\u003e\n","date_modified":"2026-07-20T00:00:00Z","date_published":"2026-07-20T00:00:00Z","id":"https://BHDicaire.com/fr/contact/","summary":"Une question, un projet ou quelque chose à partager ? Écrivez-moi ci-dessous, ou retrouvez-moi sur les plateformes indiquées ici.\n","title":"Contact","url":"https://BHDicaire.com/fr/contact/"},{"content_html":"\u003cp\u003eArchive locale de la page officielle des spécifications techniques d’Apple, de Cheetah à Golden Gate. Pour l’histoire derrière les noms, voir \u003ca href=\"/fr/blog/histoire-de-macos/\"\u003eHistoire de macOS\u003c/a\u003e\n.\u003c/p\u003e\n","date_modified":"2026-07-17T00:00:00Z","date_published":"2026-07-17T00:00:00Z","id":"https://BHDicaire.com/fr/blog/specifications-techniques-de-macos/","summary":"Archive locale de la page officielle des spécifications techniques d’Apple, de Cheetah à Golden Gate. Pour l’histoire derrière les noms, voir Histoire de macOS .\n","title":"Spécifications techniques de macOS","url":"https://BHDicaire.com/fr/blog/specifications-techniques-de-macos/"},{"content_html":"\u003cp\u003eVingt-cinq ans séparent Cheetah de Golden Gate. En chemin, le système d’exploitation de bureau d’Apple a changé de nom trois fois, changé d’architecture de processeur deux fois, et réinitialisé son numéro de version de 10 à 11. Voici cette histoire racontée en quatre époques qui se chevauchent. Pour le détail version par version — noms de code, dates de sortie, architectures et spécifications archivées — voir les \u003ca href=\"/fr/blog/specifications-techniques-de-macos/\"\u003espécifications techniques de macOS\u003c/a\u003e\n.\u003c/p\u003e\n\u003ch2 id=\"lère-des-grands-félins\"\u003eL’ère des grands félins\u003ca class=\"heading-anchor\" href=\"#l%c3%a8re-des-grands-f%c3%a9lins\" aria-label=\"Link to L’ère des grands félins\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cimg src=\"/images/blog/macos-1.png\" alt=\"L’ère des grands félins — Mac OS X 10.0 à 10.8\"\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMac OS X 10.0 à 10.8.\u003c/strong\u003e La première décennie de Mac OS X portait des noms de grands félins, de Cheetah (2001) à Mountain Lion (2012) : Cheetah, Puma, Jaguar, Panther, Tiger, Leopard, Snow Leopard, Lion et Mountain Lion. Cette époque a mené la plateforme de ses racines PowerPC jusqu’à la transition vers Intel — Tiger a accompagné les premiers Mac Intel avec les binaires universels, et Snow Leopard a abandonné complètement la prise en charge de PowerPC.\u003c/p\u003e\n\u003ch2 id=\"lère-des-lieux-de-californie\"\u003eL’ère des lieux de Californie\u003ca class=\"heading-anchor\" href=\"#l%c3%a8re-des-lieux-de-californie\" aria-label=\"Link to L’ère des lieux de Californie\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cimg src=\"/images/blog/macos-2.png\" alt=\"L’ère des lieux de Californie — OS X 10.9 à 10.15\"\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eOS X 10.9 à 10.15.\u003c/strong\u003e À partir de Mavericks en 2013, Apple a retiré les grands félins pour nommer ses versions d’après des lieux emblématiques de Californie : Mavericks, Yosemite, El Capitan, Sierra, High Sierra, Mojave et Catalina. Les mises à jour sont devenues gratuites et annuelles, et dès Catalina le système a abandonné la prise en charge des applications 32 bits.\u003c/p\u003e\n\u003ch2 id=\"lère-de-la-transition-vers-apple-silicon\"\u003eL’ère de la transition vers Apple Silicon\u003ca class=\"heading-anchor\" href=\"#l%c3%a8re-de-la-transition-vers-apple-silicon\" aria-label=\"Link to L’ère de la transition vers Apple Silicon\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cimg src=\"/images/blog/macos-3.png\" alt=\"L’ère de la transition vers Apple Silicon — macOS 11 à 26\"\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003emacOS 11 à 26.\u003c/strong\u003e Big Sur a rompu une convention vieille de vingt ans en faisant passer le numéro de version de 10 à 11, marquant le passage à Apple Silicon. Big Sur, Monterey, Ventura, Sonoma, Sequoia et Tahoe ont conservé les noms de lieux californiens pendant que le Mac passait d’Intel aux puces M d’Apple, avec le renfort de Rosetta 2 et des binaires Universal 2. Tahoe (26) est la dernière version à prendre en charge les Mac Intel.\u003c/p\u003e\n\u003ch2 id=\"lère-de-lia\"\u003eL’ère de l’IA\u003ca class=\"heading-anchor\" href=\"#l%c3%a8re-de-lia\" aria-label=\"Link to L’ère de l’IA\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cimg src=\"/images/blog/macos-4.png\" alt=\"L’ère de l’IA — macOS 15 à 27\"\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003emacOS 15 à 27.\u003c/strong\u003e Chevauchant la fin de la transition vers Apple Silicon, l’époque la plus récente se définit par l’intelligence sur l’appareil. Sequoia a introduit Apple Intelligence, Tahoe a apporté la refonte Liquid Glass, et Golden Gate (27) poursuit la lignée. Ces versions s’appuient sur le Neural Engine et Apple Silicon pour intégrer des fonctions génératives dans tout le système.\u003c/p\u003e\n","date_modified":"2026-07-17T00:00:00Z","date_published":"2026-07-17T00:00:00Z","id":"https://BHDicaire.com/fr/blog/histoire-de-macos/","summary":"Vingt-cinq ans séparent Cheetah de Golden Gate. En chemin, le système d’exploitation de bureau d’Apple a changé de nom trois fois, changé d’architecture de processeur deux fois, et réinitialisé son numéro de version de 10 à 11. Voici cette histoire racontée en quatre époques qui se chevauchent. Pour le détail version par version — noms de code, dates de sortie, architectures et spécifications archivées — voir les spécifications techniques de macOS .\n","title":"Histoire de macOS","url":"https://BHDicaire.com/fr/blog/histoire-de-macos/"},{"content_html":"\u003cp\u003eCette page regroupe les fichiers publics lisibles par machine et les points d\u0026rsquo;accès opérationnels du site.\u003c/p\u003e\n\u003ch2 id=\"sécurité-et-découverte-des-contacts\"\u003eSécurité et découverte des contacts\u003ca class=\"heading-anchor\" href=\"#s%c3%a9curit%c3%a9-et-d%c3%a9couverte-des-contacts\" aria-label=\"Link to Sécurité et découverte des contacts\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/.well-known/security.txt\"\u003e\u003ccode\u003e/.well-known/security.txt\u003c/code\u003e\u003c/a\u003e\n: métadonnées pour le signalement des vulnérabilités et le contact sécurité.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/security.txt\"\u003e\u003ccode\u003e/security.txt\u003c/code\u003e\u003c/a\u003e\n: copie à la racine des métadonnées de contact sécurité.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/humans.txt\"\u003e\u003ccode\u003e/humans.txt\u003c/code\u003e\u003c/a\u003e\n: personnes, outils et crédits du site.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"robots-et-indexation\"\u003eRobots et indexation\u003ca class=\"heading-anchor\" href=\"#robots-et-indexation\" aria-label=\"Link to Robots et indexation\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/robots.txt\"\u003e\u003ccode\u003e/robots.txt\u003c/code\u003e\u003c/a\u003e\n: préférences d\u0026rsquo;accès pour les robots.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/sitemap.xml\"\u003e\u003ccode\u003e/sitemap.xml\u003c/code\u003e\u003c/a\u003e\n: plan de site XML pour moteurs de recherche et robots.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/fr/sitemap/\"\u003e\u003ccode\u003e/fr/sitemap/\u003c/code\u003e\u003c/a\u003e\n: plan du site lisible par les humains.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"contexte-pour-modèles-de-langage\"\u003eContexte pour modèles de langage\u003ca class=\"heading-anchor\" href=\"#contexte-pour-mod%c3%a8les-de-langage\" aria-label=\"Link to Contexte pour modèles de langage\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/llms.txt\"\u003e\u003ccode\u003e/llms.txt\u003c/code\u003e\u003c/a\u003e\n: contexte concis du site destiné aux modèles de langage.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/llms-full.txt\"\u003e\u003ccode\u003e/llms-full.txt\u003c/code\u003e\u003c/a\u003e\n: contexte étendu du site destiné aux modèles de langage.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"flux\"\u003eFlux\u003ca class=\"heading-anchor\" href=\"#flux\" aria-label=\"Link to Flux\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/en/index.xml\"\u003e\u003ccode\u003e/en/index.xml\u003c/code\u003e\u003c/a\u003e\n: flux RSS anglais.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/fr/index.xml\"\u003e\u003ccode\u003e/fr/index.xml\u003c/code\u003e\u003c/a\u003e\n: flux RSS français.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/en/index.atom\"\u003e\u003ccode\u003e/en/index.atom\u003c/code\u003e\u003c/a\u003e\n: flux Atom anglais.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/fr/index.atom\"\u003e\u003ccode\u003e/fr/index.atom\u003c/code\u003e\u003c/a\u003e\n: flux Atom français.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/en/feed.json\"\u003e\u003ccode\u003e/en/feed.json\u003c/code\u003e\u003c/a\u003e\n: flux JSON anglais.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/fr/feed.json\"\u003e\u003ccode\u003e/fr/feed.json\u003c/code\u003e\u003c/a\u003e\n: flux JSON français.\u003c/li\u003e\n\u003c/ul\u003e\n","date_modified":"2026-07-11T00:00:00Z","date_published":"2026-07-11T00:00:00Z","id":"https://BHDicaire.com/fr/legal/public-machine-readable-files/","summary":"Cette page regroupe les fichiers publics lisibles par machine et les points d\u0026rsquo;accès opérationnels du site.\nSécurité et découverte des contacts# /.well-known/security.txt : métadonnées pour le signalement des vulnérabilités et le contact sécurité. /security.txt : copie à la racine des métadonnées de contact sécurité. /humans.txt : personnes, outils et crédits du site. Robots et indexation# /robots.txt : préférences d\u0026rsquo;accès pour les robots. /sitemap.xml : plan de site XML pour moteurs de recherche et robots. /fr/sitemap/ : plan du site lisible par les humains. Contexte pour modèles de langage# /llms.txt : contexte concis du site destiné aux modèles de langage. /llms-full.txt : contexte étendu du site destiné aux modèles de langage. Flux# /en/index.xml : flux RSS anglais. /fr/index.xml : flux RSS français. /en/index.atom : flux Atom anglais. /fr/index.atom : flux Atom français. /en/feed.json : flux JSON anglais. /fr/feed.json : flux JSON français. ","title":"Fichiers publics lisibles par machine","url":"https://BHDicaire.com/fr/legal/public-machine-readable-files/"},{"content_html":"\u003cp\u003eSi vous croyez avoir trouvé une vulnérabilité touchant ce site ou son infrastructure publique, merci de prendre le temps de la signaler de façon responsable.\u003c/p\u003e\n\u003cp\u003eCette page décrit la politique lisible par les humains derrière le fichier \u003ca href=\"/.well-known/security.txt\"\u003e\u003ccode\u003esecurity.txt\u003c/code\u003e\u003c/a\u003e\n du site.\u003c/p\u003e\n\u003ch2 id=\"portée\"\u003ePortée\u003ca class=\"heading-anchor\" href=\"#port%c3%a9e\" aria-label=\"Link to Portée\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eDans la portée:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ebhdicaire.com\u003c/code\u003e;\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ewww.bhdicaire.com\u003c/code\u003e, si présent;\u003c/li\u003e\n\u003cli\u003eles fichiers publics lisibles par machine comme \u003ccode\u003esecurity.txt\u003c/code\u003e, \u003ccode\u003erobots.txt\u003c/code\u003e, \u003ccode\u003ehumans.txt\u003c/code\u003e et \u003ccode\u003ellms.txt\u003c/code\u003e; et\u003c/li\u003e\n\u003cli\u003eles problèmes de configuration du site pouvant toucher la confidentialité, l\u0026rsquo;intégrité ou la disponibilité.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eHors portée:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eles services tiers que je ne contrôle pas;\u003c/li\u003e\n\u003cli\u003el\u0026rsquo;ingénierie sociale;\u003c/li\u003e\n\u003cli\u003eles attaques physiques;\u003c/li\u003e\n\u003cli\u003eles essais de déni de service;\u003c/li\u003e\n\u003cli\u003eles campagnes de pourriel, d\u0026rsquo;hameçonnage ou de bourrage d\u0026rsquo;identifiants; et\u003c/li\u003e\n\u003cli\u003eles constats qui ne touchent que des navigateurs désuets ou des logiciels clients non pris en charge.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"règles-dengagement\"\u003eRègles d\u0026rsquo;engagement\u003ca class=\"heading-anchor\" href=\"#r%c3%a8gles-dengagement\" aria-label=\"Link to Règles d’engagement\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eVeuillez:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003esignaler l\u0026rsquo;enjeu rapidement;\u003c/li\u003e\n\u003cli\u003einclure assez de détails pour le reproduire ou le comprendre;\u003c/li\u003e\n\u003cli\u003eéviter d\u0026rsquo;accéder à des données, de les modifier, de les supprimer ou de les exfiltrer;\u003c/li\u003e\n\u003cli\u003eéviter la persistance, les déplacements latéraux et les essais destructifs;\u003c/li\u003e\n\u003cli\u003ene pas divulguer publiquement l\u0026rsquo;enjeu avant que j\u0026rsquo;aie eu une occasion raisonnable de répondre; et\u003c/li\u003e\n\u003cli\u003earrêter les essais si vous rencontrez des renseignements sensibles ou une instabilité du service.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"comment-signaler\"\u003eComment signaler\u003ca class=\"heading-anchor\" href=\"#comment-signaler\" aria-label=\"Link to Comment signaler\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eUtilisez le canal indiqué dans \u003ca href=\"/.well-known/security.txt\"\u003e\u003ccode\u003e/.well-known/security.txt\u003c/code\u003e\u003c/a\u003e\n. Si une communication chiffrée est utile, utilisez le lien de chiffrement indiqué dans ce fichier.\u003c/p\u003e\n\u003cp\u003eIncluez:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003el\u0026rsquo;URL ou le composant touché;\u003c/li\u003e\n\u003cli\u003ele type de vulnérabilité;\u003c/li\u003e\n\u003cli\u003eles étapes de reproduction;\u003c/li\u003e\n\u003cli\u003el\u0026rsquo;impact;\u003c/li\u003e\n\u003cli\u003edes captures d\u0026rsquo;écran ou des détails de preuve de concept, si cela peut être partagé sans risque; et\u003c/li\u003e\n\u003cli\u003evotre méthode de contact préférée.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"à-quoi-sattendre\"\u003eÀ quoi s\u0026rsquo;attendre\u003ca class=\"heading-anchor\" href=\"#%c3%a0-quoi-sattendre\" aria-label=\"Link to À quoi s’attendre\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eJe tenterai d\u0026rsquo;accuser réception des signalements de bonne foi dans un délai raisonnable et je pourrais poser des questions de clarification. Il s\u0026rsquo;agit d\u0026rsquo;un site personnel, pas d\u0026rsquo;un programme de primes doté d\u0026rsquo;une équipe dédiée; les délais de réponse peuvent donc varier.\u003c/p\u003e\n\u003cp\u003eAucune prime monétaire n\u0026rsquo;est offerte, sauf entente écrite explicite avant les essais.\u003c/p\u003e\n\u003ch2 id=\"zone-de-sécurité\"\u003eZone de sécurité\u003ca class=\"heading-anchor\" href=\"#zone-de-s%c3%a9curit%c3%a9\" aria-label=\"Link to Zone de sécurité\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eJe n\u0026rsquo;entamerai pas d\u0026rsquo;action juridique contre une recherche de sécurité menée de bonne foi qui respecte cette politique, évite les dommages et ne viole pas la vie privée ni la disponibilité du service. Cela n\u0026rsquo;autorise pas les essais contre des systèmes ou services tiers hors de mon contrôle.\u003c/p\u003e\n","date_modified":"2026-07-11T00:00:00Z","date_published":"2026-07-11T00:00:00Z","id":"https://BHDicaire.com/fr/legal/responsible-disclosure/","summary":"Si vous croyez avoir trouvé une vulnérabilité touchant ce site ou son infrastructure publique, merci de prendre le temps de la signaler de façon responsable.\n","title":"Divulgation responsable","url":"https://BHDicaire.com/fr/legal/responsible-disclosure/"},{"content_html":"\u003cp\u003eCe site personnel est exploité par Benoît H. Dicaire depuis le Canada. Je cherche à garder le site respectueux de la vie privée par défaut et à recueillir le moins de renseignements personnels possible.\u003c/p\u003e\n\u003cp\u003eCet avis s\u0026rsquo;adresse aux visiteurs, aux lecteurs et aux personnes qui me contactent par l\u0026rsquo;entremise du site.\u003c/p\u003e\n\u003ch2 id=\"ce-que-le-site-recueille\"\u003eCe que le site recueille\u003ca class=\"heading-anchor\" href=\"#ce-que-le-site-recueille\" aria-label=\"Link to Ce que le site recueille\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLorsque vous visitez le site, l\u0026rsquo;infrastructure web normale peut traiter des renseignements techniques comme votre adresse IP, votre navigateur, l\u0026rsquo;URL demandée, le référent, l\u0026rsquo;heure de la requête et des signaux de sécurité de base. Ces renseignements servent à livrer le site, le protéger contre les abus, résoudre des problèmes et comprendre si le site fonctionne correctement.\u003c/p\u003e\n\u003cp\u003eSi vous me contactez, je reçois les renseignements que vous choisissez d\u0026rsquo;envoyer, comme votre nom, votre adresse courriel, votre organisation, votre message et le contexte inclus dans la communication.\u003c/p\u003e\n\u003ch2 id=\"mesure-daudience-et-suivi\"\u003eMesure d\u0026rsquo;audience et suivi\u003ca class=\"heading-anchor\" href=\"#mesure-daudience-et-suivi\" aria-label=\"Link to Mesure d’audience et suivi\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eCe site vise à éviter la publicité comportementale, le suivi intersites et les mesures d\u0026rsquo;audience intrusives. Si une mesure d\u0026rsquo;audience respectueuse de la vie privée est activée, elle sert à comprendre des tendances agrégées, pas à créer des profils de visiteurs individuels.\u003c/p\u003e\n\u003cp\u003eJe n\u0026rsquo;utilise pas de témoins pour ce site.\u003c/p\u003e\n\u003ch2 id=\"services-tiers\"\u003eServices tiers\u003ca class=\"heading-anchor\" href=\"#services-tiers\" aria-label=\"Link to Services tiers\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLe site est hébergé et protégé à l\u0026rsquo;aide de services Cloudflare. Cloudflare peut traiter des renseignements techniques et de sécurité dans le cadre de la livraison et de la protection du site.\u003c/p\u003e\n\u003cp\u003eCertaines pages peuvent contenir des liens vers des sites externes. Ces sites ont leurs propres pratiques de confidentialité, et le présent avis ne s\u0026rsquo;y applique pas.\u003c/p\u003e\n\u003ch2 id=\"utilisation-des-renseignements\"\u003eUtilisation des renseignements\u003ca class=\"heading-anchor\" href=\"#utilisation-des-renseignements\" aria-label=\"Link to Utilisation des renseignements\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLes renseignements servent à:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eexploiter et sécuriser le site;\u003c/li\u003e\n\u003cli\u003erépondre aux messages et aux demandes;\u003c/li\u003e\n\u003cli\u003emaintenir la fiabilité du site;\u003c/li\u003e\n\u003cli\u003eaméliorer le contenu et la navigation; et\u003c/li\u003e\n\u003cli\u003econserver des dossiers lorsque cela est raisonnablement nécessaire.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"conservation\"\u003eConservation\u003ca class=\"heading-anchor\" href=\"#conservation\" aria-label=\"Link to Conservation\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLes messages de contact sont conservés seulement tant qu\u0026rsquo;ils sont utiles à la conversation, au contexte professionnel ou à une tenue de dossiers raisonnable. Les journaux techniques sont conservés selon les paramètres de conservation des services d\u0026rsquo;hébergement et de sécurité utilisés pour le site.\u003c/p\u003e\n\u003ch2 id=\"accès-correction-et-suppression\"\u003eAccès, correction et suppression\u003ca class=\"heading-anchor\" href=\"#acc%c3%a8s-correction-et-suppression\" aria-label=\"Link to Accès, correction et suppression\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eVous pouvez demander quels renseignements personnels je pourrais détenir à votre sujet, demander une correction ou demander la suppression de renseignements qui ne sont plus nécessaires. Utilisez les coordonnées indiquées sur la page \u003ca href=\"/fr/about/\"\u003eÀ propos\u003c/a\u003e\n.\u003c/p\u003e\n\u003ch2 id=\"sécurité\"\u003eSécurité\u003ca class=\"heading-anchor\" href=\"#s%c3%a9curit%c3%a9\" aria-label=\"Link to Sécurité\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eJ\u0026rsquo;utilise des mesures raisonnables pour un site personnel, notamment HTTPS et des contrôles de sécurité Cloudflare. Aucun service Internet ne peut être garanti parfaitement sécuritaire.\u003c/p\u003e\n\u003cp\u003eLes enjeux de sécurité devraient être signalés au moyen de la page \u003ca href=\"/fr/legal/responsible-disclosure/\"\u003eDivulgation responsable\u003c/a\u003e\n ou du fichier publié \u003ca href=\"/.well-known/security.txt\"\u003e\u003ccode\u003esecurity.txt\u003c/code\u003e\u003c/a\u003e\n.\u003c/p\u003e\n\u003ch2 id=\"changements\"\u003eChangements\u003ca class=\"heading-anchor\" href=\"#changements\" aria-label=\"Link to Changements\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eJe peux mettre cet avis à jour à mesure que le site évolue. La date \u003ccode\u003elastmod\u003c/code\u003e de cette page indique la dernière mise à jour.\u003c/p\u003e\n","date_modified":"2026-07-11T00:00:00Z","date_published":"2026-07-11T00:00:00Z","id":"https://BHDicaire.com/fr/legal/privacy/","summary":"Ce site personnel est exploité par Benoît H. Dicaire depuis le Canada. Je cherche à garder le site respectueux de la vie privée par défaut et à recueillir le moins de renseignements personnels possible.\n","title":"Confidentialité","url":"https://BHDicaire.com/fr/legal/privacy/"},{"content_html":"\u003cp\u003eCe site personnel est exploité par Benoît H. Dicaire. En utilisant le site, vous acceptez de l\u0026rsquo;utiliser de manière légale, respectueuse et à vos propres risques.\u003c/p\u003e\n\u003ch2 id=\"contenu-informatif\"\u003eContenu informatif\u003ca class=\"heading-anchor\" href=\"#contenu-informatif\" aria-label=\"Link to Contenu informatif\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLes textes, notes, références, diagrammes et exemples sur ce site sont fournis à titre d\u0026rsquo;information générale. Ils ne constituent pas un avis juridique, un conseil de sécurité adapté à votre environnement, une directive de réponse à incident ou un mandat professionnel.\u003c/p\u003e\n\u003cp\u003eNe vous fiez pas uniquement au contenu du site pour des décisions touchant des obligations juridiques, des systèmes de production, des enquêtes, la sécurité, les finances ou la conformité.\u003c/p\u003e\n\u003ch2 id=\"utilisation-acceptable\"\u003eUtilisation acceptable\u003ca class=\"heading-anchor\" href=\"#utilisation-acceptable\" aria-label=\"Link to Utilisation acceptable\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eN\u0026rsquo;utilisez pas le site pour:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003etenter un accès non autorisé;\u003c/li\u003e\n\u003cli\u003eperturber la disponibilité;\u003c/li\u003e\n\u003cli\u003eextraire du contenu d\u0026rsquo;une manière qui nuit à la fiabilité du service;\u003c/li\u003e\n\u003cli\u003esoumettre du contenu malveillant;\u003c/li\u003e\n\u003cli\u003eusurper l\u0026rsquo;identité d\u0026rsquo;une autre personne; ou\u003c/li\u003e\n\u003cli\u003econtrevenir aux lois applicables.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eLa recherche en sécurité devrait suivre la page \u003ca href=\"/fr/legal/responsible-disclosure/\"\u003eDivulgation responsable\u003c/a\u003e\n.\u003c/p\u003e\n\u003ch2 id=\"liens-externes\"\u003eLiens externes\u003ca class=\"heading-anchor\" href=\"#liens-externes\" aria-label=\"Link to Liens externes\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLes liens vers des sites tiers sont fournis pour le contexte et la commodité. Je ne contrôle pas ces sites et ne suis pas responsable de leur contenu, de leur sécurité, de leur disponibilité ou de leurs pratiques de confidentialité.\u003c/p\u003e\n\u003ch2 id=\"droit-dauteur-et-réutilisation\"\u003eDroit d\u0026rsquo;auteur et réutilisation\u003ca class=\"heading-anchor\" href=\"#droit-dauteur-et-r%c3%a9utilisation\" aria-label=\"Link to Droit d’auteur et réutilisation\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eSauf indication contraire sur une page, les textes et le matériel original de ce site appartiennent à Benoît H. Dicaire. Les courtes citations avec attribution sont bienvenues. Pour une réutilisation plus large, une republication, une traduction, un usage commercial ou la réutilisation de diagrammes et d\u0026rsquo;images, contactez-moi d\u0026rsquo;abord.\u003c/p\u003e\n\u003cp\u003eLes extraits de code sont fournis comme exemples sans garantie, sauf si une licence distincte est indiquée.\u003c/p\u003e\n\u003ch2 id=\"aucune-garantie\"\u003eAucune garantie\u003ca class=\"heading-anchor\" href=\"#aucune-garantie\" aria-label=\"Link to Aucune garantie\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLe site est fourni tel quel et selon sa disponibilité. Je ne garantis pas qu\u0026rsquo;il sera exempt d\u0026rsquo;erreurs, ininterrompu, complet, à jour ou adapté à un usage particulier.\u003c/p\u003e\n\u003ch2 id=\"limitation-de-responsabilité\"\u003eLimitation de responsabilité\u003ca class=\"heading-anchor\" href=\"#limitation-de-responsabilit%c3%a9\" aria-label=\"Link to Limitation de responsabilité\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eDans toute la mesure permise par les lois applicables, je ne suis pas responsable des pertes découlant de l\u0026rsquo;utilisation du site, de la confiance accordée à son contenu ou de l\u0026rsquo;impossibilité d\u0026rsquo;y accéder.\u003c/p\u003e\n\u003ch2 id=\"changements\"\u003eChangements\u003ca class=\"heading-anchor\" href=\"#changements\" aria-label=\"Link to Changements\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eJe peux mettre ces conditions à jour à mesure que le site évolue. La date \u003ccode\u003elastmod\u003c/code\u003e de cette page indique la dernière mise à jour.\u003c/p\u003e\n","date_modified":"2026-07-11T00:00:00Z","date_published":"2026-07-11T00:00:00Z","id":"https://BHDicaire.com/fr/legal/terms/","summary":"Ce site personnel est exploité par Benoît H. Dicaire. En utilisant le site, vous acceptez de l\u0026rsquo;utiliser de manière légale, respectueuse et à vos propres risques.\n","title":"Conditions d'utilisation","url":"https://BHDicaire.com/fr/legal/terms/"},{"content_html":"\u003cp\u003eJe souhaite que ce site soit utilisable par le plus grand nombre possible de personnes, y compris celles qui utilisent le clavier, des lecteurs d\u0026rsquo;écran, le zoom, des paramètres de contraste élevé et des technologies d\u0026rsquo;assistance.\u003c/p\u003e\n\u003ch2 id=\"cible\"\u003eCible\u003ca class=\"heading-anchor\" href=\"#cible\" aria-label=\"Link to Cible\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLe site vise à respecter l\u0026rsquo;esprit de WCAG 2.2 niveau AA lorsque cela est réaliste pour un site personnel. Cela signifie que j\u0026rsquo;essaie de garder les pages lisibles, navigables, structurées et compréhensibles.\u003c/p\u003e\n\u003ch2 id=\"pratiques-actuelles\"\u003ePratiques actuelles\u003ca class=\"heading-anchor\" href=\"#pratiques-actuelles\" aria-label=\"Link to Pratiques actuelles\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLe site est construit avec:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003edu HTML sémantique lorsque possible;\u003c/li\u003e\n\u003cli\u003eune navigation accessible au clavier;\u003c/li\u003e\n\u003cli\u003edes mises en page adaptatives;\u003c/li\u003e\n\u003cli\u003edes titres de pages et d\u0026rsquo;intertitres descriptifs;\u003c/li\u003e\n\u003cli\u003edes textes de remplacement pour les images significatives; et\u003c/li\u003e\n\u003cli\u003edes styles visibles pour le focus et les liens.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"limites-connues\"\u003eLimites connues\u003ca class=\"heading-anchor\" href=\"#limites-connues\" aria-label=\"Link to Limites connues\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eCe site personnel évolue et contient du matériel archivé, du contenu importé et d\u0026rsquo;anciennes images. Certains anciens billets, numérisations, diagrammes, contenus intégrés ou pages tierces peuvent ne pas respecter le même niveau d\u0026rsquo;accessibilité que les pages plus récentes.\u003c/p\u003e\n\u003ch2 id=\"rétroaction\"\u003eRétroaction\u003ca class=\"heading-anchor\" href=\"#r%c3%a9troaction\" aria-label=\"Link to Rétroaction\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eSi vous rencontrez un obstacle d\u0026rsquo;accessibilité, veuillez me contacter au moyen de la page \u003ca href=\"/fr/about/\"\u003eÀ propos\u003c/a\u003e\n. Incluez l\u0026rsquo;URL de la page, ce que vous tentiez de faire, le problème rencontré et tout détail sur la technologie d\u0026rsquo;assistance ou le navigateur qui pourrait m\u0026rsquo;aider à le reproduire.\u003c/p\u003e\n\u003cp\u003eJe ne pourrai peut-être pas corriger chaque problème immédiatement, mais je veux savoir lorsqu\u0026rsquo;un élément bloque l\u0026rsquo;accès au site.\u003c/p\u003e\n","date_modified":"2026-07-11T00:00:00Z","date_published":"2026-07-11T00:00:00Z","id":"https://BHDicaire.com/fr/legal/accessibility/","summary":"Je souhaite que ce site soit utilisable par le plus grand nombre possible de personnes, y compris celles qui utilisent le clavier, des lecteurs d\u0026rsquo;écran, le zoom, des paramètres de contraste élevé et des technologies d\u0026rsquo;assistance.\n","title":"Accessibilité","url":"https://BHDicaire.com/fr/legal/accessibility/"},{"content_html":"\u003cp\u003eGood read with many valid observations. “SaaS is not dying. It is being moved from the prize to the packaging.”\u003c/p\u003e\n","date_modified":"2026-07-05T00:00:00Z","date_published":"2026-07-05T00:00:00Z","id":"https://BHDicaire.com/fr/links/new-saas-playbook/","summary":"Good read with many valid observations. “SaaS is not dying. It is being moved from the prize to the packaging.”\n","title":"This Is the New SaaS Playbook","url":"https://BHDicaire.com/fr/links/new-saas-playbook/"},{"content_html":"\u003cp\u003eLe pire moment pour décider où envoyer les vulnérabilités est après que quelqu\u0026rsquo;un en a trouvé une.\u003c/p\u003e\n\u003cp\u003eUne personne découvre une faille, prépare une capture d\u0026rsquo;écran, peut-être une preuve de concept, puis doit choisir quoi faire. Est-ce qu\u0026rsquo;elle cherche encore un contact? Est-ce qu\u0026rsquo;elle envoie le tout à une adresse générique? Est-ce qu\u0026rsquo;elle abandonne parce que personne ne veut signaler une vulnérabilité dans le vide?\u003c/p\u003e\n\u003cp\u003eC\u0026rsquo;est le petit rôle utile de \u003ca href=\"https://securitytxt.org/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003ccode\u003esecurity.txt\u003c/code\u003e\u003c/a\u003e\n. Il donne une adresse documentée à consulter avant de deviner. Une personne qui veut signaler une vulnérabilité devrait pouvoir trouver les détails de divulgation et de signalement ici :\u003c/p\u003e\n\u003cdiv class=\"code-block not-prose\"\u003e\n  \u003cbutton class=\"copy-btn-inline code-block-copy\" type=\"button\" aria-label=\"Copier\" title=\"Copier\" data-copy-label=\"Copier\" data-copied-label=\"Copié\"\u003e\n    \u003csvg class=\"code-block-copy-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/\u003e\n    \u003c/svg\u003e\n    \u003cspan class=\"sr-only\"\u003eCopier\u003c/span\u003e\n  \u003c/button\u003e\n  \u003cdiv class=\"code-block-body\"\u003e\n    \u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-text\" data-lang=\"text\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ehttps://example.com/.well-known/security.txt\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\u003cp\u003eCe n\u0026rsquo;est pas un programme de sécurité. C\u0026rsquo;est une affiche sur la porte qui dit : les rapports de vulnérabilité entrent ici.\u003c/p\u003e\n\u003ch2 id=\"le-standard\"\u003eLe standard\u003ca class=\"heading-anchor\" href=\"#le-standard\" aria-label=\"Link to Le standard\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003esecurity.txt\u003c/code\u003e est défini par la \u003ca href=\"https://datatracker.ietf.org/doc/rfc9116/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eRFC 9116 : A File Format to Aid in Security Vulnerability Disclosure\u003c/a\u003e\n. Il utilise la convention des \u003ca href=\"https://www.rfc-editor.org/rfc/rfc8615.html\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ewell-known URI\u003c/a\u003e\n de la RFC 8615, qui réserve \u003ccode\u003e/.well-known/\u003c/code\u003e aux métadonnées de site que les outils et les personnes devraient pouvoir découvrir de façon prévisible.\u003c/p\u003e\n\u003cp\u003eLa RFC 9116 permet aussi \u003ccode\u003e/security.txt\u003c/code\u003e comme repli, mais \u003ccode\u003e/.well-known/security.txt\u003c/code\u003e est l\u0026rsquo;emplacement à publier en premier.\u003c/p\u003e\n\u003cp\u003eCe n\u0026rsquo;est pas seulement une convention d\u0026rsquo;initiés. Plusieurs organismes gouvernementaux recommandent l\u0026rsquo;utilisation de \u003ccode\u003esecurity.txt\u003c/code\u003e ou de coordonnées de divulgation de vulnérabilités, dont l\u0026rsquo;\u003ca href=\"https://www.cyber.gov.au/resources-business-and-government/governance-and-user-education/governance/vulnerability-disclosure-programs-explained\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eAustralian Cyber Security Centre\u003c/a\u003e\n, le \u003ca href=\"https://www.cyber.gc.ca/fr/preparation-cybersecurite/objectifs-intersectoriels-cybersecurite-outil-preparation#identifier\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eCentre canadien pour la cybersécurité\u003c/a\u003e\n, et la \u003ca href=\"https://cyber.dhs.gov/bod/20-01/#can-we-use-a-securitytxt-file\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eCybersecurity and Infrastructure Security Agency aux États-Unis\u003c/a\u003e\n.\u003c/p\u003e\n\u003cp\u003eCette prévisibilité compte parce que signaler une vulnérabilité est à la fois technique et social. Un chemin de contact clair réduit l\u0026rsquo;incertitude des deux côtés.\u003c/p\u003e\n\u003ch2 id=\"fichier-minimal\"\u003eFichier minimal\u003ca class=\"heading-anchor\" href=\"#fichier-minimal\" aria-label=\"Link to Fichier minimal\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cdiv class=\"code-block not-prose\"\u003e\n  \u003cbutton class=\"copy-btn-inline code-block-copy\" type=\"button\" aria-label=\"Copier\" title=\"Copier\" data-copy-label=\"Copier\" data-copied-label=\"Copié\"\u003e\n    \u003csvg class=\"code-block-copy-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/\u003e\n    \u003c/svg\u003e\n    \u003cspan class=\"sr-only\"\u003eCopier\u003c/span\u003e\n  \u003c/button\u003e\n  \u003cdiv class=\"code-block-body\"\u003e\n    \u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-text\" data-lang=\"text\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eContact: mailto:security@example.com\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eExpires: 2026-12-31T23:59:59Z\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ePreferred-Languages: en, fr\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eCanonical: https://example.com/.well-known/security.txt\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ePolicy: https://example.com/security-policy\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\u003cp\u003eLe champ \u003ccode\u003eContact\u003c/code\u003e est le point d\u0026rsquo;entrée. Le champ \u003ccode\u003eExpires\u003c/code\u003e est la discipline. Un fichier de contact périmé est pire qu\u0026rsquo;un fichier absent parce qu\u0026rsquo;il crée une fausse confiance.\u003c/p\u003e\n\u003cp\u003eLe lien \u003ccode\u003ePolicy\u003c/code\u003e est l\u0026rsquo;endroit où placer l\u0026rsquo;entente humaine : ce que vous voulez recevoir, ce qui est hors portée, les limites de test, la façon dont vous accusez réception, et ce que la personne qui signale peut attendre ensuite.\u003c/p\u003e\n\u003ch2 id=\"ce-que-ça-ne-fait-pas\"\u003eCe que ça ne fait pas\u003ca class=\"heading-anchor\" href=\"#ce-que-%c3%a7a-ne-fait-pas\" aria-label=\"Link to Ce que ça ne fait pas\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003esecurity.txt\u003c/code\u003e ne trie pas les rapports. Il ne définit pas la sévérité. Il ne remplace pas une politique de divulgation de vulnérabilités. Il ne prouve pas que la boîte courriel est surveillée.\u003c/p\u003e\n\u003cp\u003eIl répond seulement à la première question opérationnelle : où envoyer ce rapport?\u003c/p\u003e\n\u003ch2 id=\"exigences-opérationnelles\"\u003eExigences opérationnelles\u003ca class=\"heading-anchor\" href=\"#exigences-op%c3%a9rationnelles\" aria-label=\"Link to Exigences opérationnelles\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003ePublier le fichier est la partie facile. La partie moins confortable, c\u0026rsquo;est qu\u0026rsquo;un \u003ccode\u003esecurity.txt\u003c/code\u003e est une invitation ouverte à signaler, et une invitation à laquelle vous ne répondez pas est pire que pas d\u0026rsquo;invitation du tout.\u003c/p\u003e\n\u003cp\u003eLes contrôles utiles sont derrière :\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ela boîte courriel est surveillée;\u003c/li\u003e\n\u003cli\u003eplus d\u0026rsquo;une personne peut y accéder;\u003c/li\u003e\n\u003cli\u003ele filtre antipourriel ne mange pas les pièces jointes ou les preuves de concept;\u003c/li\u003e\n\u003cli\u003eles rapporteurs reçoivent un accusé de réception;\u003c/li\u003e\n\u003cli\u003ele processus définit la sévérité, le responsable et l\u0026rsquo;escalade;\u003c/li\u003e\n\u003cli\u003ele fichier a une date d\u0026rsquo;expiration et un propriétaire.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAdoptez cette convention seulement si vous allez trier ce qu\u0026rsquo;elle apporte. Si personne ne lit la boîte, le fichier devient une décoration avec une référence à une RFC.\u003c/p\u003e\n\u003ch2 id=\"signature-optionnelle\"\u003eSignature optionnelle\u003ca class=\"heading-anchor\" href=\"#signature-optionnelle\" aria-label=\"Link to Signature optionnelle\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLa RFC 9116 permet de signer numériquement le fichier. La signature peut aider un rapporteur à vérifier que le fichier a été autorisé par l\u0026rsquo;opérateur du site, surtout quand le rapport touche DNS, l\u0026rsquo;hébergement ou une compromission de compte.\u003c/p\u003e\n\u003cp\u003eNe pas signer le fichier sans maintenir la propriété et la rotation des clés. Une signature périmée devient son propre problème opérationnel.\u003c/p\u003e\n\u003ch2 id=\"fin\"\u003eFin\u003ca class=\"heading-anchor\" href=\"#fin\" aria-label=\"Link to Fin\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003esecurity.txt\u003c/code\u003e est petit. C\u0026rsquo;est sa vertu.\u003c/p\u003e\n\u003cp\u003eIl donne à une personne inconnue une porte fiable où frapper. Le reste du processus d\u0026rsquo;incident doit quand même exister derrière la porte, mais au moins la personne qui tente d\u0026rsquo;aider n\u0026rsquo;est plus dans le corridor à se demander où aller.\u003c/p\u003e\n","date_modified":"2026-07-03T00:00:00Z","date_published":"2020-04-25T00:00:00Z","id":"https://BHDicaire.com/fr/blog/security/security-txt/","summary":"Le pire moment pour décider où envoyer les vulnérabilités est après que quelqu\u0026rsquo;un en a trouvé une.\nUne personne découvre une faille, prépare une capture d\u0026rsquo;écran, peut-être une preuve de concept, puis doit choisir quoi faire. Est-ce qu\u0026rsquo;elle cherche encore un contact? Est-ce qu\u0026rsquo;elle envoie le tout à une adresse générique? Est-ce qu\u0026rsquo;elle abandonne parce que personne ne veut signaler une vulnérabilité dans le vide?\n","title":"Security.txt","url":"https://BHDicaire.com/fr/blog/security/security-txt/"},{"content_html":"\u003ch2 id=\"biographie-courte\"\u003eBiographie courte\u003ca class=\"heading-anchor\" href=\"#biographie-courte\" aria-label=\"Link to Biographie courte\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eBenoît H. Dicaire travaille au croisement de la sécurité, de l\u0026rsquo;infrastructure, de la protection des renseignements personnels et de la gouvernance pratique. Ses conférences aident les équipes à prendre de meilleures décisions sur les systèmes complexes, les risques et la livraison.\u003c/p\u003e\n\u003ch2 id=\"biographie-longue\"\u003eBiographie longue\u003ca class=\"heading-anchor\" href=\"#biographie-longue\" aria-label=\"Link to Biographie longue\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eBenoît H. Dicaire est un praticien de la sécurité et des systèmes basé à Montréal. Son travail relie la réalité opérationnelle à la gouvernance, à la protection des renseignements personnels, à l\u0026rsquo;infrastructure et à la communication nécessaire pour rendre les décisions techniques durables. Il parle de programmes de sécurité, de réponse aux incidents, de protection des données, d\u0026rsquo;infrastructure publique et du travail qui transforme des systèmes complexes en choix praticables.\u003c/p\u003e\n\u003ch2 id=\"notes-pour-les-organisateurs\"\u003eNotes pour les organisateurs\u003ca class=\"heading-anchor\" href=\"#notes-pour-les-organisateurs\" aria-label=\"Link to Notes pour les organisateurs\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eUtilisez le titre et le résumé fournis pour l\u0026rsquo;événement lorsque c\u0026rsquo;est possible. Si un résumé personnalisé est nécessaire, gardez une promesse concrète: ce que le public comprendra, décidera ou pourra faire après la séance.\u003c/p\u003e\n\u003ch2 id=\"photos\"\u003ePhotos\u003ca class=\"heading-anchor\" href=\"#photos\" aria-label=\"Link to Photos\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eUtilisez un portrait récent en haute résolution lorsqu\u0026rsquo;il est disponible. Évitez les recadrages trop serrés, les filtres prononcés ou les mises en page où le visage devient trop petit sur les pages mobiles.\u003c/p\u003e\n\u003ch2 id=\"liens\"\u003eLiens\u003ca class=\"heading-anchor\" href=\"#liens\" aria-label=\"Link to Liens\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eSite canonique: \u003ca href=\"https://bhdicaire.com\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ehttps://bhdicaire.com\u003c/a\u003e\n\u003c/p\u003e\n\u003cp\u003eArchive des conférences: \u003ca href=\"https://bhdicaire.com/fr/talks/archive/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ehttps://bhdicaire.com/fr/talks/archive/\u003c/a\u003e\n\u003c/p\u003e\n","date_modified":"2026-07-02T00:00:00Z","date_published":"2026-07-02T00:00:00Z","id":"https://BHDicaire.com/fr/talks/media-kit/","summary":"Biographie courte# Benoît H. Dicaire travaille au croisement de la sécurité, de l\u0026rsquo;infrastructure, de la protection des renseignements personnels et de la gouvernance pratique. Ses conférences aident les équipes à prendre de meilleures décisions sur les systèmes complexes, les risques et la livraison.\n","title":"Ressources pour conférencier","url":"https://BHDicaire.com/fr/talks/media-kit/"},{"content_html":"\u003cp\u003eCette page sert d\u0026rsquo;archive autonome de mes recommandations LinkedIn\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e, plutôt que d\u0026rsquo;utiliser une plateforme tierce pour préserver mon historique indéfiniment.\u003c/p\u003e\n\u003cp\u003eCes notes tracent mon parcours en sécurité de l\u0026rsquo;information, architecture, consultation stratégique, leadership communautaire et mentorat. Elles représentent la confiance et les victoires partagées des personnes qui ont travaillé avec moi, m\u0026rsquo;ont embauché ou ont appris à mes côtés.\u003c/p\u003e\n\u003cdiv class=\"footnotes\" role=\"doc-endnotes\"\u003e\n\u003chr\u003e\n\u003col\u003e\n\u003cli id=\"fn:1\"\u003e\n\u003cp\u003eDans un paysage numérique où les plateformes changent ou disparaissent simplement, je crois à la souveraineté des données.\u0026#160;\u003ca href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\"\u003e\u0026#x21a9;\u0026#xfe0e;\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n","date_modified":"2026-07-02T00:00:00Z","date_published":"2026-07-02T00:00:00Z","id":"https://BHDicaire.com/fr/about/recommandations/","summary":"Cette page sert d\u0026rsquo;archive autonome de mes recommandations LinkedIn1, plutôt que d\u0026rsquo;utiliser une plateforme tierce pour préserver mon historique indéfiniment.\nCes notes tracent mon parcours en sécurité de l\u0026rsquo;information, architecture, consultation stratégique, leadership communautaire et mentorat. Elles représentent la confiance et les victoires partagées des personnes qui ont travaillé avec moi, m\u0026rsquo;ont embauché ou ont appris à mes côtés.\n","title":"Recommandations","url":"https://BHDicaire.com/fr/about/recommandations/"},{"content_html":"\u003cp\u003eCertains de mes textes ont vu le jour ailleurs, façonnés par leur public et le contexte du moment. Je conserve cette page comme un index local permanent pour retracer et préserver ces travaux.\u003c/p\u003e\n","date_modified":"2026-07-02T00:00:00Z","date_published":"2026-07-02T00:00:00Z","id":"https://BHDicaire.com/fr/blog/publie-ailleurs-a-lorigine/","summary":"Certains de mes textes ont vu le jour ailleurs, façonnés par leur public et le contexte du moment. Je conserve cette page comme un index local permanent pour retracer et préserver ces travaux.\n","title":"Publié ailleurs à l'origine","url":"https://BHDicaire.com/fr/blog/publie-ailleurs-a-lorigine/"},{"content_html":"","date_modified":"2026-07-02T00:00:00Z","date_published":"2026-07-02T00:00:00Z","id":"https://BHDicaire.com/fr/talks/office-hours/","summary":"","title":"Les heures de bureau","url":"https://BHDicaire.com/fr/talks/office-hours/"},{"content_html":"\u003cp\u003ePour les pages de référence répétables, je préfère un motif Hugo piloté par les données : placer les faits structurés dans \u003ccode\u003edata/\u003c/code\u003e, écrire un layout qui sait les rendre, et garder la page Markdown centrée sur le contexte.\u003c/p\u003e\n\u003cp\u003eCela rend le site plus facile à maintenir. Le fichier de données peut être trié, relu, généré ou partiellement rafraîchi par un script. Le layout peut améliorer la présentation visuelle sans toucher chaque item. Le contenu Markdown peut expliquer pourquoi la page existe sans devenir un énorme tableau maintenu à la main.\u003c/p\u003e\n\u003cp\u003eLa frontière utile est celle-ci : les fichiers de données gardent les faits stables et les champs éditoriaux, les layouts gardent les règles de présentation, et les scripts ne mettent à jour que les champs qui ont une source amont fiable.\u003c/p\u003e\n\u003cp\u003eIl y a deux variantes de ce motif sur le site. Pour quelques pages éditoriales durables, je garde un fichier Markdown explicite et je laisse son layout lire le fichier de données. Pour les grands ensembles d\u0026rsquo;items qui doivent devenir plusieurs vraies pages, j\u0026rsquo;utilise un adaptateur de contenu Hugo nommé \u003ccode\u003e_content.gotmpl\u003c/code\u003e. J\u0026rsquo;explique ce compromis dans \u003ca href=\"/fr/blog/go-template-pages/\"\u003eCréer des pages avec les templates Go de Hugo\u003c/a\u003e\n.\u003c/p\u003e\n\u003cp\u003eL\u0026rsquo;inventaire actuel est:\u003c/p\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003ePage\u003c/th\u003e\n          \u003cth\u003eDonnées\u003c/th\u003e\n          \u003cth\u003eLayout\u003c/th\u003e\n          \u003cth\u003eMise à jour\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"/fr/blog/ref/emojis/\"\u003eEmojis\u003c/a\u003e\n\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003edata/series/ref/emoji.yml\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003elayouts/references/emojis.html\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003enpm run emoji\u003c/code\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"/fr/blog/blogroll/\"\u003eBlogroll\u003c/a\u003e\n\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003edata/blogroll.yml\u003c/code\u003e, \u003ccode\u003edata/github-following.yml\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003elayouts/blog/blogroll.html\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003enpm run blogroll\u003c/code\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"/fr/links/\"\u003eLiens\u003c/a\u003e\n\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003edata/links.yml\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003elayouts/links/list.html\u003c/code\u003e, \u003ccode\u003elayouts/links/single.html\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003enpm run links\u003c/code\u003e, \u003ccode\u003enpm run links:import-stars\u003c/code\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"/fr/resources/books/\"\u003eLivres\u003c/a\u003e\n\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003edata/books.yml\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003elayouts/books/list.html\u003c/code\u003e, \u003ccode\u003elayouts/books/single.html\u003c/code\u003e, \u003ccode\u003elayouts/books/shelf.html\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003enpm run books\u003c/code\u003e, \u003ccode\u003enpm run books:enrich\u003c/code\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"/fr/resources/projects/\"\u003eProjets\u003c/a\u003e\n\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003edata/projects.yml\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003elayouts/resources/projects.html\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eManuel\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"/fr/resources/publications/\"\u003ePublications\u003c/a\u003e\n\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003edata/publications.yml\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003elayouts/publications/publications.html\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eManuel\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"/fr/blog/opml/\"\u003eOPML\u003c/a\u003e\n\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003edata/rss.opml.xml\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003elayouts/blog/opml.html\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eExport manuel\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"/fr/blog/ref/glossary/\"\u003eGlossaire\u003c/a\u003e\n\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003edata/series/ref/glossary.yml\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003elayouts/references/glossary.html\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eManuel\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"/fr/blog/ref/quotes/\"\u003eCitations\u003c/a\u003e\n\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003edata/series/ref/quotes.yml\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003elayouts/references/quotes.html\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eManuel\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ca href=\"/fr/blog/ref/iso-3166/\"\u003eISO 3166\u003c/a\u003e\n\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003edata/iso-3166.yml\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003elayouts/references/iso-3166.html\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eManuel\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eCertaines pages ont leurs propres notes parce que les règles de mise à jour comptent. La note sur la \u003ca href=\"/fr/til/emoji-data-updater/\"\u003emise à jour des données emoji\u003c/a\u003e\n documente les fichiers amont considérés fiables. La note sur la \u003ca href=\"/fr/til/link-short-url-structure/\"\u003estructure des URL courtes des liens\u003c/a\u003e\n documente la relation entre les pages locales et les URL courtes \u003ccode\u003edicai.re\u003c/code\u003e. La note sur l\u0026rsquo;\u003ca href=\"/fr/til/blogroll-github-following/\"\u003einstantané GitHub Following du blogroll\u003c/a\u003e\n documente la mise à jour de la liste GitHub.\u003c/p\u003e\n\u003cp\u003eJe veux quand même que les fichiers de données restent lisibles à la main. Si la sortie générée devient impossible à relire, l\u0026rsquo;automatisation aide davantage la machine que le site.\u003c/p\u003e\n","date_modified":"2026-06-29T00:00:00Z","date_published":"2026-06-17T00:00:00Z","id":"https://BHDicaire.com/fr/til/hugo-data-driven-site/","summary":"Pour les pages de référence répétables, je préfère un motif Hugo piloté par les données : placer les faits structurés dans data/, écrire un layout qui sait les rendre, et garder la page Markdown centrée sur le contexte.\n","title":"Un site Hugo piloté par les données","url":"https://BHDicaire.com/fr/til/hugo-data-driven-site/"},{"content_html":"\u003cp\u003eHugo commence généralement avec des fichiers Markdown dans \u003ccode\u003econtent/\u003c/code\u003e. Un fichier devient une page, le front matter devient la métadonnée de la page, et le layout correspondant décide de l\u0026rsquo;affichage.\u003c/p\u003e\n\u003cp\u003eCe modèle est excellent pour les essais et les notes. Il devient moins agréable quand la source existe déjà sous forme de données structurées.\u003c/p\u003e\n\u003cp\u003ePour les sections \u003ca href=\"/fr/resources/books/\"\u003eLivres\u003c/a\u003e\n et \u003ca href=\"/fr/links/\"\u003eLiens\u003c/a\u003e\n, je ne veux pas écrire des centaines de fichiers Markdown à la main. La source de vérité est une donnée: \u003ccode\u003edata/books.yml\u003c/code\u003e et \u003ccode\u003edata/links.yml\u003c/code\u003e. Hugo peut transformer ces données en vraies pages pendant la génération avec un adaptateur de contenu.\u003c/p\u003e\n\u003ch2 id=\"ce-quest-un-adaptateur-de-contenu\"\u003eCe qu\u0026rsquo;est un adaptateur de contenu\u003ca class=\"heading-anchor\" href=\"#ce-quest-un-adaptateur-de-contenu\" aria-label=\"Link to Ce qu’est un adaptateur de contenu\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eUn adaptateur de contenu est un template Go nommé \u003ccode\u003e_content.gotmpl\u003c/code\u003e qui vit dans l\u0026rsquo;arborescence \u003ccode\u003econtent/\u003c/code\u003e. Hugo l\u0026rsquo;exécute pendant la génération du site. Le template peut appeler \u003ccode\u003eAddPage\u003c/code\u003e pour créer des pages dynamiquement.\u003c/p\u003e\n\u003cp\u003ePar exemple:\u003c/p\u003e\n\u003cdiv class=\"code-block not-prose\"\u003e\n  \u003cbutton class=\"copy-btn-inline code-block-copy\" type=\"button\" aria-label=\"Copier\" title=\"Copier\" data-copy-label=\"Copier\" data-copied-label=\"Copié\"\u003e\n    \u003csvg class=\"code-block-copy-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/\u003e\n    \u003c/svg\u003e\n    \u003cspan class=\"sr-only\"\u003eCopier\u003c/span\u003e\n  \u003c/button\u003e\n  \u003cdiv class=\"code-block-body\"\u003e\n    \u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-go-html-template\" data-lang=\"go-html-template\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e{{\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003e$content\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e:=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003edict\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;mediaType\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;text/markdown\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;value\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;Un court corps de page généré.\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e}}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e{{\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003e$page\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e:=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003edict\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;content\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003e$content\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;kind\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;page\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;path\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;page-generee\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;title\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;Page générée\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e}}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e{{\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003e.AddPage\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003e$page\u003c/span\u003e \u003cspan style=\"color:#75715e\"\u003e}}\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\u003cp\u003eCela crée une page à un chemin relatif à l\u0026rsquo;adaptateur. Si l\u0026rsquo;adaptateur vit dans \u003ccode\u003econtent/resources/books/_content.gotmpl\u003c/code\u003e, la page générée devient \u003ccode\u003e/resources/books/page-generee/\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eL\u0026rsquo;idée importante est que les pages générées sont quand même des pages Hugo. Elles peuvent utiliser les layouts de section, les taxonomies, les flux RSS, les alternatives de langue, l\u0026rsquo;index de recherche et les mêmes partials que le contenu écrit à la main.\u003c/p\u003e\n\u003ch2 id=\"comment-je-lutilise\"\u003eComment je l\u0026rsquo;utilise\u003ca class=\"heading-anchor\" href=\"#comment-je-lutilise\" aria-label=\"Link to Comment je l’utilise\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eL\u0026rsquo;adaptateur des livres lit \u003ccode\u003ehugo.Data.books.books\u003c/code\u003e, parcourt chaque livre et crée une page par item. Le corps de la page vient de la description du livre. Les paramètres de page transportent ce dont le layout a besoin: auteurs, couverture, statut, détails de publication, liens sources, sujets et provenance.\u003c/p\u003e\n\u003cp\u003eLa forme simplifiée ressemble à ceci:\u003c/p\u003e\n\u003cdiv class=\"code-block not-prose\"\u003e\n  \u003cbutton class=\"copy-btn-inline code-block-copy\" type=\"button\" aria-label=\"Copier\" title=\"Copier\" data-copy-label=\"Copier\" data-copied-label=\"Copié\"\u003e\n    \u003csvg class=\"code-block-copy-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\n      \u003cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/\u003e\n    \u003c/svg\u003e\n    \u003cspan class=\"sr-only\"\u003eCopier\u003c/span\u003e\n  \u003c/button\u003e\n  \u003cdiv class=\"code-block-body\"\u003e\n    \u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-go-html-template\" data-lang=\"go-html-template\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e{{\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003e.EnableAllLanguages\u003c/span\u003e \u003cspan style=\"color:#75715e\"\u003e}}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e{{\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003e$adapter\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e:=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003e.\u003c/span\u003e \u003cspan style=\"color:#75715e\"\u003e}}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e{{\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003erange\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003e$book\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e:=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ehugo\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003e.Data.books.books\u003c/span\u003e \u003cspan style=\"color:#75715e\"\u003e}}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#75715e\"\u003e{{\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003e$content\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e:=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003edict\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;mediaType\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;text/markdown\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;value\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e(\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003e$book\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003e.description\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e|\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003edefault\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\u0026#34;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#75715e\"\u003e}}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#75715e\"\u003e{{\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003e$params\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e:=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003edict\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;authors\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003e$book\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003e.authors\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;cover\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003e$book\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003e.cover\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;status\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003e$book\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003e.status\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#75715e\"\u003e}}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#75715e\"\u003e{{\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003e$page\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e:=\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003edict\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;content\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003e$content\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;kind\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;page\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;params\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003e$params\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;path\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003e$book\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003e.id\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;title\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003e$book\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003e.title\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#75715e\"\u003e}}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#75715e\"\u003e{{\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003e$adapter\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003e.AddPage\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003e$page\u003c/span\u003e \u003cspan style=\"color:#75715e\"\u003e}}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e{{\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003eend\u003c/span\u003e \u003cspan style=\"color:#75715e\"\u003e}}\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\u003cp\u003eJe garde \u003ccode\u003e$adapter := .\u003c/code\u003e près du début parce que \u003ccode\u003e.\u003c/code\u003e change à l\u0026rsquo;intérieur de \u003ccode\u003erange\u003c/code\u003e et de \u003ccode\u003ewith\u003c/code\u003e. Conserver l\u0026rsquo;objet de l\u0026rsquo;adaptateur dans une variable rend l\u0026rsquo;appel à \u003ccode\u003eAddPage\u003c/code\u003e explicite et évite les surprises de portée.\u003c/p\u003e\n\u003cp\u003eLa section Liens utilise le même motif: lire les données YAML, construire une map de page, puis appeler \u003ccode\u003eAddPage\u003c/code\u003e. La différence est dans le layout. Une page de lien s\u0026rsquo;intéresse à l\u0026rsquo;URL externe, aux URL courtes, à la source et à la classification. Une page de livre s\u0026rsquo;intéresse à la couverture, aux auteurs, au statut et aux détails bibliographiques.\u003c/p\u003e\n\u003ch2 id=\"les-données-de-page\"\u003eLes données de page\u003ca class=\"heading-anchor\" href=\"#les-donn%c3%a9es-de-page\" aria-label=\"Link to Les données de page\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLa map passée à \u003ccode\u003eAddPage\u003c/code\u003e est le pont entre les données et Hugo.\u003c/p\u003e\n\u003cp\u003eLes champs que j\u0026rsquo;utilise le plus sont:\u003c/p\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003eChamp\u003c/th\u003e\n          \u003cth\u003eRôle\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ccode\u003epath\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eLe chemin généré, relatif à l\u0026rsquo;adaptateur\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ccode\u003etitle\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eLe titre de la page\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ccode\u003econtent.mediaType\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eLe format du corps généré\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ccode\u003econtent.value\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eLe contenu généré\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ccode\u003eparams\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eLes valeurs personnalisées accessibles dans les layouts avec \u003ccode\u003e.Params\u003c/code\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ccode\u003edates\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003edate\u003c/code\u003e, \u003ccode\u003elastmod\u003c/code\u003e et les autres dates de page\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003ccode\u003ekind\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eGénéralement \u003ccode\u003epage\u003c/code\u003e pour les pages individuelles générées\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eLe fichier de données peut donc rester sous forme de données, pendant que l\u0026rsquo;adaptateur le traduit en pages Hugo.\u003c/p\u003e\n\u003ch2 id=\"quand-je-lutilise\"\u003eQuand je l\u0026rsquo;utilise\u003ca class=\"heading-anchor\" href=\"#quand-je-lutilise\" aria-label=\"Link to Quand je l’utilise\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eUn adaptateur \u003ccode\u003e_content.gotmpl\u003c/code\u003e mérite sa place quand les données doivent devenir plusieurs vraies pages Hugo. Les livres et les liens sont de bons exemples : chaque item a besoin de sa propre URL, de son résultat de recherche, de sa métadonnée, de son comportement de taxonomie et de son layout, mais je ne veux pas des centaines de fichiers Markdown écrits à la main qui ne feraient que refléter le YAML.\u003c/p\u003e\n\u003cp\u003eJ\u0026rsquo;utilise un adaptateur quand la plupart de ces conditions sont vraies:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ela source de vérité est une donnée structurée\u003c/li\u003e\n\u003cli\u003eun item de donnée doit devenir une page Hugo\u003c/li\u003e\n\u003cli\u003eles pages partagent une forme stable\u003c/li\u003e\n\u003cli\u003ele nombre d\u0026rsquo;items est assez grand pour que les fichiers écrits à la main deviennent du bruit\u003c/li\u003e\n\u003cli\u003eles pages générées doivent se comporter comme des pages normales pour la recherche, les flux, les alternatives de langue ou les taxonomies\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eC\u0026rsquo;est le bon terrain pour un adaptateur : traduire des enregistrements structurés en pages Hugo au moment de la génération.\u003c/p\u003e\n\u003ch2 id=\"quand-je-ne-lutilise-pas\"\u003eQuand je ne l\u0026rsquo;utilise pas\u003ca class=\"heading-anchor\" href=\"#quand-je-ne-lutilise-pas\" aria-label=\"Link to Quand je ne l’utilise pas\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLa plupart de mes pages de blogue et de référence pilotées par les données utilisent un motif plus simple : un fichier Markdown explicite et un layout personnalisé qui lit dans \u003ccode\u003edata/\u003c/code\u003e. Le fichier Markdown porte la surface éditoriale durable : titre, date, alias, collection, tags, description et introduction. Le layout porte la liste, le tableau, les cartes, les filtres ou toute autre présentation.\u003c/p\u003e\n\u003cp\u003eCe motif est meilleur quand la page elle-même est l\u0026rsquo;artefact. La page des recommandations, le glossaire, le Plan nord-américain de numérotation et les listes SSID en sont des exemples. Elles sont pilotées par les données, mais elles ne cherchent pas à créer des centaines de pages enfants indépendantes.\u003c/p\u003e\n\u003cp\u003ePour la séparation des listes SSID, je n\u0026rsquo;utiliserais pas \u003ccode\u003e_content.gotmpl\u003c/code\u003e. Il ne faut que deux pages durables plus la page de survol renommée, et ces pages profitent de fichiers Markdown explicites pour le front matter, les alias, la recherche et le comportement de collection. Un adaptateur de contenu serait astucieux, mais il ajouterait plus de mécanisme que de valeur pour une séparation aussi petite.\u003c/p\u003e\n\u003ch2 id=\"pourquoi-ne-pas-générer-des-fichiers-markdown\"\u003ePourquoi ne pas générer des fichiers Markdown\u003ca class=\"heading-anchor\" href=\"#pourquoi-ne-pas-g%c3%a9n%c3%a9rer-des-fichiers-markdown\" aria-label=\"Link to Pourquoi ne pas générer des fichiers Markdown\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eJe pourrais écrire un script Node qui crée un fichier Markdown par livre ou par lien. Cela fonctionnerait, mais ajouterait beaucoup de fichiers générés au dépôt.\u003c/p\u003e\n\u003cp\u003eUn adaptateur de contenu garde une frontière plus propre:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eles imports bruts vivent dans \u003ccode\u003ecsv/\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eles données canoniques vivent dans \u003ccode\u003edata/\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eles pages générées existent seulement au moment de la génération\u003c/li\u003e\n\u003cli\u003eles layouts restent responsables de la présentation\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eC\u0026rsquo;est la partie que j\u0026rsquo;aime. Le dépôt contient la source et les règles, pas une pile de sortie jetable.\u003c/p\u003e\n\u003ch2 id=\"les-compromis\"\u003eLes compromis\u003ca class=\"heading-anchor\" href=\"#les-compromis\" aria-label=\"Link to Les compromis\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLes adaptateurs de contenu sont puissants, mais ils déplacent une partie de la création de pages dans des templates Go. Ce n\u0026rsquo;est pas toujours l\u0026rsquo;environnement de programmation le plus confortable.\u003c/p\u003e\n\u003cp\u003eQuelques règles aident:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003egarder le nettoyage lourd et les appels d\u0026rsquo;API dans des scripts\u003c/li\u003e\n\u003cli\u003egarder \u003ccode\u003e_content.gotmpl\u003c/code\u003e centré sur la conversion des données en pages\u003c/li\u003e\n\u003cli\u003estabiliser les chemins avant de publier\u003c/li\u003e\n\u003cli\u003econserver la provenance dans le fichier de données\u003c/li\u003e\n\u003cli\u003eutiliser un layout normal pour le HTML final\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAutrement dit : les scripts préparent les données, l\u0026rsquo;adaptateur de contenu crée les pages, et les layouts les rendent lisibles.\u003c/p\u003e\n\u003cp\u003eCette séparation rend les sections Livres et Liens maintenables. Le site peut publier des centaines de pages sans transformer le dossier \u003ccode\u003econtent\u003c/code\u003e en tiroir fourre-tout.\u003c/p\u003e\n","date_modified":"2026-06-29T00:00:00Z","date_published":"2026-06-18T00:00:00Z","id":"https://BHDicaire.com/fr/blog/go-template-pages/","summary":"Hugo commence généralement avec des fichiers Markdown dans content/. Un fichier devient une page, le front matter devient la métadonnée de la page, et le layout correspondant décide de l\u0026rsquo;affichage.\n","title":"Créer des pages avec les templates Go de Hugo","url":"https://BHDicaire.com/fr/blog/go-template-pages/"},{"content_html":"","date_modified":"2026-06-29T00:00:00Z","date_published":"2026-06-29T00:00:00Z","id":"https://BHDicaire.com/fr/blog/themes/wind-and-weather/","summary":"","title":"Wind and weather","url":"https://BHDicaire.com/fr/blog/themes/wind-and-weather/"},{"content_html":"","date_modified":"2026-06-29T00:00:00Z","date_published":"2026-06-29T00:00:00Z","id":"https://BHDicaire.com/fr/blog/themes/volcanoes/","summary":"","title":"Volcanoes","url":"https://BHDicaire.com/fr/blog/themes/volcanoes/"},{"content_html":"\u003cp\u003eLes blogues traditionnels sont linéaires. Les nouveaux billets apparaissent en haut, les anciens descendent dans l\u0026rsquo;archive, et chaque entrée est généralement traitée comme une version finale et polie. Ce modèle convient encore à plusieurs choses que j\u0026rsquo;écris. Certains billets sont des essais. D\u0026rsquo;autres sont des annonces. D\u0026rsquo;autres encore gardent la trace de ce que je pensais à un moment précis.\u003c/p\u003e\n\u003cp\u003eMais toutes les pages de ce site ne veulent pas être terminées de cette façon.\u003c/p\u003e\n\u003cp\u003eCertaines notes ressemblent davantage à un jardin numérique : un endroit où les idées peuvent commencer comme des graines, accumuler des liens, devenir des AJA, grandir en billets de blogue, puis parfois devenir une petite collection. Ce modèle préfère le travail en cours à la mise en scène d\u0026rsquo;une marque personnelle trop lisse.\u003c/p\u003e\n\u003ch2 id=\"documents-vivants\"\u003eDocuments vivants\u003ca class=\"heading-anchor\" href=\"#documents-vivants\" aria-label=\"Link to Documents vivants\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eJe me dirige vers une façon de traiter davantage de billets techniques comme des documents vivants. Une note sur la configuration SSH, par exemple, ne devrait pas prétendre être finale. Les valeurs par défaut changent. OpenSSH change. Mon modèle de menace change. La bonne posture en 2024 peut avoir besoin d\u0026rsquo;être taillée en 2026.\u003c/p\u003e\n\u003cp\u003ePour ces billets, la date de publication originale compte moins que la dernière mise à jour significative. La page devrait rendre les deux visibles :\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCréé :\u003c/strong\u003e le moment où la note est devenue publique.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eMis à jour :\u003c/strong\u003e le moment où le contenu a changé de façon substantielle.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eJournal des changements :\u003c/strong\u003e seulement quand la page a besoin d\u0026rsquo;une trace d\u0026rsquo;audit pour les révisions importantes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eC\u0026rsquo;est pourquoi je préfère un front matter qui contient à la fois \u003ccode\u003edate\u003c/code\u003e et \u003ccode\u003elastmod\u003c/code\u003e. La date de création garde la provenance. La date de mise à jour indique si la page est encore entretenue.\u003c/p\u003e\n\u003ch2 id=\"evergreen-ne-veut-pas-dire-statique\"\u003eEvergreen ne veut pas dire statique\u003ca class=\"heading-anchor\" href=\"#evergreen-ne-veut-pas-dire-statique\" aria-label=\"Link to Evergreen ne veut pas dire statique\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eOn décrit souvent le contenu evergreen comme du contenu qui reste utile dans le temps. Je pense que ce n\u0026rsquo;est qu\u0026rsquo;à moitié vrai. Une page vraiment evergreen reste utile parce qu\u0026rsquo;elle peut être revisitée, corrigée, enrichie et parfois élaguée.\u003c/p\u003e\n\u003cp\u003eCela demande d\u0026rsquo;accepter que le contenu n\u0026rsquo;est jamais vraiment terminé. Revenir sur les notes, les tailler et les enrichir quand une nouvelle information arrive. Ajouter un lien quand la source est petite. Écrire un AJA quand la leçon est autonome. En faire un billet quand il faut plus de contexte. En faire une collection quand l\u0026rsquo;idée devient une petite carte.\u003c/p\u003e\n\u003ch2 id=\"journaux-de-changements-quand-ils-aident\"\u003eJournaux de changements quand ils aident\u003ca class=\"heading-anchor\" href=\"#journaux-de-changements-quand-ils-aident\" aria-label=\"Link to Journaux de changements quand ils aident\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eChaque modification ne mérite pas un journal de changements. Corriger une faute, améliorer une phrase ou ajouter une référence peut simplement mettre \u003ccode\u003elastmod\u003c/code\u003e à jour.\u003c/p\u003e\n\u003cp\u003eUn journal de changements devient utile quand le lecteur peut se soucier de ce qui a changé :\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eune recommandation de sécurité a changé\u003c/li\u003e\n\u003cli\u003eune commande ou une configuration a été remplacée\u003c/li\u003e\n\u003cli\u003ela page recommande maintenant un outil différent\u003c/li\u003e\n\u003cli\u003eun ancien conseil a été retiré parce qu\u0026rsquo;il est devenu dangereux, trompeur ou obsolète\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDans ces cas-là, la page ne devrait pas cacher son évolution. Le journal de changements fait partie du modèle de confiance.\u003c/p\u003e\n\u003ch2 id=\"une-meilleure-forme-pour-ce-site\"\u003eUne meilleure forme pour ce site\u003ca class=\"heading-anchor\" href=\"#une-meilleure-forme-pour-ce-site\" aria-label=\"Link to Une meilleure forme pour ce site\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLe site possède déjà les pièces nécessaires : liens, notes AJA, billets, références et collections. La prochaine étape consiste à les utiliser plus intentionnellement.\u003c/p\u003e\n\u003cp\u003eUn blogue peut être evergreen s\u0026rsquo;il cesse de prétendre que chaque billet est un artefact scellé. Certaines pages devraient rester des essais. D\u0026rsquo;autres devraient être des jardins entretenus : datés, mis à jour, liés et autorisés à grandir publiquement.\u003c/p\u003e\n","date_modified":"2026-06-29T00:00:00Z","date_published":"2026-06-29T00:00:00Z","id":"https://BHDicaire.com/fr/blog/can-a-blog-be-evergreen/","summary":"Les blogues traditionnels sont linéaires. Les nouveaux billets apparaissent en haut, les anciens descendent dans l\u0026rsquo;archive, et chaque entrée est généralement traitée comme une version finale et polie. Ce modèle convient encore à plusieurs choses que j\u0026rsquo;écris. Certains billets sont des essais. D\u0026rsquo;autres sont des annonces. D\u0026rsquo;autres encore gardent la trace de ce que je pensais à un moment précis.\n","title":"Un blogue peut-il être evergreen?","url":"https://BHDicaire.com/fr/blog/can-a-blog-be-evergreen/"},{"content_html":"","date_modified":"2026-06-29T00:00:00Z","date_published":"2026-06-29T00:00:00Z","id":"https://BHDicaire.com/fr/blog/themes/starfleet-starships-registry/","summary":"","title":"Starfleet starships registry","url":"https://BHDicaire.com/fr/blog/themes/starfleet-starships-registry/"},{"content_html":"","date_modified":"2026-06-29T00:00:00Z","date_published":"2026-06-29T00:00:00Z","id":"https://BHDicaire.com/fr/blog/themes/starfleet-ship-name/","summary":"","title":"Starfleet ship name","url":"https://BHDicaire.com/fr/blog/themes/starfleet-ship-name/"},{"content_html":"","date_modified":"2026-06-29T00:00:00Z","date_published":"2026-06-29T00:00:00Z","id":"https://BHDicaire.com/fr/blog/themes/starfleet-ship-commander/","summary":"","title":"Starfleet ship commander","url":"https://BHDicaire.com/fr/blog/themes/starfleet-ship-commander/"},{"content_html":"","date_modified":"2026-06-29T00:00:00Z","date_published":"2026-06-29T00:00:00Z","id":"https://BHDicaire.com/fr/blog/themes/starfleet-ship-class/","summary":"","title":"Starfleet ship class","url":"https://BHDicaire.com/fr/blog/themes/starfleet-ship-class/"},{"content_html":"","date_modified":"2026-06-29T00:00:00Z","date_published":"2026-06-29T00:00:00Z","id":"https://BHDicaire.com/fr/blog/themes/spices/","summary":"","title":"Spices","url":"https://BHDicaire.com/fr/blog/themes/spices/"},{"content_html":"","date_modified":"2026-06-29T00:00:00Z","date_published":"2026-06-29T00:00:00Z","id":"https://BHDicaire.com/fr/blog/themes/singers/","summary":"","title":"Singers","url":"https://BHDicaire.com/fr/blog/themes/singers/"}],"title":"Benoît H. Dicaire","version":"https://jsonfeed.org/version/1.1"}