@hgdc/docs 0.4.2 → 0.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/package.json +1 -1
  2. package/src/integration.ts +8 -1
  3. package/src/styles/theme.css +36 -5
  4. package/template/.astro/content-modules.mjs +15 -35
  5. package/template/.build/.well-known/llms.txt +34 -51
  6. package/template/.build/404.html +4 -4
  7. package/template/.build/_astro/Search.astro_astro_type_script_index_0_lang.VKDD8r2I.js +1 -0
  8. package/template/.build/_astro/common.BoKrWC_6.css +3 -0
  9. package/template/.build/_astro/logo-clair.BqNh6JNi.svg +1 -0
  10. package/template/.build/_astro/logo-sombre.BkgsFXxh.svg +1 -0
  11. package/template/.build/_hgdc/corpus.json +1 -1
  12. package/template/.build/demarrer/premiere-doc/index.html +25 -0
  13. package/template/.build/demarrer/premiere-doc.md +65 -0
  14. package/template/.build/explications/donnees/index.html +55 -0
  15. package/template/.build/explications/donnees.md +28 -0
  16. package/template/.build/explications/fonctionnement/index.html +33 -0
  17. package/template/.build/explications/fonctionnement.md +32 -0
  18. package/template/.build/guides/agents/index.html +59 -0
  19. package/template/.build/guides/agents.md +54 -0
  20. package/template/.build/guides/assistant/index.html +60 -0
  21. package/template/.build/guides/assistant.md +46 -0
  22. package/template/.build/guides/composants/index.html +38 -0
  23. package/template/.build/guides/composants.md +103 -0
  24. package/template/.build/guides/ecrire/index.html +56 -0
  25. package/template/.build/guides/ecrire.md +63 -0
  26. package/template/.build/guides/elements/index.html +1 -0
  27. package/template/.build/guides/navigation/index.html +30 -0
  28. package/template/.build/guides/navigation.md +63 -0
  29. package/template/.build/guides/publier/index.html +27 -0
  30. package/template/.build/guides/publier.md +65 -0
  31. package/template/.build/guides/theme/index.html +27 -0
  32. package/template/.build/guides/theme.md +33 -0
  33. package/template/.build/images/favicon.svg +1 -0
  34. package/template/.build/images/logo-clair.svg +1 -0
  35. package/template/.build/images/logo-sombre.svg +1 -0
  36. package/template/.build/index.html +14 -18
  37. package/template/.build/index.md +21 -59
  38. package/template/.build/llms-full.txt +515 -2331
  39. package/template/.build/llms.txt +34 -51
  40. package/template/.build/pagefind/fragment/fr-ch_1aa5706.pf_fragment +0 -0
  41. package/template/.build/pagefind/fragment/fr-ch_21308c9.pf_fragment +0 -0
  42. package/template/.build/pagefind/fragment/fr-ch_256be83.pf_fragment +0 -0
  43. package/template/.build/pagefind/fragment/fr-ch_3786e05.pf_fragment +0 -0
  44. package/template/.build/pagefind/fragment/fr-ch_3e2d7bf.pf_fragment +0 -0
  45. package/template/.build/pagefind/fragment/fr-ch_53e6d95.pf_fragment +0 -0
  46. package/template/.build/pagefind/fragment/fr-ch_7011e1a.pf_fragment +0 -0
  47. package/template/.build/pagefind/fragment/fr-ch_7252d5b.pf_fragment +0 -0
  48. package/template/.build/pagefind/fragment/fr-ch_8a5f581.pf_fragment +0 -0
  49. package/template/.build/pagefind/fragment/fr-ch_9221692.pf_fragment +0 -0
  50. package/template/.build/pagefind/fragment/fr-ch_a4b68e2.pf_fragment +0 -0
  51. package/template/.build/pagefind/fragment/fr-ch_d4ef5e9.pf_fragment +0 -0
  52. package/template/.build/pagefind/fragment/fr-ch_edaf413.pf_fragment +0 -0
  53. package/template/.build/pagefind/fragment/fr-ch_f017e56.pf_fragment +0 -0
  54. package/template/.build/pagefind/fragment/fr-ch_fe71cc1.pf_fragment +0 -0
  55. package/template/.build/pagefind/index/fr-ch_481c81a.pf_index +0 -0
  56. package/template/.build/pagefind/pagefind-entry.json +1 -1
  57. package/template/.build/pagefind/pagefind.fr-ch_46a632d8eba7e.pf_meta +0 -0
  58. package/template/.build/reference/api-assistant/index.html +102 -0
  59. package/template/.build/reference/api-assistant.md +60 -0
  60. package/template/.build/reference/cli/index.html +11 -153
  61. package/template/.build/reference/cli.md +23 -159
  62. package/template/.build/reference/docs-json/index.html +157 -0
  63. package/template/.build/reference/docs-json.md +47 -0
  64. package/template/.build/reference/mcp/index.html +92 -0
  65. package/template/.build/reference/mcp.md +49 -0
  66. package/template/node_modules/.vite/deps/_metadata.json +8 -8
  67. package/template/.astro/data-store.json +0 -1
  68. package/template/.astro/settings.json +0 -5
  69. package/template/.build/_astro/Search.astro_astro_type_script_index_0_lang.D7EcezBU.js +0 -1
  70. package/template/.build/_astro/common.Dx3aBIS0.css +0 -3
  71. package/template/.build/_astro/logo.BPu921Tp.svg +0 -1
  72. package/template/.build/concepts/confidentialite/index.html +0 -50
  73. package/template/.build/concepts/confidentialite.md +0 -38
  74. package/template/.build/concepts/deploiements/index.html +0 -106
  75. package/template/.build/concepts/deploiements.md +0 -70
  76. package/template/.build/concepts/organisations-et-roles/index.html +0 -83
  77. package/template/.build/concepts/organisations-et-roles.md +0 -39
  78. package/template/.build/concepts/preversion/index.html +0 -49
  79. package/template/.build/concepts/preversion.md +0 -52
  80. package/template/.build/concepts/secrets-et-coffre/index.html +0 -70
  81. package/template/.build/concepts/secrets-et-coffre.md +0 -54
  82. package/template/.build/demarrer/depuis-github/index.html +0 -34
  83. package/template/.build/demarrer/depuis-github.md +0 -68
  84. package/template/.build/demarrer/premier-site/index.html +0 -28
  85. package/template/.build/demarrer/premier-site.md +0 -94
  86. package/template/.build/guides/brancher-un-domaine/index.html +0 -91
  87. package/template/.build/guides/brancher-un-domaine.md +0 -81
  88. package/template/.build/guides/cle-d-api/index.html +0 -62
  89. package/template/.build/guides/cle-d-api.md +0 -78
  90. package/template/.build/guides/depannage/index.html +0 -64
  91. package/template/.build/guides/depannage.md +0 -69
  92. package/template/.build/guides/deployer-depuis-github/index.html +0 -45
  93. package/template/.build/guides/deployer-depuis-github.md +0 -70
  94. package/template/.build/guides/deployer-un-framework/index.html +0 -81
  95. package/template/.build/guides/deployer-un-framework.md +0 -74
  96. package/template/.build/guides/github-actions-sans-application/index.html +0 -53
  97. package/template/.build/guides/github-actions-sans-application.md +0 -95
  98. package/template/.build/guides/inviter-une-personne/index.html +0 -28
  99. package/template/.build/guides/inviter-une-personne.md +0 -38
  100. package/template/.build/guides/lire-les-logs/index.html +0 -37
  101. package/template/.build/guides/lire-les-logs.md +0 -48
  102. package/template/.build/guides/migrer-depuis-vercel/index.html +0 -25
  103. package/template/.build/guides/migrer-depuis-vercel.md +0 -51
  104. package/template/.build/guides/monorepo/index.html +0 -40
  105. package/template/.build/guides/monorepo.md +0 -42
  106. package/template/.build/guides/revenir-en-arriere/index.html +0 -39
  107. package/template/.build/guides/revenir-en-arriere.md +0 -50
  108. package/template/.build/guides/site-statique/index.html +0 -41
  109. package/template/.build/guides/site-statique.md +0 -59
  110. package/template/.build/guides/synchroniser-doppler/index.html +0 -46
  111. package/template/.build/guides/synchroniser-doppler.md +0 -63
  112. package/template/.build/guides/variables-d-environnement/index.html +0 -73
  113. package/template/.build/guides/variables-d-environnement.md +0 -92
  114. package/template/.build/images/famille/account.svg +0 -1
  115. package/template/.build/images/famille/analytics.svg +0 -1
  116. package/template/.build/images/famille/docs.svg +0 -1
  117. package/template/.build/images/famille/host.svg +0 -1
  118. package/template/.build/images/famille/mail.svg +0 -1
  119. package/template/.build/images/famille/portal.svg +0 -1
  120. package/template/.build/images/famille/status.svg +0 -1
  121. package/template/.build/images/logo.svg +0 -1
  122. package/template/.build/pagefind/fragment/fr-ch_16987e2.pf_fragment +0 -0
  123. package/template/.build/pagefind/fragment/fr-ch_2b4c97b.pf_fragment +0 -0
  124. package/template/.build/pagefind/fragment/fr-ch_3294a5c.pf_fragment +0 -0
  125. package/template/.build/pagefind/fragment/fr-ch_34858c9.pf_fragment +0 -0
  126. package/template/.build/pagefind/fragment/fr-ch_39ddba1.pf_fragment +0 -0
  127. package/template/.build/pagefind/fragment/fr-ch_4ab1899.pf_fragment +0 -0
  128. package/template/.build/pagefind/fragment/fr-ch_4d3a52a.pf_fragment +0 -0
  129. package/template/.build/pagefind/fragment/fr-ch_506c187.pf_fragment +0 -0
  130. package/template/.build/pagefind/fragment/fr-ch_5aa255a.pf_fragment +0 -0
  131. package/template/.build/pagefind/fragment/fr-ch_6841c7d.pf_fragment +0 -0
  132. package/template/.build/pagefind/fragment/fr-ch_6dc7a2d.pf_fragment +0 -0
  133. package/template/.build/pagefind/fragment/fr-ch_847edff.pf_fragment +0 -0
  134. package/template/.build/pagefind/fragment/fr-ch_8745af7.pf_fragment +0 -0
  135. package/template/.build/pagefind/fragment/fr-ch_8aac5e6.pf_fragment +0 -0
  136. package/template/.build/pagefind/fragment/fr-ch_916b233.pf_fragment +0 -0
  137. package/template/.build/pagefind/fragment/fr-ch_9fd014a.pf_fragment +0 -0
  138. package/template/.build/pagefind/fragment/fr-ch_a0808f8.pf_fragment +0 -0
  139. package/template/.build/pagefind/fragment/fr-ch_a4e1f69.pf_fragment +0 -0
  140. package/template/.build/pagefind/fragment/fr-ch_a80a53d.pf_fragment +0 -0
  141. package/template/.build/pagefind/fragment/fr-ch_a9e725b.pf_fragment +0 -0
  142. package/template/.build/pagefind/fragment/fr-ch_ac3f64c.pf_fragment +0 -0
  143. package/template/.build/pagefind/fragment/fr-ch_af292f1.pf_fragment +0 -0
  144. package/template/.build/pagefind/fragment/fr-ch_af3e716.pf_fragment +0 -0
  145. package/template/.build/pagefind/fragment/fr-ch_b0689a4.pf_fragment +0 -0
  146. package/template/.build/pagefind/fragment/fr-ch_baed996.pf_fragment +0 -0
  147. package/template/.build/pagefind/fragment/fr-ch_c89e27a.pf_fragment +0 -0
  148. package/template/.build/pagefind/fragment/fr-ch_cd6ca13.pf_fragment +0 -0
  149. package/template/.build/pagefind/fragment/fr-ch_d09af09.pf_fragment +0 -0
  150. package/template/.build/pagefind/fragment/fr-ch_d4bcea8.pf_fragment +0 -0
  151. package/template/.build/pagefind/fragment/fr-ch_dc2a134.pf_fragment +0 -0
  152. package/template/.build/pagefind/fragment/fr-ch_ded7ddc.pf_fragment +0 -0
  153. package/template/.build/pagefind/fragment/fr-ch_e2528cb.pf_fragment +0 -0
  154. package/template/.build/pagefind/fragment/fr-ch_e3cbb4e.pf_fragment +0 -0
  155. package/template/.build/pagefind/fragment/fr-ch_e7902d9.pf_fragment +0 -0
  156. package/template/.build/pagefind/fragment/fr-ch_f48ca47.pf_fragment +0 -0
  157. package/template/.build/pagefind/index/fr-ch_8a5f905.pf_index +0 -0
  158. package/template/.build/pagefind/index/fr-ch_fbd9c96.pf_index +0 -0
  159. package/template/.build/pagefind/pagefind.fr-ch_211aacbfa7f0e.pf_meta +0 -0
  160. package/template/.build/reference/api/deploiements/index.html +0 -326
  161. package/template/.build/reference/api/deploiements.md +0 -170
  162. package/template/.build/reference/api/erreurs/index.html +0 -102
  163. package/template/.build/reference/api/erreurs.md +0 -50
  164. package/template/.build/reference/api/fichiers/index.html +0 -82
  165. package/template/.build/reference/api/fichiers.md +0 -62
  166. package/template/.build/reference/api/introduction/index.html +0 -126
  167. package/template/.build/reference/api/introduction.md +0 -84
  168. package/template/.build/reference/api/projets/index.html +0 -184
  169. package/template/.build/reference/api/projets.md +0 -102
  170. package/template/.build/reference/api/utilisateur/index.html +0 -96
  171. package/template/.build/reference/api/utilisateur.md +0 -89
  172. package/template/.build/reference/api/variables/index.html +0 -75
  173. package/template/.build/reference/api/variables.md +0 -58
  174. package/template/.build/reference/compatibilite/index.html +0 -196
  175. package/template/.build/reference/compatibilite.md +0 -64
  176. package/template/.build/reference/domaines/index.html +0 -171
  177. package/template/.build/reference/domaines.md +0 -76
  178. package/template/.build/reference/limites/index.html +0 -159
  179. package/template/.build/reference/limites.md +0 -56
  180. package/template/.build/reference/variables/index.html +0 -164
  181. package/template/.build/reference/variables.md +0 -63
  182. package/template/.build/reference/vercel-json/index.html +0 -65
  183. package/template/.build/reference/vercel-json.md +0 -51
@@ -0,0 +1,25 @@
1
+ <!DOCTYPE html><html lang="fr-CH" dir="ltr" data-theme="dark" data-has-toc data-has-sidebar class="astro-mgylisfi"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"/><title>Ta première doc en cinq minutes | Docs</title><style>:root{--sl-color-accent-low:#282041;--sl-color-accent:#aa73ff;--sl-color-accent-high:#e8b7ff;--hgdc-on-accent:#000000;}:root:not([data-hd-theme="dark"]){--sl-color-accent-low:#f1e9ff;--sl-color-accent:#7c3aed;--sl-color-accent-high:#4e00ae;--hgdc-on-accent:#ffffff;}</style><link rel="shortcut icon" href="/images/favicon.svg" type="image/svg+xml"/><meta name="generator" content="Astro v7.3.8"/><meta name="generator" content="Starlight v0.42.6"/><meta property="og:title" content="Ta première doc en cinq minutes"/><meta property="og:type" content="article"/><meta property="og:locale" content="fr-CH"/><meta property="og:description" content="Créer le dossier, écrire docs.json et une page, puis voir le site en local."/><meta property="og:site_name" content="Docs"/><meta name="twitter:card" content="summary_large_image"/><meta name="description" content="Créer le dossier, écrire docs.json et une page, puis voir le site en local."/><link rel="alternate" type="text/markdown" href="/demarrer/premiere-doc.md"><link rel="describedby" type="text/markdown" href="/llms.txt"><script>
2
+ ;(() => {
3
+ let stored = null
4
+ try {
5
+ stored = localStorage.getItem("starlight-theme")
6
+ } catch {}
7
+ const dark =
8
+ stored === "dark" || (stored === "auto" && matchMedia("(prefers-color-scheme: dark)").matches)
9
+ const theme = dark ? "dark" : "light"
10
+ document.documentElement.dataset.theme = theme
11
+ document.documentElement.dataset.hdTheme = theme
12
+ window.StarlightThemeProvider = { updatePickers() {} }
13
+ })()
14
+ </script><link rel="stylesheet" href="/_astro/print.ehPL0gv-.css" media="print"><link rel="stylesheet" href="/_astro/common.BoKrWC_6.css"><style>@layer starlight.components{svg:where(.astro-kvkgfy7v){color:var(--sl-icon-color);font-size:var(--sl-icon-size,1em);width:1em;height:1em;overflow:visible}}
15
+ @layer starlight.components{starlight-tabs:where(.astro-opkipegj){display:block}.tablist-wrapper:where(.astro-opkipegj){overflow-x:auto}:where(.astro-opkipegj)[role=tablist]{border-bottom:2px solid var(--sl-color-gray-5);padding:0;list-style:none;display:flex}.tab:where(.astro-opkipegj){display:flex}.tab:where(.astro-opkipegj)>:where(.astro-opkipegj)[role=tab]{--sl-tab-color-border:var(--sl-color-gray-5);line-height:var(--sl-line-height-headings);box-shadow:0 2px 0 var(--sl-tab-color-border);color:var(--sl-color-gray-3);outline-offset:var(--sl-outline-offset-inside);overflow-wrap:initial;align-items:center;gap:.5rem;padding:.275rem 1.25rem;text-decoration:none;display:flex}.tab:where(.astro-opkipegj) :where(.astro-opkipegj)[role=tab][aria-selected=true]{--sl-tab-color-border:var(--sl-color-text-accent);color:var(--sl-color-white);font-weight:600}.tablist-wrapper:where(.astro-opkipegj)~[role=tabpanel]{margin-top:1rem}}
16
+ </style><script type="module" src="/_astro/page.cNngjUgL.js"></script></head><body class="astro-mgylisfi"><a class="sl-skip-link astro-hlhzrz26" href="#_top">Aller au contenu</a><div class="hd-page"><header class="hd-topbar"><div class="hd-header"><div class="hd-header__start"><button type="button" class="hd-icon-button hd-menu-button" popovertarget="starlight__sidebar" aria-label="Menu de la documentation" aria-controls="starlight__sidebar"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4 7h16M4 12h16M4 17h10"></path></svg></button><a class="hd-brand" href="/"><span class="hd-brand__mark"><img class="hd-brand__light" src="/images/logo-clair.svg" alt="" width="24" height="24"><img class="hd-brand__dark" src="/images/logo-sombre.svg" alt="" width="24" height="24"></span><span class="hd-brand__name">Docs</span></a></div><nav class="hd-header__tabs" aria-label="Sections de la documentation"><a href="/" aria-current="page">Guides</a><a href="/reference/docs-json/">Référence</a><a href="/explications/fonctionnement/">Explications</a></nav><div class="hd-header__end"><hd-search data-base data-assistant><button type="button" class="hd-search-trigger" data-open aria-haspopup="dialog" aria-label="Rechercher (Ctrl K)"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M11 18a7 7 0 1 0 0-14 7 7 0 0 0 0 14Zm5-2 4 4"></path></svg><span class="hd-search-trigger__label">Rechercher</span><kbd class="hd-kbd" data-shortcut>Ctrl K</kbd></button><dialog class="hd-palette" aria-label="Rechercher dans la documentation"><div class="hd-palette__box"><div class="hd-palette__field"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M11 18a7 7 0 1 0 0-14 7 7 0 0 0 0 14Zm5-2 4 4"></path></svg><input type="text" data-input placeholder="Rechercher dans la documentation" autocomplete="off" spellcheck="false" role="combobox" aria-expanded="false" aria-controls="hd-palette-results" aria-autocomplete="list"><button type="button" class="hd-kbd hd-kbd--button" data-close>Échap</button></div><div class="hd-palette__results" id="hd-palette-results" role="listbox" aria-label="Résultats" data-results></div><p class="hd-palette__status" data-status role="status">Tape un mot pour chercher dans les pages.</p><footer class="hd-palette__hints" aria-hidden="true"><span><kbd class="hd-kbd">↑</kbd><kbd class="hd-kbd">↓</kbd> Choisir</span><span><kbd class="hd-kbd">↵</kbd> Ouvrir</span><span><kbd class="hd-kbd">Échap</kbd> Fermer</span></footer></div></dialog></hd-search><script type="module" src="/_astro/Search.astro_astro_type_script_index_0_lang.VKDD8r2I.js"></script><button type="button" class="hd-icon-button" data-hgdc-ask aria-label="Demander à l'assistant" title="Demander à l'assistant (Ctrl I)"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3.5 13.6 8a3 3 0 0 0 1.9 1.9L20 11.5l-4.5 1.6a3 3 0 0 0-1.9 1.9L12 19.5 10.4 15a3 3 0 0 0-1.9-1.9L4 11.5 8.5 9.9A3 3 0 0 0 10.4 8ZM19 3v3M20.5 4.5h-3"></path></svg></button><nav class="hd-header__links" aria-label="Liens"><a class="hd-pill hd-pill--ghost" href="https://hgdc.ch">HGDC</a><a class="hd-pill hd-pill--primary" href="https://docs.hgdc.ch">Console</a></nav><button type="button" class="hd-icon-button hd-theme-button" data-hd-theme-toggle aria-label="Passer au thème sombre"><svg class="hd-icon hd-theme-button__moon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M20 14.5A8 8 0 1 1 9.5 4a6.5 6.5 0 0 0 10.5 10.5Z"></path></svg><svg class="hd-icon hd-theme-button__sun" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 16a4 4 0 1 0 0-8 4 4 0 0 0 0 8ZM12 2.5v2M12 19.5v2M4.6 4.6 6 6M18 18l1.4 1.4M2.5 12h2M19.5 12h2M4.6 19.4 6 18M18 6l1.4-1.4"></path></svg></button><script type="module">var e=`starlight-theme`,t=()=>{try{return localStorage.getItem(e)||`light`}catch{return`light`}},n=()=>matchMedia(`(prefers-color-scheme: light)`).matches?`light`:`dark`,r=t=>{try{localStorage.setItem(e,t)}catch{}let r=t===`auto`?n():t;document.documentElement.dataset.theme=r,document.documentElement.dataset.hdTheme=r,i()},i=()=>{let e=t(),n=document.documentElement.dataset.theme===`dark`;for(let e of document.querySelectorAll(`[data-hd-theme-toggle]`))e.setAttribute(`aria-label`,n?`Passer au thème clair`:`Passer au thème sombre`);for(let t of document.querySelectorAll(`[data-hd-theme-choice]`)){let n=t.dataset.hdThemeChoice===e;t.setAttribute(`aria-checked`,String(n)),t.tabIndex=n?0:-1}};for(let e of document.querySelectorAll(`[data-hd-theme-toggle]`))e.addEventListener(`click`,()=>r(document.documentElement.dataset.theme===`dark`?`light`:`dark`));for(let e of document.querySelectorAll(`.hd-theme-choice`)){let t=[...e.querySelectorAll(`[data-hd-theme-choice]`)];for(let e of t)e.addEventListener(`click`,()=>r(e.dataset.hdThemeChoice));e.addEventListener(`keydown`,e=>{let n=e.key===`ArrowRight`||e.key===`ArrowDown`?1:e.key===`ArrowLeft`||e.key===`ArrowUp`?-1:0;if(!n)return;e.preventDefault();let i=t.findIndex(e=>e.getAttribute(`aria-checked`)===`true`),a=t[(i+n+t.length)%t.length];r(a.dataset.hdThemeChoice),a.focus()})}matchMedia(`(prefers-color-scheme: light)`).addEventListener(`change`,()=>{t()===`auto`&&r(`auto`)}),i();</script></div></div></header><nav class="hd-sidebar" aria-label="Navigation de la documentation"><script type="module">for(let e of document.querySelectorAll(`[data-hgdc-version]`))e.addEventListener(`change`,()=>window.location.assign(e.value));var e=document.querySelector(`.sidebar-pane`);if(e){let t=`hd-sidebar-scroll`;try{let n=Number(sessionStorage.getItem(t));n&&(e.scrollTop=n)}catch{}let n=e.querySelector(`[aria-current="page"]`);if(n){let t=e.getBoundingClientRect(),r=n.getBoundingClientRect();(r.top<t.top||r.bottom>t.bottom)&&n.scrollIntoView({block:`center`})}addEventListener(`pagehide`,()=>{try{sessionStorage.setItem(t,String(e.scrollTop))}catch{}})}</script><hd-sidebar-pane popover="auto" id="starlight__sidebar" class="sidebar-pane"><div class="hd-sidebar__content"><div class="hd-mobile-only hd-sidebar-head"><a class="hd-brand" href="/"><span class="hd-brand__name">Docs</span></a><button type="button" class="hd-icon-button" popovertarget="starlight__sidebar" popovertargetaction="hide" aria-label="Fermer le menu"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M6 6l12 12M18 6 6 18"></path></svg></button></div><nav class="hd-mobile-only hd-sidebar-tabs" aria-label="Sections de la documentation"><a href="/" aria-current="page">Guides</a><a href="/reference/docs-json/">Référence</a><a href="/explications/fonctionnement/">Explications</a></nav><ul class="hd-nav hd-nav--depth-0"><li class="hd-nav__group"><p class="hd-nav__heading">Démarrer</p><ul class="hd-nav hd-nav--depth-1"><li><a href="/" class="hd-nav__link"><span>Bienvenue</span></a></li><li><a href="/demarrer/premiere-doc/" class="hd-nav__link" aria-current="page"><span>Ta première doc</span></a></li><li><a href="/guides/publier/" class="hd-nav__link"><span>Publier</span></a></li></ul></li><li class="hd-nav__group"><p class="hd-nav__heading">Écrire</p><ul class="hd-nav hd-nav--depth-1"><li><a href="/guides/ecrire/" class="hd-nav__link"><span>Écrire en MDX</span></a></li><li><a href="/guides/composants/" class="hd-nav__link"><span>Composants</span></a></li><li><a href="/guides/navigation/" class="hd-nav__link"><span>Navigation</span></a></li><li><a href="/guides/theme/" class="hd-nav__link"><span>Thème et logo</span></a></li></ul></li><li class="hd-nav__group"><p class="hd-nav__heading">Assistant et agents</p><ul class="hd-nav hd-nav--depth-1"><li><a href="/guides/assistant/" class="hd-nav__link"><span>Assistant</span></a></li><li><a href="/guides/agents/" class="hd-nav__link"><span>Pour les agents</span></a></li></ul></li></ul><div class="hd-mobile-only hd-sidebar-footer"><nav class="hd-sidebar-links" aria-label="Liens"><a href="https://hgdc.ch">HGDC</a><a class="hd-pill hd-pill--primary" href="https://docs.hgdc.ch">Console</a></nav><div class="hd-theme-choice" role="radiogroup" aria-label="Thème"><button type="button" role="radio" aria-checked="false" data-hd-theme-choice="auto" aria-label="Système" title="Système"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4 5h16a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1Zm4 15h8m-4-3v3"></path></svg></button><button type="button" role="radio" aria-checked="false" data-hd-theme-choice="light" aria-label="Clair" title="Clair"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 16a4 4 0 1 0 0-8 4 4 0 0 0 0 8ZM12 2.5v2M12 19.5v2M4.6 4.6 6 6M18 18l1.4 1.4M2.5 12h2M19.5 12h2M4.6 19.4 6 18M18 6l1.4-1.4"></path></svg></button><button type="button" role="radio" aria-checked="false" data-hd-theme-choice="dark" aria-label="Sombre" title="Sombre"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M20 14.5A8 8 0 1 1 9.5 4a6.5 6.5 0 0 0 10.5 10.5Z"></path></svg></button></div></div></div></hd-sidebar-pane></nav><div class="hd-main-frame main-frame"><script type="module">var e=document.getElementById(`starlight__sidebar`),t=e?.querySelector(`sl-sidebar-state-persist`),n=`sl-sidebar-state`,r=()=>{let r=[],i=t?.dataset.hash||``;try{let e=sessionStorage.getItem(n),t=JSON.parse(e||`{}`);Array.isArray(t.open)&&t.hash===i&&(r=t.open)}catch{}return{hash:i,open:r,scroll:e?.scrollTop||0}},i=e=>{try{sessionStorage.setItem(n,JSON.stringify(e))}catch{}},a=()=>i(r()),o=(e,t)=>{let n=r();n.open[t]=e,i(n)};t?.addEventListener(`click`,e=>{if(!(e.target instanceof Element))return;let t=e.target.closest(`summary`)?.closest(`details`);if(!t)return;let n=t.querySelector(`sl-sidebar-restore`),r=parseInt(n?.dataset.index||``);isNaN(r)||o(!t.open,r)}),addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&a()});</script><div class="hd-columns hd-columns--toc"><div class="hd-columns__main main-pane"><main data-pagefind-body class="astro-mgylisfi" lang="fr-CH" dir="ltr"><div class="content-panel astro-lavu2imw"><div class="sl-container astro-lavu2imw"><div class="hd-title not-content"><p class="hd-eyebrow" data-pagefind-meta="section">Démarrer</p><div class="hd-title__row"><h1 id="_top">Ta première doc en cinq minutes</h1><div class="hd-page-actions" data-hgdc-skip data-pagefind-ignore><div class="hd-split"><button type="button" class="hd-split__main" data-hgdc-copy="/demarrer/premiere-doc.md"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M9 9h10a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1V10a1 1 0 0 1 1-1Zm-4 6H4.5A1.5 1.5 0 0 1 3 13.5v-9A1.5 1.5 0 0 1 4.5 3h9A1.5 1.5 0 0 1 15 4.5V5"></path></svg><span data-label>Copier la page</span></button><details class="hd-menu"><summary class="hd-split__more" aria-label="Autres formats de la page"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="m6 9 6 6 6-6"></path></svg></summary><ul class="hd-menu__list"><li><button type="button" data-hgdc-copy-item><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M9 9h10a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1V10a1 1 0 0 1 1-1Zm-4 6H4.5A1.5 1.5 0 0 1 3 13.5v-9A1.5 1.5 0 0 1 4.5 3h9A1.5 1.5 0 0 1 15 4.5V5"></path></svg><span><strong>Copier la page</strong><small>En Markdown, pour un LLM</small></span></button></li><li><a href="/demarrer/premiere-doc.md"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4 6h16a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1Zm3 9V9l2.5 3L12 9v6m5-6v6m-2-2 2 2 2-2"></path></svg><span><strong>Voir en Markdown</strong><small>La page en texte brut</small></span></a></li><li><a data-hgdc-open="claude" href="https://claude.ai/new" target="_blank" rel="noopener"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M7 17 17 7M8 7h9v9"></path></svg><span><strong>Ouvrir dans Claude</strong><small>Poser une question sur cette page</small></span></a></li><li><a data-hgdc-open="chatgpt" href="https://chatgpt.com/" target="_blank" rel="noopener"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M7 17 17 7M8 7h9v9"></path></svg><span><strong>Ouvrir dans ChatGPT</strong><small>Poser une question sur cette page</small></span></a></li><li><a href="/llms.txt"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8Zm0 0v5h5M9 13h6m-6 4h4"></path></svg><span><strong>llms.txt</strong><small>L'index de la doc pour les agents</small></span></a></li></ul></details></div><span class="sr-only" role="status" aria-live="polite" data-hgdc-copy-status></span></div></div><p class="hd-lead">Créer le dossier, écrire docs.json et une page, puis voir le site en local.</p></div><script type="module">var e=document.querySelector(`[data-hgdc-copy-status]`),t=document.querySelector(`[data-hgdc-copy]`);async function n(){if(!t)return;let n=t.querySelector(`[data-label]`),r=t=>{n.textContent=t,e&&(e.textContent=t),setTimeout(()=>n.textContent=`Copier la page`,2e3)};try{let e=await fetch(t.dataset.hgdcCopy);if(!e.ok)throw Error(String(e.status));await navigator.clipboard.writeText(await e.text()),r(`Page copiée`)}catch{r(`Copie impossible`)}}if(t?.addEventListener(`click`,()=>void n()),document.querySelector(`[data-hgdc-copy-item]`)?.addEventListener(`click`,()=>{document.querySelector(`.hd-menu`).open=!1,n()}),t){let e=`Lis ${new URL(t.dataset.hgdcCopy,location.href).href} et réponds à mes questions sur cette page.`;for(let t of document.querySelectorAll(`[data-hgdc-open]`))t.href=`${t.dataset.hgdcOpen===`claude`?`https://claude.ai/new`:`https://chatgpt.com/`}?q=${encodeURIComponent(e)}`}for(let e of document.querySelectorAll(`.hd-menu`))document.addEventListener(`click`,t=>{e.open&&!e.contains(t.target)&&(e.open=!1)}),e.addEventListener(`keydown`,t=>{t.key===`Escape`&&e.open&&(t.stopPropagation(),e.open=!1,e.querySelector(`summary`)?.focus())});</script></div></div><div class="content-panel astro-lavu2imw"><div class="sl-container astro-lavu2imw"><div class="sl-markdown-content"><p>Il te faut Node.js 22 ou plus récent, ou Bun. Tout le reste s’installe avec le paquet <code>@hgdc/docs</code>.</p>
17
+ <ol class="hgdc-steps"><li class="hgdc-step"><p class="hgdc-step__title">Créer le dossier</p><div class="hgdc-step__body"><p>Un dépôt Git à part, ou un dossier <code>docs/</code> dans le dépôt de ton produit.</p><div class="expressive-code"><link rel="stylesheet" href="/_astro/ec.t9qpe.css"><script type="module" src="/_astro/ec.0vx5m.js"></script><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#953800;--1:#FFA657">mkdir</span><span style="--0:#1F2328;--1:#E6EDF3"> </span><span style="--0:#0A3069;--1:#A5D6FF">docs</span><span style="--0:#1F2328;--1:#E6EDF3"> &#x26;&#x26; </span><span style="--0:#0550AE;--1:#79C0FF">cd</span><span style="--0:#1F2328;--1:#E6EDF3"> </span><span style="--0:#0A3069;--1:#A5D6FF">docs</span></div></div><div class="ec-line"><div class="code"><span style="--0:#953800;--1:#FFA657">npm</span><span style="--0:#1F2328;--1:#E6EDF3"> </span><span style="--0:#0A3069;--1:#A5D6FF">init</span><span style="--0:#1F2328;--1:#E6EDF3"> </span><span style="--0:#0550AE;--1:#79C0FF">-y</span></div></div><div class="ec-line"><div class="code"><span style="--0:#953800;--1:#FFA657">npm</span><span style="--0:#1F2328;--1:#E6EDF3"> </span><span style="--0:#0A3069;--1:#A5D6FF">install</span><span style="--0:#1F2328;--1:#E6EDF3"> </span><span style="--0:#0550AE;--1:#79C0FF">--save-dev</span><span style="--0:#1F2328;--1:#E6EDF3"> </span><span style="--0:#0A3069;--1:#A5D6FF">@hgdc/docs</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copier dans le presse-papiers" data-copied="Copié !" data-code="mkdir docs &#x26;&#x26; cd docsnpm init -ynpm install --save-dev @hgdc/docs"><div></div></button></div></figure></div></div></li><li class="hgdc-step"><p class="hgdc-step__title">Écrire docs.json</p><div class="hgdc-step__body"><p>À la racine du dossier. Seuls <code>name</code> et <code>navigation</code> sont obligatoires.</p><div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="json"><code><div class="ec-line"><div class="code"><span style="--0:#1F2328;--1:#E6EDF3">{</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#116329;--1:#7EE787">"name"</span><span style="--0:#1F2328;--1:#E6EDF3">: </span><span style="--0:#0A3069;--1:#A5D6FF">"Documentation Acme"</span><span style="--0:#1F2328;--1:#E6EDF3">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#116329;--1:#7EE787">"colors"</span><span style="--0:#1F2328;--1:#E6EDF3">: { </span><span style="--0:#116329;--1:#7EE787">"primary"</span><span style="--0:#1F2328;--1:#E6EDF3">: </span><span style="--0:#0A3069;--1:#A5D6FF">"#0f766e"</span><span style="--0:#1F2328;--1:#E6EDF3"> },</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#116329;--1:#7EE787">"navigation"</span><span style="--0:#1F2328;--1:#E6EDF3">: {</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#116329;--1:#7EE787">"groups"</span><span style="--0:#1F2328;--1:#E6EDF3">: [{ </span><span style="--0:#116329;--1:#7EE787">"group"</span><span style="--0:#1F2328;--1:#E6EDF3">: </span><span style="--0:#0A3069;--1:#A5D6FF">"Démarrer"</span><span style="--0:#1F2328;--1:#E6EDF3">, </span><span style="--0:#116329;--1:#7EE787">"pages"</span><span style="--0:#1F2328;--1:#E6EDF3">: [</span><span style="--0:#0A3069;--1:#A5D6FF">"index"</span><span style="--0:#1F2328;--1:#E6EDF3">, </span><span style="--0:#0A3069;--1:#A5D6FF">"installation"</span><span style="--0:#1F2328;--1:#E6EDF3">] }]</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#1F2328;--1:#E6EDF3"> </span></span><span style="--0:#1F2328;--1:#E6EDF3">}</span></div></div><div class="ec-line"><div class="code"><span style="--0:#1F2328;--1:#E6EDF3">}</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copier dans le presse-papiers" data-copied="Copié !" data-code="{ &#x22;name&#x22;: &#x22;Documentation Acme&#x22;, &#x22;colors&#x22;: { &#x22;primary&#x22;: &#x22;#0f766e&#x22; }, &#x22;navigation&#x22;: { &#x22;groups&#x22;: [{ &#x22;group&#x22;: &#x22;Démarrer&#x22;, &#x22;pages&#x22;: [&#x22;index&#x22;, &#x22;installation&#x22;] }] }}"><div></div></button></div></figure></div></div></li><li class="hgdc-step"><p class="hgdc-step__title">Écrire les pages</p><div class="hgdc-step__body"><p>Une page par entrée de la navigation : <code>index.mdx</code> et <code>installation.mdx</code>. Chaque page commence par un titre.</p><div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="mdx"><code><div class="ec-line"><div class="code"><span style="--0:#0A3069;--1:#A5D6FF">---</span></div></div><div class="ec-line"><div class="code"><span style="--0:#116329;--1:#7EE787">title</span><span style="--0:#1F2328;--1:#E6EDF3">: </span><span style="--0:#0A3069;--1:#A5D6FF">Installation</span></div></div><div class="ec-line"><div class="code"><span style="--0:#116329;--1:#7EE787">description</span><span style="--0:#1F2328;--1:#E6EDF3">: </span><span style="--0:#0A3069;--1:#A5D6FF">Installer Acme en deux minutes.</span></div></div><div class="ec-line"><div class="code"><span style="--0:#0A3069;--1:#A5D6FF">---</span></div></div><div class="ec-line"><div class="code">
18
+ </div></div><div class="ec-line"><div class="code"><span style="--0:#1F2328;--1:#E6EDF3">Lance la commande suivante :</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copier dans le presse-papiers" data-copied="Copié !" data-code="---title: Installationdescription: Installer Acme en deux minutes.---Lance la commande suivante :"><div></div></button></div></figure></div></div></li><li class="hgdc-step"><p class="hgdc-step__title">Voir le site</p><div class="hgdc-step__body"><p>Ajoute les scripts dans <code>package.json</code>, puis lance <code>npm run dev</code>.</p><div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="json"><code><div class="ec-line"><div class="code"><span style="--0:#1F2328;--1:#E6EDF3">{</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#116329;--1:#7EE787">"scripts"</span><span style="--0:#1F2328;--1:#E6EDF3">: {</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#116329;--1:#7EE787">"dev"</span><span style="--0:#1F2328;--1:#E6EDF3">: </span><span style="--0:#0A3069;--1:#A5D6FF">"hgdc-docs dev"</span><span style="--0:#1F2328;--1:#E6EDF3">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#116329;--1:#7EE787">"build"</span><span style="--0:#1F2328;--1:#E6EDF3">: </span><span style="--0:#0A3069;--1:#A5D6FF">"hgdc-docs build"</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#1F2328;--1:#E6EDF3"> </span></span><span style="--0:#1F2328;--1:#E6EDF3">}</span></div></div><div class="ec-line"><div class="code"><span style="--0:#1F2328;--1:#E6EDF3">}</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copier dans le presse-papiers" data-copied="Copié !" data-code="{ &#x22;scripts&#x22;: { &#x22;dev&#x22;: &#x22;hgdc-docs dev&#x22;, &#x22;build&#x22;: &#x22;hgdc-docs build&#x22; }}"><div></div></button></div></figure></div><p>Le site s’ouvre sur <code>http://localhost:4321</code> et se recharge à chaque modification.</p></div></li></ol>
19
+ <aside class="hd-callout" data-tone="note" aria-label="Note"><svg class="hd-icon hd-callout__icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18Zm0-5v-4.5m0-3.5h.01"></path></svg><div class="hd-callout__body"><p><code>hgdc-docs build</code> écrit le site dans <code>dist/</code>. Ajoute <code>dist/</code> et <code>.hgdc-docs/</code> à ton <code>.gitignore</code>.</p></div></aside>
20
+ <h2 id="et-ensuite">Et ensuite</h2>
21
+ <ul>
22
+ <li><a href="/guides/publier/">Publier avec Host</a> pour mettre le site en ligne.</li>
23
+ <li><a href="/guides/ecrire/">Écrire en MDX</a> pour les titres, les liens, les images et le code.</li>
24
+ <li><a href="/reference/docs-json/">docs.json</a> pour toutes les options.</li>
25
+ </ul></div><hgdc-feedback class="hgdc-feedback not-content" data-endpoint="https://docs.hgdc.ch/api/v1/feedback" data-project="jn7dj6vzkgs7n2d16kqjtb99yd8gbdw0" data-pagefind-ignore="true"><div data-step="ask"><p class="hgdc-feedback__question">Cette page t'a aidé ?</p><div class="hgdc-feedback__choices"><button type="button" data-helpful="true"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M7 10v11M15 5.9 14 10h5.8a2 2 0 0 1 1.9 2.5l-2.3 7A2 2 0 0 1 17.5 21H4a1 1 0 0 1-1-1v-9a1 1 0 0 1 1-1h2.8a2 2 0 0 0 1.8-1.1L12 2a3.1 3.1 0 0 1 3 3.9Z"></path></svg>Oui</button><button type="button" data-helpful="false"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M17 14V3M9 18.1 10 14H4.2a2 2 0 0 1-1.9-2.5l2.3-7A2 2 0 0 1 6.5 3H20a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1h-2.8a2 2 0 0 0-1.8 1.1L12 22a3.1 3.1 0 0 1-3-3.9Z"></path></svg>Non</button></div></div><form data-step="comment" hidden><label for="hgdc-feedback-comment">Qu'est-ce qui manquait ou pourrait être plus clair ? (facultatif)</label><textarea id="hgdc-feedback-comment" name="comment" rows="3" maxlength="1000"></textarea><div class="hgdc-feedback__choices"><button type="submit">Envoyer</button><button type="button" data-skip>Passer</button></div></form><p data-step="done" class="hgdc-feedback__done" role="status" hidden>Merci, c'est noté.</p></hgdc-feedback><nav class="hd-pagination not-content" aria-label="Pages voisines" data-pagefind-ignore><a class="hd-pagination__link" href="/" rel="prev"><span class="hd-pagination__hint"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="m15 6-6 6 6 6"></path></svg>Précédent</span><span class="hd-pagination__title">Bienvenue</span></a><a class="hd-pagination__link hd-pagination__link--next" href="/guides/publier/" rel="next"><span class="hd-pagination__hint">Suivant<svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="m9 6 6 6-6 6"></path></svg></span><span class="hd-pagination__title">Publier</span></a></nav><script type="module" src="/_astro/Footer.astro_astro_type_script_index_0_lang.DzCnn3OT.js"></script></div></div></main><form class="hd-askbar" data-askbar data-pagefind-ignore><label class="sr-only" for="hd-askbar-input">Pose une question à l'assistant</label><input id="hd-askbar-input" data-askbar-input type="text" maxlength="1000" placeholder="Pose une question…" autocomplete="off"><kbd class="hd-kbd" data-shortcut aria-hidden="true">Ctrl I</kbd><button type="submit" class="hd-send" aria-label="Envoyer la question"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 19V5m-6 6 6-6 6 6"></path></svg></button></form></div><aside class="hd-columns__toc" aria-label="Sur cette page"><div class="hd-toc-scroll"><starlight-toc data-min-h="2" data-max-h="3"><nav aria-labelledby="starlight__on-this-page"><h2 id="starlight__on-this-page">Sur cette page</h2><ul class="astro-vqenwucp" style="--depth: 0;"><li style="--depth: 0;" class="astro-vqenwucp"><a href="#_top" style="--depth: 0;" class="astro-vqenwucp"><span style="--depth: 0;" class="astro-vqenwucp">Vue d’ensemble</span></a></li><li style="--depth: 0;" class="astro-vqenwucp"><a href="#et-ensuite" style="--depth: 0;" class="astro-vqenwucp"><span style="--depth: 0;" class="astro-vqenwucp">Et ensuite</span></a></li></ul></nav></starlight-toc><script type="module">var e=`_top`,t=class extends HTMLElement{_current=this.querySelector(`a[aria-current="true"]`);minH=parseInt(this.dataset.minH||`2`,10);maxH=parseInt(this.dataset.maxH||`3`,10);tocHeadingSelector=`h1#${e},:where(${[...Array.from({length:1+this.maxH-this.minH}).map((e,t)=>`h${this.minH+t}`)].join()})[id]`;set current(e){e!==this._current&&(this._current&&this._current.removeAttribute(`aria-current`),e.setAttribute(`aria-current`,`true`),this._current=e)}onIdle=e=>(window.requestIdleCallback||(e=>setTimeout(e,1)))(e);constructor(){super(),this.onIdle(()=>this.init())}init=()=>{let t=[...this.querySelectorAll(`a`)],n=e=>e.matches(this.tocHeadingSelector),r=t=>{for(;t;){if(t.matches(`.sl-markdown-content, main > *`))return document.getElementById(e);if(n(t))return t;let r=t.querySelector(this.tocHeadingSelector);if(r)return r;let i=t.previousElementSibling;for(;i?.lastElementChild;)i=i.lastElementChild;t=i??t.parentElement}return null},i=e=>{for(let{isIntersecting:n,target:i}of e){if(!n)continue;let e=r(i);if(!e)continue;let a=t.find(t=>t.hash===`#`+encodeURIComponent(e.id));if(a){this.current=a;break}}},a=document.querySelectorAll([`main :where(${this.tocHeadingSelector})`,`main :where(${this.tocHeadingSelector}, .sl-heading-wrapper) ~ *:not(:has(${this.tocHeadingSelector}))`,`main .sl-markdown-content > *:not(:has(${this.tocHeadingSelector}))`,`main > *:not(:has(${this.tocHeadingSelector}))`].join()),o,s=()=>{o||(o=new IntersectionObserver(i,{rootMargin:this.getRootMargin()}),a.forEach(e=>o.observe(e)))};s();let c;window.addEventListener(`resize`,()=>{o&&=(o.disconnect(),void 0),clearTimeout(c),c=setTimeout(()=>this.onIdle(s),200)})};getRootMargin(){let e=(document.querySelector(`header`)?.getBoundingClientRect().height||0)+(this.querySelector(`summary`)?.getBoundingClientRect().height||0)+32;return`-${e}px 0% ${e+53-document.documentElement.clientHeight}px`}};customElements.define(`starlight-toc`,t);</script></div></aside></div><footer class="hd-site-footer" data-pagefind-ignore><div class="hd-site-footer__row"><a class="hd-brand hd-brand--footer" href="/"><span class="hd-brand__mark"><img class="hd-brand__light" src="/images/logo-clair.svg" alt="" width="20" height="20" loading="lazy"><img class="hd-brand__dark" src="/images/logo-sombre.svg" alt="" width="20" height="20" loading="lazy"></span><span class="hd-brand__name">Docs</span></a></div><div class="hd-site-footer__row hd-site-footer__row--meta"><p>Écrire une documentation en MDX, la publier avec Host et y brancher un assistant IA qui cite ses sources.</p><div class="hd-theme-choice" role="radiogroup" aria-label="Thème"><button type="button" role="radio" aria-checked="false" data-hd-theme-choice="auto" aria-label="Système" title="Système"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4 5h16a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1Zm4 15h8m-4-3v3"></path></svg></button><button type="button" role="radio" aria-checked="false" data-hd-theme-choice="light" aria-label="Clair" title="Clair"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 16a4 4 0 1 0 0-8 4 4 0 0 0 0 8ZM12 2.5v2M12 19.5v2M4.6 4.6 6 6M18 18l1.4 1.4M2.5 12h2M19.5 12h2M4.6 19.4 6 18M18 6l1.4-1.4"></path></svg></button><button type="button" role="radio" aria-checked="false" data-hd-theme-choice="dark" aria-label="Sombre" title="Sombre"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M20 14.5A8 8 0 1 1 9.5 4a6.5 6.5 0 0 0 10.5 10.5Z"></path></svg></button></div></div></footer></div><hgdc-assistant data-endpoint="https://docs.hgdc.ch/api/v1/ask" data-project="jn7dj6vzkgs7n2d16kqjtb99yd8gbdw0" data-name="Docs"><section class="hgdc-panel" role="dialog" aria-modal="false" aria-labelledby="hgdc-assistant-title" data-panel inert><div class="hgdc-panel__grip" aria-hidden="true"></div><header class="hgdc-panel__header"><h2 id="hgdc-assistant-title"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3.5 13.6 8a3 3 0 0 0 1.9 1.9L20 11.5l-4.5 1.6a3 3 0 0 0-1.9 1.9L12 19.5 10.4 15a3 3 0 0 0-1.9-1.9L4 11.5 8.5 9.9A3 3 0 0 0 10.4 8ZM19 3v3M20.5 4.5h-3"></path></svg>Assistant</h2><div class="hgdc-panel__tools"><button type="button" class="hd-icon-button" data-reset aria-label="Nouvelle conversation" title="Nouvelle conversation" hidden><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4 12a8 8 0 1 0 2.3-5.7M4 4v4h4"></path></svg></button><button type="button" class="hd-icon-button" data-close aria-label="Fermer l'assistant" title="Fermer (Échap)"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M6 6l12 12M18 6 6 18"></path></svg></button></div></header><div class="hgdc-panel__body" data-log aria-live="polite"><div class="hgdc-empty" data-empty><p class="hgdc-empty__title">Pose ta question sur Docs.</p><p>Je cherche dans les pages de cette documentation et je cite mes sources. Si la réponse n'y est pas, je te le dis.</p></div></div><form class="hgdc-panel__form" data-form><label class="sr-only" for="hgdc-question">Ta question</label><textarea id="hgdc-question" data-input rows="1" maxlength="1000" placeholder="Pose une question…" required></textarea><button type="submit" class="hd-send" data-send aria-label="Envoyer la question"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 19V5m-6 6 6-6 6 6"></path></svg></button></form><p class="hgdc-panel__note">Réponses générées par IA (Claude, d'Anthropic), à vérifier. Les questions sont conservées 90 jours pour améliorer cette documentation.</p></section></hgdc-assistant><script type="module" src="/_astro/Assistant.astro_astro_type_script_index_0_lang.C1pz7yK1.js"></script></div><script type="module">var e=class extends HTMLElement{connectedCallback(){let e=matchMedia(`(min-width: 50em)`),t=()=>{e.matches&&this.matches(`:popover-open`)&&this.hidePopover(),this.popover=e.matches?null:`auto`};t(),e.addEventListener(`change`,t),this.addEventListener(`toggle`,e=>{let t=e.newState===`open`;for(let e of document.querySelectorAll(`.hd-main-frame, .hd-askbar`))e.toggleAttribute(`inert`,t);document.documentElement.toggleAttribute(`data-hd-menu`,t)}),this.addEventListener(`click`,e=>{e.target.closest(`a`)&&this.matches(`:popover-open`)&&this.hidePopover()})}};customElements.define(`hd-sidebar-pane`,e);</script></body></html>
@@ -0,0 +1,65 @@
1
+ # Ta première doc en cinq minutes
2
+
3
+ Il te faut Node.js 22 ou plus récent, ou Bun. Tout le reste s’installe avec le paquet `@hgdc/docs`.
4
+
5
+ 1. **Créer le dossier**
6
+
7
+ Un dépôt Git à part, ou un dossier `docs/` dans le dépôt de ton produit.
8
+
9
+ ```bash
10
+ mkdir docs && cd docs
11
+ npm init -y
12
+ npm install --save-dev @hgdc/docs
13
+ ```
14
+
15
+ 2. **Écrire docs.json**
16
+
17
+ À la racine du dossier. Seuls `name` et `navigation` sont obligatoires.
18
+
19
+ ```json
20
+ {
21
+ "name": "Documentation Acme",
22
+ "colors": { "primary": "#0f766e" },
23
+ "navigation": {
24
+ "groups": [{ "group": "Démarrer", "pages": ["index", "installation"] }]
25
+ }
26
+ }
27
+ ```
28
+
29
+ 3. **Écrire les pages**
30
+
31
+ Une page par entrée de la navigation : `index.mdx` et `installation.mdx`. Chaque page commence par un titre.
32
+
33
+ ```mdx
34
+ ---
35
+ title: Installation
36
+ description: Installer Acme en deux minutes.
37
+ ---
38
+
39
+ Lance la commande suivante :
40
+ ```
41
+
42
+ 4. **Voir le site**
43
+
44
+ Ajoute les scripts dans `package.json`, puis lance `npm run dev`.
45
+
46
+ ```json
47
+ {
48
+ "scripts": {
49
+ "dev": "hgdc-docs dev",
50
+ "build": "hgdc-docs build"
51
+ }
52
+ }
53
+ ```
54
+
55
+ Le site s’ouvre sur `http://localhost:4321` et se recharge à chaque modification.
56
+
57
+ > **Note**
58
+ >
59
+ > `hgdc-docs build` écrit le site dans `dist/`. Ajoute `dist/` et `.hgdc-docs/` à ton `.gitignore`.
60
+
61
+ ## Et ensuite
62
+
63
+ - [Publier avec Host](/guides/publier/) pour mettre le site en ligne.
64
+ - [Écrire en MDX](/guides/ecrire/) pour les titres, les liens, les images et le code.
65
+ - [docs.json](/reference/docs-json/) pour toutes les options.
@@ -0,0 +1,55 @@
1
+ <!DOCTYPE html><html lang="fr-CH" dir="ltr" data-theme="dark" data-has-toc data-has-sidebar class="astro-mgylisfi"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"/><title>Données et confidentialité | Docs</title><style>:root{--sl-color-accent-low:#282041;--sl-color-accent:#aa73ff;--sl-color-accent-high:#e8b7ff;--hgdc-on-accent:#000000;}:root:not([data-hd-theme="dark"]){--sl-color-accent-low:#f1e9ff;--sl-color-accent:#7c3aed;--sl-color-accent-high:#4e00ae;--hgdc-on-accent:#ffffff;}</style><link rel="shortcut icon" href="/images/favicon.svg" type="image/svg+xml"/><meta name="generator" content="Astro v7.3.8"/><meta name="generator" content="Starlight v0.42.6"/><meta property="og:title" content="Données et confidentialité"/><meta property="og:type" content="article"/><meta property="og:locale" content="fr-CH"/><meta property="og:description" content="Ce qui est stocké, où, combien de temps, et qui y accède."/><meta property="og:site_name" content="Docs"/><meta name="twitter:card" content="summary_large_image"/><meta name="description" content="Ce qui est stocké, où, combien de temps, et qui y accède."/><link rel="alternate" type="text/markdown" href="/explications/donnees.md"><link rel="describedby" type="text/markdown" href="/llms.txt"><script>
2
+ ;(() => {
3
+ let stored = null
4
+ try {
5
+ stored = localStorage.getItem("starlight-theme")
6
+ } catch {}
7
+ const dark =
8
+ stored === "dark" || (stored === "auto" && matchMedia("(prefers-color-scheme: dark)").matches)
9
+ const theme = dark ? "dark" : "light"
10
+ document.documentElement.dataset.theme = theme
11
+ document.documentElement.dataset.hdTheme = theme
12
+ window.StarlightThemeProvider = { updatePickers() {} }
13
+ })()
14
+ </script><link rel="stylesheet" href="/_astro/print.ehPL0gv-.css" media="print"><link rel="stylesheet" href="/_astro/common.BoKrWC_6.css"><style>@layer starlight.components{svg:where(.astro-kvkgfy7v){color:var(--sl-icon-color);font-size:var(--sl-icon-size,1em);width:1em;height:1em;overflow:visible}}
15
+ @layer starlight.components{starlight-tabs:where(.astro-opkipegj){display:block}.tablist-wrapper:where(.astro-opkipegj){overflow-x:auto}:where(.astro-opkipegj)[role=tablist]{border-bottom:2px solid var(--sl-color-gray-5);padding:0;list-style:none;display:flex}.tab:where(.astro-opkipegj){display:flex}.tab:where(.astro-opkipegj)>:where(.astro-opkipegj)[role=tab]{--sl-tab-color-border:var(--sl-color-gray-5);line-height:var(--sl-line-height-headings);box-shadow:0 2px 0 var(--sl-tab-color-border);color:var(--sl-color-gray-3);outline-offset:var(--sl-outline-offset-inside);overflow-wrap:initial;align-items:center;gap:.5rem;padding:.275rem 1.25rem;text-decoration:none;display:flex}.tab:where(.astro-opkipegj) :where(.astro-opkipegj)[role=tab][aria-selected=true]{--sl-tab-color-border:var(--sl-color-text-accent);color:var(--sl-color-white);font-weight:600}.tablist-wrapper:where(.astro-opkipegj)~[role=tabpanel]{margin-top:1rem}}
16
+ </style><script type="module" src="/_astro/page.cNngjUgL.js"></script></head><body class="astro-mgylisfi"><a class="sl-skip-link astro-hlhzrz26" href="#_top">Aller au contenu</a><div class="hd-page"><header class="hd-topbar"><div class="hd-header"><div class="hd-header__start"><button type="button" class="hd-icon-button hd-menu-button" popovertarget="starlight__sidebar" aria-label="Menu de la documentation" aria-controls="starlight__sidebar"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4 7h16M4 12h16M4 17h10"></path></svg></button><a class="hd-brand" href="/"><span class="hd-brand__mark"><img class="hd-brand__light" src="/images/logo-clair.svg" alt="" width="24" height="24"><img class="hd-brand__dark" src="/images/logo-sombre.svg" alt="" width="24" height="24"></span><span class="hd-brand__name">Docs</span></a></div><nav class="hd-header__tabs" aria-label="Sections de la documentation"><a href="/">Guides</a><a href="/reference/docs-json/">Référence</a><a href="/explications/fonctionnement/" aria-current="page">Explications</a></nav><div class="hd-header__end"><hd-search data-base data-assistant><button type="button" class="hd-search-trigger" data-open aria-haspopup="dialog" aria-label="Rechercher (Ctrl K)"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M11 18a7 7 0 1 0 0-14 7 7 0 0 0 0 14Zm5-2 4 4"></path></svg><span class="hd-search-trigger__label">Rechercher</span><kbd class="hd-kbd" data-shortcut>Ctrl K</kbd></button><dialog class="hd-palette" aria-label="Rechercher dans la documentation"><div class="hd-palette__box"><div class="hd-palette__field"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M11 18a7 7 0 1 0 0-14 7 7 0 0 0 0 14Zm5-2 4 4"></path></svg><input type="text" data-input placeholder="Rechercher dans la documentation" autocomplete="off" spellcheck="false" role="combobox" aria-expanded="false" aria-controls="hd-palette-results" aria-autocomplete="list"><button type="button" class="hd-kbd hd-kbd--button" data-close>Échap</button></div><div class="hd-palette__results" id="hd-palette-results" role="listbox" aria-label="Résultats" data-results></div><p class="hd-palette__status" data-status role="status">Tape un mot pour chercher dans les pages.</p><footer class="hd-palette__hints" aria-hidden="true"><span><kbd class="hd-kbd">↑</kbd><kbd class="hd-kbd">↓</kbd> Choisir</span><span><kbd class="hd-kbd">↵</kbd> Ouvrir</span><span><kbd class="hd-kbd">Échap</kbd> Fermer</span></footer></div></dialog></hd-search><script type="module" src="/_astro/Search.astro_astro_type_script_index_0_lang.VKDD8r2I.js"></script><button type="button" class="hd-icon-button" data-hgdc-ask aria-label="Demander à l'assistant" title="Demander à l'assistant (Ctrl I)"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3.5 13.6 8a3 3 0 0 0 1.9 1.9L20 11.5l-4.5 1.6a3 3 0 0 0-1.9 1.9L12 19.5 10.4 15a3 3 0 0 0-1.9-1.9L4 11.5 8.5 9.9A3 3 0 0 0 10.4 8ZM19 3v3M20.5 4.5h-3"></path></svg></button><nav class="hd-header__links" aria-label="Liens"><a class="hd-pill hd-pill--ghost" href="https://hgdc.ch">HGDC</a><a class="hd-pill hd-pill--primary" href="https://docs.hgdc.ch">Console</a></nav><button type="button" class="hd-icon-button hd-theme-button" data-hd-theme-toggle aria-label="Passer au thème sombre"><svg class="hd-icon hd-theme-button__moon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M20 14.5A8 8 0 1 1 9.5 4a6.5 6.5 0 0 0 10.5 10.5Z"></path></svg><svg class="hd-icon hd-theme-button__sun" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 16a4 4 0 1 0 0-8 4 4 0 0 0 0 8ZM12 2.5v2M12 19.5v2M4.6 4.6 6 6M18 18l1.4 1.4M2.5 12h2M19.5 12h2M4.6 19.4 6 18M18 6l1.4-1.4"></path></svg></button><script type="module">var e=`starlight-theme`,t=()=>{try{return localStorage.getItem(e)||`light`}catch{return`light`}},n=()=>matchMedia(`(prefers-color-scheme: light)`).matches?`light`:`dark`,r=t=>{try{localStorage.setItem(e,t)}catch{}let r=t===`auto`?n():t;document.documentElement.dataset.theme=r,document.documentElement.dataset.hdTheme=r,i()},i=()=>{let e=t(),n=document.documentElement.dataset.theme===`dark`;for(let e of document.querySelectorAll(`[data-hd-theme-toggle]`))e.setAttribute(`aria-label`,n?`Passer au thème clair`:`Passer au thème sombre`);for(let t of document.querySelectorAll(`[data-hd-theme-choice]`)){let n=t.dataset.hdThemeChoice===e;t.setAttribute(`aria-checked`,String(n)),t.tabIndex=n?0:-1}};for(let e of document.querySelectorAll(`[data-hd-theme-toggle]`))e.addEventListener(`click`,()=>r(document.documentElement.dataset.theme===`dark`?`light`:`dark`));for(let e of document.querySelectorAll(`.hd-theme-choice`)){let t=[...e.querySelectorAll(`[data-hd-theme-choice]`)];for(let e of t)e.addEventListener(`click`,()=>r(e.dataset.hdThemeChoice));e.addEventListener(`keydown`,e=>{let n=e.key===`ArrowRight`||e.key===`ArrowDown`?1:e.key===`ArrowLeft`||e.key===`ArrowUp`?-1:0;if(!n)return;e.preventDefault();let i=t.findIndex(e=>e.getAttribute(`aria-checked`)===`true`),a=t[(i+n+t.length)%t.length];r(a.dataset.hdThemeChoice),a.focus()})}matchMedia(`(prefers-color-scheme: light)`).addEventListener(`change`,()=>{t()===`auto`&&r(`auto`)}),i();</script></div></div></header><nav class="hd-sidebar" aria-label="Navigation de la documentation"><script type="module">for(let e of document.querySelectorAll(`[data-hgdc-version]`))e.addEventListener(`change`,()=>window.location.assign(e.value));var e=document.querySelector(`.sidebar-pane`);if(e){let t=`hd-sidebar-scroll`;try{let n=Number(sessionStorage.getItem(t));n&&(e.scrollTop=n)}catch{}let n=e.querySelector(`[aria-current="page"]`);if(n){let t=e.getBoundingClientRect(),r=n.getBoundingClientRect();(r.top<t.top||r.bottom>t.bottom)&&n.scrollIntoView({block:`center`})}addEventListener(`pagehide`,()=>{try{sessionStorage.setItem(t,String(e.scrollTop))}catch{}})}</script><hd-sidebar-pane popover="auto" id="starlight__sidebar" class="sidebar-pane"><div class="hd-sidebar__content"><div class="hd-mobile-only hd-sidebar-head"><a class="hd-brand" href="/"><span class="hd-brand__name">Docs</span></a><button type="button" class="hd-icon-button" popovertarget="starlight__sidebar" popovertargetaction="hide" aria-label="Fermer le menu"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M6 6l12 12M18 6 6 18"></path></svg></button></div><nav class="hd-mobile-only hd-sidebar-tabs" aria-label="Sections de la documentation"><a href="/">Guides</a><a href="/reference/docs-json/">Référence</a><a href="/explications/fonctionnement/" aria-current="page">Explications</a></nav><ul class="hd-nav hd-nav--depth-0"><li class="hd-nav__group"><p class="hd-nav__heading">Sous le capot</p><ul class="hd-nav hd-nav--depth-1"><li><a href="/explications/fonctionnement/" class="hd-nav__link"><span>Comment ça marche</span></a></li><li><a href="/explications/donnees/" class="hd-nav__link" aria-current="page"><span>Données</span></a></li></ul></li></ul><div class="hd-mobile-only hd-sidebar-footer"><nav class="hd-sidebar-links" aria-label="Liens"><a href="https://hgdc.ch">HGDC</a><a class="hd-pill hd-pill--primary" href="https://docs.hgdc.ch">Console</a></nav><div class="hd-theme-choice" role="radiogroup" aria-label="Thème"><button type="button" role="radio" aria-checked="false" data-hd-theme-choice="auto" aria-label="Système" title="Système"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4 5h16a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1Zm4 15h8m-4-3v3"></path></svg></button><button type="button" role="radio" aria-checked="false" data-hd-theme-choice="light" aria-label="Clair" title="Clair"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 16a4 4 0 1 0 0-8 4 4 0 0 0 0 8ZM12 2.5v2M12 19.5v2M4.6 4.6 6 6M18 18l1.4 1.4M2.5 12h2M19.5 12h2M4.6 19.4 6 18M18 6l1.4-1.4"></path></svg></button><button type="button" role="radio" aria-checked="false" data-hd-theme-choice="dark" aria-label="Sombre" title="Sombre"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M20 14.5A8 8 0 1 1 9.5 4a6.5 6.5 0 0 0 10.5 10.5Z"></path></svg></button></div></div></div></hd-sidebar-pane></nav><div class="hd-main-frame main-frame"><script type="module">var e=document.getElementById(`starlight__sidebar`),t=e?.querySelector(`sl-sidebar-state-persist`),n=`sl-sidebar-state`,r=()=>{let r=[],i=t?.dataset.hash||``;try{let e=sessionStorage.getItem(n),t=JSON.parse(e||`{}`);Array.isArray(t.open)&&t.hash===i&&(r=t.open)}catch{}return{hash:i,open:r,scroll:e?.scrollTop||0}},i=e=>{try{sessionStorage.setItem(n,JSON.stringify(e))}catch{}},a=()=>i(r()),o=(e,t)=>{let n=r();n.open[t]=e,i(n)};t?.addEventListener(`click`,e=>{if(!(e.target instanceof Element))return;let t=e.target.closest(`summary`)?.closest(`details`);if(!t)return;let n=t.querySelector(`sl-sidebar-restore`),r=parseInt(n?.dataset.index||``);isNaN(r)||o(!t.open,r)}),addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&a()});</script><div class="hd-columns hd-columns--toc"><div class="hd-columns__main main-pane"><main data-pagefind-body class="astro-mgylisfi" lang="fr-CH" dir="ltr"><div class="content-panel astro-lavu2imw"><div class="sl-container astro-lavu2imw"><div class="hd-title not-content"><p class="hd-eyebrow" data-pagefind-meta="section">Sous le capot</p><div class="hd-title__row"><h1 id="_top">Données et confidentialité</h1><div class="hd-page-actions" data-hgdc-skip data-pagefind-ignore><div class="hd-split"><button type="button" class="hd-split__main" data-hgdc-copy="/explications/donnees.md"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M9 9h10a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1V10a1 1 0 0 1 1-1Zm-4 6H4.5A1.5 1.5 0 0 1 3 13.5v-9A1.5 1.5 0 0 1 4.5 3h9A1.5 1.5 0 0 1 15 4.5V5"></path></svg><span data-label>Copier la page</span></button><details class="hd-menu"><summary class="hd-split__more" aria-label="Autres formats de la page"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="m6 9 6 6 6-6"></path></svg></summary><ul class="hd-menu__list"><li><button type="button" data-hgdc-copy-item><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M9 9h10a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1V10a1 1 0 0 1 1-1Zm-4 6H4.5A1.5 1.5 0 0 1 3 13.5v-9A1.5 1.5 0 0 1 4.5 3h9A1.5 1.5 0 0 1 15 4.5V5"></path></svg><span><strong>Copier la page</strong><small>En Markdown, pour un LLM</small></span></button></li><li><a href="/explications/donnees.md"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4 6h16a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1Zm3 9V9l2.5 3L12 9v6m5-6v6m-2-2 2 2 2-2"></path></svg><span><strong>Voir en Markdown</strong><small>La page en texte brut</small></span></a></li><li><a data-hgdc-open="claude" href="https://claude.ai/new" target="_blank" rel="noopener"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M7 17 17 7M8 7h9v9"></path></svg><span><strong>Ouvrir dans Claude</strong><small>Poser une question sur cette page</small></span></a></li><li><a data-hgdc-open="chatgpt" href="https://chatgpt.com/" target="_blank" rel="noopener"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M7 17 17 7M8 7h9v9"></path></svg><span><strong>Ouvrir dans ChatGPT</strong><small>Poser une question sur cette page</small></span></a></li><li><a href="/llms.txt"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8Zm0 0v5h5M9 13h6m-6 4h4"></path></svg><span><strong>llms.txt</strong><small>L'index de la doc pour les agents</small></span></a></li></ul></details></div><span class="sr-only" role="status" aria-live="polite" data-hgdc-copy-status></span></div></div><p class="hd-lead">Ce qui est stocké, où, combien de temps, et qui y accède.</p></div><script type="module">var e=document.querySelector(`[data-hgdc-copy-status]`),t=document.querySelector(`[data-hgdc-copy]`);async function n(){if(!t)return;let n=t.querySelector(`[data-label]`),r=t=>{n.textContent=t,e&&(e.textContent=t),setTimeout(()=>n.textContent=`Copier la page`,2e3)};try{let e=await fetch(t.dataset.hgdcCopy);if(!e.ok)throw Error(String(e.status));await navigator.clipboard.writeText(await e.text()),r(`Page copiée`)}catch{r(`Copie impossible`)}}if(t?.addEventListener(`click`,()=>void n()),document.querySelector(`[data-hgdc-copy-item]`)?.addEventListener(`click`,()=>{document.querySelector(`.hd-menu`).open=!1,n()}),t){let e=`Lis ${new URL(t.dataset.hgdcCopy,location.href).href} et réponds à mes questions sur cette page.`;for(let t of document.querySelectorAll(`[data-hgdc-open]`))t.href=`${t.dataset.hgdcOpen===`claude`?`https://claude.ai/new`:`https://chatgpt.com/`}?q=${encodeURIComponent(e)}`}for(let e of document.querySelectorAll(`.hd-menu`))document.addEventListener(`click`,t=>{e.open&&!e.contains(t.target)&&(e.open=!1)}),e.addEventListener(`keydown`,t=>{t.key===`Escape`&&e.open&&(t.stopPropagation(),e.open=!1,e.querySelector(`summary`)?.focus())});</script></div></div><div class="content-panel astro-lavu2imw"><div class="sl-container astro-lavu2imw"><div class="sl-markdown-content"><h2 id="ce-qui-est-stocké">Ce qui est stocké</h2>
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+
29
+
30
+
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+
40
+
41
+
42
+ <div class="hd-table"><table><thead><tr><th>Donnée</th><th>Où</th><th>Durée</th></tr></thead><tbody><tr><td>Pages publiées, en Markdown, et passages indexés</td><td>Base de la console</td><td>Tant que le projet existe</td></tr><tr><td>Questions des visiteurs, réponses, sources</td><td>Base de la console</td><td>90 jours</td></tr><tr><td>Consommation mensuelle de l’assistant</td><td>Base de la console</td><td>Tant que l’organisation existe</td></tr></tbody></table></div>
43
+ <p>La console ne stocke ni l’adresse IP ni l’identité des visiteurs. L’IP sert seulement, le temps de la requête, à limiter le nombre de questions par minute et par jour.</p>
44
+ <h2 id="qui-traite-quoi">Qui traite quoi</h2>
45
+ <ul>
46
+ <li><strong>Le site</strong> est servi par Host.</li>
47
+ <li><strong>La recherche du site</strong> tourne dans le navigateur du visiteur : aucune requête ne part.</li>
48
+ <li><strong>Les embeddings</strong> des passages et des questions sont calculés par Mistral AI, dans l’Union européenne.</li>
49
+ <li><strong>Les réponses</strong> sont rédigées par Claude, le modèle d’Anthropic, appelé directement ou par OpenRouter. La question et les passages trouvés lui sont envoyés.</li>
50
+ </ul>
51
+ <p>Sans clé d’embeddings, la recherche de l’assistant reste en plein texte : rien ne part chez Mistral.</p>
52
+ <h2 id="ce-que-voit-lassistant">Ce que voit l’assistant</h2>
53
+ <p>Uniquement ce que ton site publie : il lit le corpus du site public. Une page qui n’est pas publiée n’existe pas pour lui. Il ne peut ni naviguer sur le web, ni agir : il lit des passages et écrit une réponse.</p>
54
+ <h2 id="supprimer">Supprimer</h2>
55
+ <p>Supprimer un projet dans la console efface son index, ses pages et son journal. Le site publié et ton dépôt ne sont pas touchés.</p></div><hgdc-feedback class="hgdc-feedback not-content" data-endpoint="https://docs.hgdc.ch/api/v1/feedback" data-project="jn7dj6vzkgs7n2d16kqjtb99yd8gbdw0" data-pagefind-ignore="true"><div data-step="ask"><p class="hgdc-feedback__question">Cette page t'a aidé ?</p><div class="hgdc-feedback__choices"><button type="button" data-helpful="true"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M7 10v11M15 5.9 14 10h5.8a2 2 0 0 1 1.9 2.5l-2.3 7A2 2 0 0 1 17.5 21H4a1 1 0 0 1-1-1v-9a1 1 0 0 1 1-1h2.8a2 2 0 0 0 1.8-1.1L12 2a3.1 3.1 0 0 1 3 3.9Z"></path></svg>Oui</button><button type="button" data-helpful="false"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M17 14V3M9 18.1 10 14H4.2a2 2 0 0 1-1.9-2.5l2.3-7A2 2 0 0 1 6.5 3H20a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1h-2.8a2 2 0 0 0-1.8 1.1L12 22a3.1 3.1 0 0 1-3-3.9Z"></path></svg>Non</button></div></div><form data-step="comment" hidden><label for="hgdc-feedback-comment">Qu'est-ce qui manquait ou pourrait être plus clair ? (facultatif)</label><textarea id="hgdc-feedback-comment" name="comment" rows="3" maxlength="1000"></textarea><div class="hgdc-feedback__choices"><button type="submit">Envoyer</button><button type="button" data-skip>Passer</button></div></form><p data-step="done" class="hgdc-feedback__done" role="status" hidden>Merci, c'est noté.</p></hgdc-feedback><nav class="hd-pagination not-content" aria-label="Pages voisines" data-pagefind-ignore><a class="hd-pagination__link" href="/explications/fonctionnement/" rel="prev"><span class="hd-pagination__hint"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="m15 6-6 6 6 6"></path></svg>Précédent</span><span class="hd-pagination__title">Comment ça marche</span></a></nav><script type="module" src="/_astro/Footer.astro_astro_type_script_index_0_lang.DzCnn3OT.js"></script></div></div></main><form class="hd-askbar" data-askbar data-pagefind-ignore><label class="sr-only" for="hd-askbar-input">Pose une question à l'assistant</label><input id="hd-askbar-input" data-askbar-input type="text" maxlength="1000" placeholder="Pose une question…" autocomplete="off"><kbd class="hd-kbd" data-shortcut aria-hidden="true">Ctrl I</kbd><button type="submit" class="hd-send" aria-label="Envoyer la question"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 19V5m-6 6 6-6 6 6"></path></svg></button></form></div><aside class="hd-columns__toc" aria-label="Sur cette page"><div class="hd-toc-scroll"><starlight-toc data-min-h="2" data-max-h="3"><nav aria-labelledby="starlight__on-this-page"><h2 id="starlight__on-this-page">Sur cette page</h2><ul class="astro-vqenwucp" style="--depth: 0;"><li style="--depth: 0;" class="astro-vqenwucp"><a href="#_top" style="--depth: 0;" class="astro-vqenwucp"><span style="--depth: 0;" class="astro-vqenwucp">Vue d’ensemble</span></a></li><li style="--depth: 0;" class="astro-vqenwucp"><a href="#ce-qui-est-stocké" style="--depth: 0;" class="astro-vqenwucp"><span style="--depth: 0;" class="astro-vqenwucp">Ce qui est stocké</span></a></li><li style="--depth: 0;" class="astro-vqenwucp"><a href="#qui-traite-quoi" style="--depth: 0;" class="astro-vqenwucp"><span style="--depth: 0;" class="astro-vqenwucp">Qui traite quoi</span></a></li><li style="--depth: 0;" class="astro-vqenwucp"><a href="#ce-que-voit-lassistant" style="--depth: 0;" class="astro-vqenwucp"><span style="--depth: 0;" class="astro-vqenwucp">Ce que voit l’assistant</span></a></li><li style="--depth: 0;" class="astro-vqenwucp"><a href="#supprimer" style="--depth: 0;" class="astro-vqenwucp"><span style="--depth: 0;" class="astro-vqenwucp">Supprimer</span></a></li></ul></nav></starlight-toc><script type="module">var e=`_top`,t=class extends HTMLElement{_current=this.querySelector(`a[aria-current="true"]`);minH=parseInt(this.dataset.minH||`2`,10);maxH=parseInt(this.dataset.maxH||`3`,10);tocHeadingSelector=`h1#${e},:where(${[...Array.from({length:1+this.maxH-this.minH}).map((e,t)=>`h${this.minH+t}`)].join()})[id]`;set current(e){e!==this._current&&(this._current&&this._current.removeAttribute(`aria-current`),e.setAttribute(`aria-current`,`true`),this._current=e)}onIdle=e=>(window.requestIdleCallback||(e=>setTimeout(e,1)))(e);constructor(){super(),this.onIdle(()=>this.init())}init=()=>{let t=[...this.querySelectorAll(`a`)],n=e=>e.matches(this.tocHeadingSelector),r=t=>{for(;t;){if(t.matches(`.sl-markdown-content, main > *`))return document.getElementById(e);if(n(t))return t;let r=t.querySelector(this.tocHeadingSelector);if(r)return r;let i=t.previousElementSibling;for(;i?.lastElementChild;)i=i.lastElementChild;t=i??t.parentElement}return null},i=e=>{for(let{isIntersecting:n,target:i}of e){if(!n)continue;let e=r(i);if(!e)continue;let a=t.find(t=>t.hash===`#`+encodeURIComponent(e.id));if(a){this.current=a;break}}},a=document.querySelectorAll([`main :where(${this.tocHeadingSelector})`,`main :where(${this.tocHeadingSelector}, .sl-heading-wrapper) ~ *:not(:has(${this.tocHeadingSelector}))`,`main .sl-markdown-content > *:not(:has(${this.tocHeadingSelector}))`,`main > *:not(:has(${this.tocHeadingSelector}))`].join()),o,s=()=>{o||(o=new IntersectionObserver(i,{rootMargin:this.getRootMargin()}),a.forEach(e=>o.observe(e)))};s();let c;window.addEventListener(`resize`,()=>{o&&=(o.disconnect(),void 0),clearTimeout(c),c=setTimeout(()=>this.onIdle(s),200)})};getRootMargin(){let e=(document.querySelector(`header`)?.getBoundingClientRect().height||0)+(this.querySelector(`summary`)?.getBoundingClientRect().height||0)+32;return`-${e}px 0% ${e+53-document.documentElement.clientHeight}px`}};customElements.define(`starlight-toc`,t);</script></div></aside></div><footer class="hd-site-footer" data-pagefind-ignore><div class="hd-site-footer__row"><a class="hd-brand hd-brand--footer" href="/"><span class="hd-brand__mark"><img class="hd-brand__light" src="/images/logo-clair.svg" alt="" width="20" height="20" loading="lazy"><img class="hd-brand__dark" src="/images/logo-sombre.svg" alt="" width="20" height="20" loading="lazy"></span><span class="hd-brand__name">Docs</span></a></div><div class="hd-site-footer__row hd-site-footer__row--meta"><p>Écrire une documentation en MDX, la publier avec Host et y brancher un assistant IA qui cite ses sources.</p><div class="hd-theme-choice" role="radiogroup" aria-label="Thème"><button type="button" role="radio" aria-checked="false" data-hd-theme-choice="auto" aria-label="Système" title="Système"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4 5h16a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1Zm4 15h8m-4-3v3"></path></svg></button><button type="button" role="radio" aria-checked="false" data-hd-theme-choice="light" aria-label="Clair" title="Clair"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 16a4 4 0 1 0 0-8 4 4 0 0 0 0 8ZM12 2.5v2M12 19.5v2M4.6 4.6 6 6M18 18l1.4 1.4M2.5 12h2M19.5 12h2M4.6 19.4 6 18M18 6l1.4-1.4"></path></svg></button><button type="button" role="radio" aria-checked="false" data-hd-theme-choice="dark" aria-label="Sombre" title="Sombre"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M20 14.5A8 8 0 1 1 9.5 4a6.5 6.5 0 0 0 10.5 10.5Z"></path></svg></button></div></div></footer></div><hgdc-assistant data-endpoint="https://docs.hgdc.ch/api/v1/ask" data-project="jn7dj6vzkgs7n2d16kqjtb99yd8gbdw0" data-name="Docs"><section class="hgdc-panel" role="dialog" aria-modal="false" aria-labelledby="hgdc-assistant-title" data-panel inert><div class="hgdc-panel__grip" aria-hidden="true"></div><header class="hgdc-panel__header"><h2 id="hgdc-assistant-title"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3.5 13.6 8a3 3 0 0 0 1.9 1.9L20 11.5l-4.5 1.6a3 3 0 0 0-1.9 1.9L12 19.5 10.4 15a3 3 0 0 0-1.9-1.9L4 11.5 8.5 9.9A3 3 0 0 0 10.4 8ZM19 3v3M20.5 4.5h-3"></path></svg>Assistant</h2><div class="hgdc-panel__tools"><button type="button" class="hd-icon-button" data-reset aria-label="Nouvelle conversation" title="Nouvelle conversation" hidden><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4 12a8 8 0 1 0 2.3-5.7M4 4v4h4"></path></svg></button><button type="button" class="hd-icon-button" data-close aria-label="Fermer l'assistant" title="Fermer (Échap)"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M6 6l12 12M18 6 6 18"></path></svg></button></div></header><div class="hgdc-panel__body" data-log aria-live="polite"><div class="hgdc-empty" data-empty><p class="hgdc-empty__title">Pose ta question sur Docs.</p><p>Je cherche dans les pages de cette documentation et je cite mes sources. Si la réponse n'y est pas, je te le dis.</p></div></div><form class="hgdc-panel__form" data-form><label class="sr-only" for="hgdc-question">Ta question</label><textarea id="hgdc-question" data-input rows="1" maxlength="1000" placeholder="Pose une question…" required></textarea><button type="submit" class="hd-send" data-send aria-label="Envoyer la question"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 19V5m-6 6 6-6 6 6"></path></svg></button></form><p class="hgdc-panel__note">Réponses générées par IA (Claude, d'Anthropic), à vérifier. Les questions sont conservées 90 jours pour améliorer cette documentation.</p></section></hgdc-assistant><script type="module" src="/_astro/Assistant.astro_astro_type_script_index_0_lang.C1pz7yK1.js"></script></div><script type="module">var e=class extends HTMLElement{connectedCallback(){let e=matchMedia(`(min-width: 50em)`),t=()=>{e.matches&&this.matches(`:popover-open`)&&this.hidePopover(),this.popover=e.matches?null:`auto`};t(),e.addEventListener(`change`,t),this.addEventListener(`toggle`,e=>{let t=e.newState===`open`;for(let e of document.querySelectorAll(`.hd-main-frame, .hd-askbar`))e.toggleAttribute(`inert`,t);document.documentElement.toggleAttribute(`data-hd-menu`,t)}),this.addEventListener(`click`,e=>{e.target.closest(`a`)&&this.matches(`:popover-open`)&&this.hidePopover()})}};customElements.define(`hd-sidebar-pane`,e);</script></body></html>
@@ -0,0 +1,28 @@
1
+ # Données et confidentialité
2
+
3
+ ## Ce qui est stocké
4
+
5
+ | Donnée | Où | Durée |
6
+ | ------------------------------------------------ | ------------------ | ------------------------------ |
7
+ | Pages publiées, en Markdown, et passages indexés | Base de la console | Tant que le projet existe |
8
+ | Questions des visiteurs, réponses, sources | Base de la console | 90 jours |
9
+ | Consommation mensuelle de l’assistant | Base de la console | Tant que l’organisation existe |
10
+
11
+ La console ne stocke ni l’adresse IP ni l’identité des visiteurs. L’IP sert seulement, le temps de la requête, à limiter le nombre de questions par minute et par jour.
12
+
13
+ ## Qui traite quoi
14
+
15
+ - **Le site** est servi par Host.
16
+ - **La recherche du site** tourne dans le navigateur du visiteur : aucune requête ne part.
17
+ - **Les embeddings** des passages et des questions sont calculés par Mistral AI, dans l’Union européenne.
18
+ - **Les réponses** sont rédigées par Claude, le modèle d’Anthropic, appelé directement ou par OpenRouter. La question et les passages trouvés lui sont envoyés.
19
+
20
+ Sans clé d’embeddings, la recherche de l’assistant reste en plein texte : rien ne part chez Mistral.
21
+
22
+ ## Ce que voit l’assistant
23
+
24
+ Uniquement ce que ton site publie : il lit le corpus du site public. Une page qui n’est pas publiée n’existe pas pour lui. Il ne peut ni naviguer sur le web, ni agir : il lit des passages et écrit une réponse.
25
+
26
+ ## Supprimer
27
+
28
+ Supprimer un projet dans la console efface son index, ses pages et son journal. Le site publié et ton dépôt ne sont pas touchés.
@@ -0,0 +1,33 @@
1
+ <!DOCTYPE html><html lang="fr-CH" dir="ltr" data-theme="dark" data-has-toc data-has-sidebar class="astro-mgylisfi"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"/><title>Comment ça marche | Docs</title><style>:root{--sl-color-accent-low:#282041;--sl-color-accent:#aa73ff;--sl-color-accent-high:#e8b7ff;--hgdc-on-accent:#000000;}:root:not([data-hd-theme="dark"]){--sl-color-accent-low:#f1e9ff;--sl-color-accent:#7c3aed;--sl-color-accent-high:#4e00ae;--hgdc-on-accent:#ffffff;}</style><link rel="shortcut icon" href="/images/favicon.svg" type="image/svg+xml"/><meta name="generator" content="Astro v7.3.8"/><meta name="generator" content="Starlight v0.42.6"/><meta property="og:title" content="Comment ça marche"/><meta property="og:type" content="article"/><meta property="og:locale" content="fr-CH"/><meta property="og:description" content="Du push au site publié, puis à l'assistant qui répond."/><meta property="og:site_name" content="Docs"/><meta name="twitter:card" content="summary_large_image"/><meta name="description" content="Du push au site publié, puis à l'assistant qui répond."/><link rel="alternate" type="text/markdown" href="/explications/fonctionnement.md"><link rel="describedby" type="text/markdown" href="/llms.txt"><script>
2
+ ;(() => {
3
+ let stored = null
4
+ try {
5
+ stored = localStorage.getItem("starlight-theme")
6
+ } catch {}
7
+ const dark =
8
+ stored === "dark" || (stored === "auto" && matchMedia("(prefers-color-scheme: dark)").matches)
9
+ const theme = dark ? "dark" : "light"
10
+ document.documentElement.dataset.theme = theme
11
+ document.documentElement.dataset.hdTheme = theme
12
+ window.StarlightThemeProvider = { updatePickers() {} }
13
+ })()
14
+ </script><link rel="stylesheet" href="/_astro/print.ehPL0gv-.css" media="print"><link rel="stylesheet" href="/_astro/common.BoKrWC_6.css"><style>@layer starlight.components{svg:where(.astro-kvkgfy7v){color:var(--sl-icon-color);font-size:var(--sl-icon-size,1em);width:1em;height:1em;overflow:visible}}
15
+ @layer starlight.components{starlight-tabs:where(.astro-opkipegj){display:block}.tablist-wrapper:where(.astro-opkipegj){overflow-x:auto}:where(.astro-opkipegj)[role=tablist]{border-bottom:2px solid var(--sl-color-gray-5);padding:0;list-style:none;display:flex}.tab:where(.astro-opkipegj){display:flex}.tab:where(.astro-opkipegj)>:where(.astro-opkipegj)[role=tab]{--sl-tab-color-border:var(--sl-color-gray-5);line-height:var(--sl-line-height-headings);box-shadow:0 2px 0 var(--sl-tab-color-border);color:var(--sl-color-gray-3);outline-offset:var(--sl-outline-offset-inside);overflow-wrap:initial;align-items:center;gap:.5rem;padding:.275rem 1.25rem;text-decoration:none;display:flex}.tab:where(.astro-opkipegj) :where(.astro-opkipegj)[role=tab][aria-selected=true]{--sl-tab-color-border:var(--sl-color-text-accent);color:var(--sl-color-white);font-weight:600}.tablist-wrapper:where(.astro-opkipegj)~[role=tabpanel]{margin-top:1rem}}
16
+ </style><script type="module" src="/_astro/page.cNngjUgL.js"></script></head><body class="astro-mgylisfi"><a class="sl-skip-link astro-hlhzrz26" href="#_top">Aller au contenu</a><div class="hd-page"><header class="hd-topbar"><div class="hd-header"><div class="hd-header__start"><button type="button" class="hd-icon-button hd-menu-button" popovertarget="starlight__sidebar" aria-label="Menu de la documentation" aria-controls="starlight__sidebar"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4 7h16M4 12h16M4 17h10"></path></svg></button><a class="hd-brand" href="/"><span class="hd-brand__mark"><img class="hd-brand__light" src="/images/logo-clair.svg" alt="" width="24" height="24"><img class="hd-brand__dark" src="/images/logo-sombre.svg" alt="" width="24" height="24"></span><span class="hd-brand__name">Docs</span></a></div><nav class="hd-header__tabs" aria-label="Sections de la documentation"><a href="/">Guides</a><a href="/reference/docs-json/">Référence</a><a href="/explications/fonctionnement/" aria-current="page">Explications</a></nav><div class="hd-header__end"><hd-search data-base data-assistant><button type="button" class="hd-search-trigger" data-open aria-haspopup="dialog" aria-label="Rechercher (Ctrl K)"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M11 18a7 7 0 1 0 0-14 7 7 0 0 0 0 14Zm5-2 4 4"></path></svg><span class="hd-search-trigger__label">Rechercher</span><kbd class="hd-kbd" data-shortcut>Ctrl K</kbd></button><dialog class="hd-palette" aria-label="Rechercher dans la documentation"><div class="hd-palette__box"><div class="hd-palette__field"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M11 18a7 7 0 1 0 0-14 7 7 0 0 0 0 14Zm5-2 4 4"></path></svg><input type="text" data-input placeholder="Rechercher dans la documentation" autocomplete="off" spellcheck="false" role="combobox" aria-expanded="false" aria-controls="hd-palette-results" aria-autocomplete="list"><button type="button" class="hd-kbd hd-kbd--button" data-close>Échap</button></div><div class="hd-palette__results" id="hd-palette-results" role="listbox" aria-label="Résultats" data-results></div><p class="hd-palette__status" data-status role="status">Tape un mot pour chercher dans les pages.</p><footer class="hd-palette__hints" aria-hidden="true"><span><kbd class="hd-kbd">↑</kbd><kbd class="hd-kbd">↓</kbd> Choisir</span><span><kbd class="hd-kbd">↵</kbd> Ouvrir</span><span><kbd class="hd-kbd">Échap</kbd> Fermer</span></footer></div></dialog></hd-search><script type="module" src="/_astro/Search.astro_astro_type_script_index_0_lang.VKDD8r2I.js"></script><button type="button" class="hd-icon-button" data-hgdc-ask aria-label="Demander à l'assistant" title="Demander à l'assistant (Ctrl I)"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3.5 13.6 8a3 3 0 0 0 1.9 1.9L20 11.5l-4.5 1.6a3 3 0 0 0-1.9 1.9L12 19.5 10.4 15a3 3 0 0 0-1.9-1.9L4 11.5 8.5 9.9A3 3 0 0 0 10.4 8ZM19 3v3M20.5 4.5h-3"></path></svg></button><nav class="hd-header__links" aria-label="Liens"><a class="hd-pill hd-pill--ghost" href="https://hgdc.ch">HGDC</a><a class="hd-pill hd-pill--primary" href="https://docs.hgdc.ch">Console</a></nav><button type="button" class="hd-icon-button hd-theme-button" data-hd-theme-toggle aria-label="Passer au thème sombre"><svg class="hd-icon hd-theme-button__moon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M20 14.5A8 8 0 1 1 9.5 4a6.5 6.5 0 0 0 10.5 10.5Z"></path></svg><svg class="hd-icon hd-theme-button__sun" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 16a4 4 0 1 0 0-8 4 4 0 0 0 0 8ZM12 2.5v2M12 19.5v2M4.6 4.6 6 6M18 18l1.4 1.4M2.5 12h2M19.5 12h2M4.6 19.4 6 18M18 6l1.4-1.4"></path></svg></button><script type="module">var e=`starlight-theme`,t=()=>{try{return localStorage.getItem(e)||`light`}catch{return`light`}},n=()=>matchMedia(`(prefers-color-scheme: light)`).matches?`light`:`dark`,r=t=>{try{localStorage.setItem(e,t)}catch{}let r=t===`auto`?n():t;document.documentElement.dataset.theme=r,document.documentElement.dataset.hdTheme=r,i()},i=()=>{let e=t(),n=document.documentElement.dataset.theme===`dark`;for(let e of document.querySelectorAll(`[data-hd-theme-toggle]`))e.setAttribute(`aria-label`,n?`Passer au thème clair`:`Passer au thème sombre`);for(let t of document.querySelectorAll(`[data-hd-theme-choice]`)){let n=t.dataset.hdThemeChoice===e;t.setAttribute(`aria-checked`,String(n)),t.tabIndex=n?0:-1}};for(let e of document.querySelectorAll(`[data-hd-theme-toggle]`))e.addEventListener(`click`,()=>r(document.documentElement.dataset.theme===`dark`?`light`:`dark`));for(let e of document.querySelectorAll(`.hd-theme-choice`)){let t=[...e.querySelectorAll(`[data-hd-theme-choice]`)];for(let e of t)e.addEventListener(`click`,()=>r(e.dataset.hdThemeChoice));e.addEventListener(`keydown`,e=>{let n=e.key===`ArrowRight`||e.key===`ArrowDown`?1:e.key===`ArrowLeft`||e.key===`ArrowUp`?-1:0;if(!n)return;e.preventDefault();let i=t.findIndex(e=>e.getAttribute(`aria-checked`)===`true`),a=t[(i+n+t.length)%t.length];r(a.dataset.hdThemeChoice),a.focus()})}matchMedia(`(prefers-color-scheme: light)`).addEventListener(`change`,()=>{t()===`auto`&&r(`auto`)}),i();</script></div></div></header><nav class="hd-sidebar" aria-label="Navigation de la documentation"><script type="module">for(let e of document.querySelectorAll(`[data-hgdc-version]`))e.addEventListener(`change`,()=>window.location.assign(e.value));var e=document.querySelector(`.sidebar-pane`);if(e){let t=`hd-sidebar-scroll`;try{let n=Number(sessionStorage.getItem(t));n&&(e.scrollTop=n)}catch{}let n=e.querySelector(`[aria-current="page"]`);if(n){let t=e.getBoundingClientRect(),r=n.getBoundingClientRect();(r.top<t.top||r.bottom>t.bottom)&&n.scrollIntoView({block:`center`})}addEventListener(`pagehide`,()=>{try{sessionStorage.setItem(t,String(e.scrollTop))}catch{}})}</script><hd-sidebar-pane popover="auto" id="starlight__sidebar" class="sidebar-pane"><div class="hd-sidebar__content"><div class="hd-mobile-only hd-sidebar-head"><a class="hd-brand" href="/"><span class="hd-brand__name">Docs</span></a><button type="button" class="hd-icon-button" popovertarget="starlight__sidebar" popovertargetaction="hide" aria-label="Fermer le menu"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M6 6l12 12M18 6 6 18"></path></svg></button></div><nav class="hd-mobile-only hd-sidebar-tabs" aria-label="Sections de la documentation"><a href="/">Guides</a><a href="/reference/docs-json/">Référence</a><a href="/explications/fonctionnement/" aria-current="page">Explications</a></nav><ul class="hd-nav hd-nav--depth-0"><li class="hd-nav__group"><p class="hd-nav__heading">Sous le capot</p><ul class="hd-nav hd-nav--depth-1"><li><a href="/explications/fonctionnement/" class="hd-nav__link" aria-current="page"><span>Comment ça marche</span></a></li><li><a href="/explications/donnees/" class="hd-nav__link"><span>Données</span></a></li></ul></li></ul><div class="hd-mobile-only hd-sidebar-footer"><nav class="hd-sidebar-links" aria-label="Liens"><a href="https://hgdc.ch">HGDC</a><a class="hd-pill hd-pill--primary" href="https://docs.hgdc.ch">Console</a></nav><div class="hd-theme-choice" role="radiogroup" aria-label="Thème"><button type="button" role="radio" aria-checked="false" data-hd-theme-choice="auto" aria-label="Système" title="Système"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4 5h16a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1Zm4 15h8m-4-3v3"></path></svg></button><button type="button" role="radio" aria-checked="false" data-hd-theme-choice="light" aria-label="Clair" title="Clair"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 16a4 4 0 1 0 0-8 4 4 0 0 0 0 8ZM12 2.5v2M12 19.5v2M4.6 4.6 6 6M18 18l1.4 1.4M2.5 12h2M19.5 12h2M4.6 19.4 6 18M18 6l1.4-1.4"></path></svg></button><button type="button" role="radio" aria-checked="false" data-hd-theme-choice="dark" aria-label="Sombre" title="Sombre"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M20 14.5A8 8 0 1 1 9.5 4a6.5 6.5 0 0 0 10.5 10.5Z"></path></svg></button></div></div></div></hd-sidebar-pane></nav><div class="hd-main-frame main-frame"><script type="module">var e=document.getElementById(`starlight__sidebar`),t=e?.querySelector(`sl-sidebar-state-persist`),n=`sl-sidebar-state`,r=()=>{let r=[],i=t?.dataset.hash||``;try{let e=sessionStorage.getItem(n),t=JSON.parse(e||`{}`);Array.isArray(t.open)&&t.hash===i&&(r=t.open)}catch{}return{hash:i,open:r,scroll:e?.scrollTop||0}},i=e=>{try{sessionStorage.setItem(n,JSON.stringify(e))}catch{}},a=()=>i(r()),o=(e,t)=>{let n=r();n.open[t]=e,i(n)};t?.addEventListener(`click`,e=>{if(!(e.target instanceof Element))return;let t=e.target.closest(`summary`)?.closest(`details`);if(!t)return;let n=t.querySelector(`sl-sidebar-restore`),r=parseInt(n?.dataset.index||``);isNaN(r)||o(!t.open,r)}),addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&a()});</script><div class="hd-columns hd-columns--toc"><div class="hd-columns__main main-pane"><main data-pagefind-body class="astro-mgylisfi" lang="fr-CH" dir="ltr"><div class="content-panel astro-lavu2imw"><div class="sl-container astro-lavu2imw"><div class="hd-title not-content"><p class="hd-eyebrow" data-pagefind-meta="section">Sous le capot</p><div class="hd-title__row"><h1 id="_top">Comment ça marche</h1><div class="hd-page-actions" data-hgdc-skip data-pagefind-ignore><div class="hd-split"><button type="button" class="hd-split__main" data-hgdc-copy="/explications/fonctionnement.md"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M9 9h10a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1V10a1 1 0 0 1 1-1Zm-4 6H4.5A1.5 1.5 0 0 1 3 13.5v-9A1.5 1.5 0 0 1 4.5 3h9A1.5 1.5 0 0 1 15 4.5V5"></path></svg><span data-label>Copier la page</span></button><details class="hd-menu"><summary class="hd-split__more" aria-label="Autres formats de la page"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="m6 9 6 6 6-6"></path></svg></summary><ul class="hd-menu__list"><li><button type="button" data-hgdc-copy-item><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M9 9h10a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1V10a1 1 0 0 1 1-1Zm-4 6H4.5A1.5 1.5 0 0 1 3 13.5v-9A1.5 1.5 0 0 1 4.5 3h9A1.5 1.5 0 0 1 15 4.5V5"></path></svg><span><strong>Copier la page</strong><small>En Markdown, pour un LLM</small></span></button></li><li><a href="/explications/fonctionnement.md"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4 6h16a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1Zm3 9V9l2.5 3L12 9v6m5-6v6m-2-2 2 2 2-2"></path></svg><span><strong>Voir en Markdown</strong><small>La page en texte brut</small></span></a></li><li><a data-hgdc-open="claude" href="https://claude.ai/new" target="_blank" rel="noopener"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M7 17 17 7M8 7h9v9"></path></svg><span><strong>Ouvrir dans Claude</strong><small>Poser une question sur cette page</small></span></a></li><li><a data-hgdc-open="chatgpt" href="https://chatgpt.com/" target="_blank" rel="noopener"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M7 17 17 7M8 7h9v9"></path></svg><span><strong>Ouvrir dans ChatGPT</strong><small>Poser une question sur cette page</small></span></a></li><li><a href="/llms.txt"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8Zm0 0v5h5M9 13h6m-6 4h4"></path></svg><span><strong>llms.txt</strong><small>L'index de la doc pour les agents</small></span></a></li></ul></details></div><span class="sr-only" role="status" aria-live="polite" data-hgdc-copy-status></span></div></div><p class="hd-lead">Du push au site publié, puis à l&#39;assistant qui répond.</p></div><script type="module">var e=document.querySelector(`[data-hgdc-copy-status]`),t=document.querySelector(`[data-hgdc-copy]`);async function n(){if(!t)return;let n=t.querySelector(`[data-label]`),r=t=>{n.textContent=t,e&&(e.textContent=t),setTimeout(()=>n.textContent=`Copier la page`,2e3)};try{let e=await fetch(t.dataset.hgdcCopy);if(!e.ok)throw Error(String(e.status));await navigator.clipboard.writeText(await e.text()),r(`Page copiée`)}catch{r(`Copie impossible`)}}if(t?.addEventListener(`click`,()=>void n()),document.querySelector(`[data-hgdc-copy-item]`)?.addEventListener(`click`,()=>{document.querySelector(`.hd-menu`).open=!1,n()}),t){let e=`Lis ${new URL(t.dataset.hgdcCopy,location.href).href} et réponds à mes questions sur cette page.`;for(let t of document.querySelectorAll(`[data-hgdc-open]`))t.href=`${t.dataset.hgdcOpen===`claude`?`https://claude.ai/new`:`https://chatgpt.com/`}?q=${encodeURIComponent(e)}`}for(let e of document.querySelectorAll(`.hd-menu`))document.addEventListener(`click`,t=>{e.open&&!e.contains(t.target)&&(e.open=!1)}),e.addEventListener(`keydown`,t=>{t.key===`Escape`&&e.open&&(t.stopPropagation(),e.open=!1,e.querySelector(`summary`)?.focus())});</script></div></div><div class="content-panel astro-lavu2imw"><div class="sl-container astro-lavu2imw"><div class="sl-markdown-content"><p>Docs tient en trois pièces : un modèle de site, Host qui le publie, et la console qui l’indexe pour l’assistant.</p>
17
+ <h2 id="1-le-modèle-de-site">1. Le modèle de site</h2>
18
+ <p>Le paquet <code>@hgdc/docs</code> contient un site Astro Starlight complet. <code>hgdc-docs build</code> lit ton <code>docs.json</code>, prend tes pages MDX et construit un site statique. Rien ne tourne côté serveur : le site est rapide et ne tombe pas en panne avec la console.</p>
19
+ <p>Pendant le build, chaque page est aussi convertie en Markdown à partir du HTML final. Les composants sont donc déjà rendus : ce que lit un agent est exactement ce que voit un visiteur.</p>
20
+ <h2 id="2-la-publication-par-host">2. La publication par Host</h2>
21
+ <p>Host lance le build dans GitHub Actions à chaque push, puis sert le dossier <code>dist/</code> sur ton domaine. La doc est une source comme une autre : préversion par branche, retour arrière, domaine.</p>
22
+ <h2 id="3-lindexation-par-la-console">3. L’indexation par la console</h2>
23
+ <p>La console relit <code>/_hgdc/corpus.json</code> sur le site publié : tous les quarts d’heure, ou quand tu cliques sur <strong>Synchroniser</strong>. Elle vérifie que le corpus porte bien l’identifiant du projet, puis :</p>
24
+ <ol>
25
+ <li>découpe chaque page en passages, un par section (titre <code>##</code> ou plus fin) ;</li>
26
+ <li>compare avec l’index existant, passage par passage : seuls les passages nouveaux sont traités ;</li>
27
+ <li>calcule leur représentation vectorielle (embedding), qui permet de retrouver une reformulation ;</li>
28
+ <li>supprime les passages qui ne sont plus publiés.</li>
29
+ </ol>
30
+ <p>Un build identique au précédent ne change rien à l’index.</p>
31
+ <h2 id="4-la-réponse">4. La réponse</h2>
32
+ <p>Une question passe par deux recherches : par mots (les termes exacts, comme <code>docs.json</code>) et par sens (les reformulations). Les deux classements sont fusionnés, les six meilleurs passages sont donnés au modèle Claude, qui répond en citant ceux qu’il utilise.</p>
33
+ <aside class="hd-callout" data-tone="note" aria-label="Note"><svg class="hd-icon hd-callout__icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18Zm0-5v-4.5m0-3.5h.01"></path></svg><div class="hd-callout__body"><p>L’index d’un projet est fermé aux autres : une recherche ne voit que les passages de son propre projet, vérifiés deux fois.</p></div></aside></div><hgdc-feedback class="hgdc-feedback not-content" data-endpoint="https://docs.hgdc.ch/api/v1/feedback" data-project="jn7dj6vzkgs7n2d16kqjtb99yd8gbdw0" data-pagefind-ignore="true"><div data-step="ask"><p class="hgdc-feedback__question">Cette page t'a aidé ?</p><div class="hgdc-feedback__choices"><button type="button" data-helpful="true"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M7 10v11M15 5.9 14 10h5.8a2 2 0 0 1 1.9 2.5l-2.3 7A2 2 0 0 1 17.5 21H4a1 1 0 0 1-1-1v-9a1 1 0 0 1 1-1h2.8a2 2 0 0 0 1.8-1.1L12 2a3.1 3.1 0 0 1 3 3.9Z"></path></svg>Oui</button><button type="button" data-helpful="false"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M17 14V3M9 18.1 10 14H4.2a2 2 0 0 1-1.9-2.5l2.3-7A2 2 0 0 1 6.5 3H20a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1h-2.8a2 2 0 0 0-1.8 1.1L12 22a3.1 3.1 0 0 1-3-3.9Z"></path></svg>Non</button></div></div><form data-step="comment" hidden><label for="hgdc-feedback-comment">Qu'est-ce qui manquait ou pourrait être plus clair ? (facultatif)</label><textarea id="hgdc-feedback-comment" name="comment" rows="3" maxlength="1000"></textarea><div class="hgdc-feedback__choices"><button type="submit">Envoyer</button><button type="button" data-skip>Passer</button></div></form><p data-step="done" class="hgdc-feedback__done" role="status" hidden>Merci, c'est noté.</p></hgdc-feedback><nav class="hd-pagination not-content" aria-label="Pages voisines" data-pagefind-ignore><a class="hd-pagination__link hd-pagination__link--next" href="/explications/donnees/" rel="next"><span class="hd-pagination__hint">Suivant<svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="m9 6 6 6-6 6"></path></svg></span><span class="hd-pagination__title">Données</span></a></nav><script type="module" src="/_astro/Footer.astro_astro_type_script_index_0_lang.DzCnn3OT.js"></script></div></div></main><form class="hd-askbar" data-askbar data-pagefind-ignore><label class="sr-only" for="hd-askbar-input">Pose une question à l'assistant</label><input id="hd-askbar-input" data-askbar-input type="text" maxlength="1000" placeholder="Pose une question…" autocomplete="off"><kbd class="hd-kbd" data-shortcut aria-hidden="true">Ctrl I</kbd><button type="submit" class="hd-send" aria-label="Envoyer la question"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 19V5m-6 6 6-6 6 6"></path></svg></button></form></div><aside class="hd-columns__toc" aria-label="Sur cette page"><div class="hd-toc-scroll"><starlight-toc data-min-h="2" data-max-h="3"><nav aria-labelledby="starlight__on-this-page"><h2 id="starlight__on-this-page">Sur cette page</h2><ul class="astro-vqenwucp" style="--depth: 0;"><li style="--depth: 0;" class="astro-vqenwucp"><a href="#_top" style="--depth: 0;" class="astro-vqenwucp"><span style="--depth: 0;" class="astro-vqenwucp">Vue d’ensemble</span></a></li><li style="--depth: 0;" class="astro-vqenwucp"><a href="#1-le-modèle-de-site" style="--depth: 0;" class="astro-vqenwucp"><span style="--depth: 0;" class="astro-vqenwucp">1. Le modèle de site</span></a></li><li style="--depth: 0;" class="astro-vqenwucp"><a href="#2-la-publication-par-host" style="--depth: 0;" class="astro-vqenwucp"><span style="--depth: 0;" class="astro-vqenwucp">2. La publication par Host</span></a></li><li style="--depth: 0;" class="astro-vqenwucp"><a href="#3-lindexation-par-la-console" style="--depth: 0;" class="astro-vqenwucp"><span style="--depth: 0;" class="astro-vqenwucp">3. L’indexation par la console</span></a></li><li style="--depth: 0;" class="astro-vqenwucp"><a href="#4-la-réponse" style="--depth: 0;" class="astro-vqenwucp"><span style="--depth: 0;" class="astro-vqenwucp">4. La réponse</span></a></li></ul></nav></starlight-toc><script type="module">var e=`_top`,t=class extends HTMLElement{_current=this.querySelector(`a[aria-current="true"]`);minH=parseInt(this.dataset.minH||`2`,10);maxH=parseInt(this.dataset.maxH||`3`,10);tocHeadingSelector=`h1#${e},:where(${[...Array.from({length:1+this.maxH-this.minH}).map((e,t)=>`h${this.minH+t}`)].join()})[id]`;set current(e){e!==this._current&&(this._current&&this._current.removeAttribute(`aria-current`),e.setAttribute(`aria-current`,`true`),this._current=e)}onIdle=e=>(window.requestIdleCallback||(e=>setTimeout(e,1)))(e);constructor(){super(),this.onIdle(()=>this.init())}init=()=>{let t=[...this.querySelectorAll(`a`)],n=e=>e.matches(this.tocHeadingSelector),r=t=>{for(;t;){if(t.matches(`.sl-markdown-content, main > *`))return document.getElementById(e);if(n(t))return t;let r=t.querySelector(this.tocHeadingSelector);if(r)return r;let i=t.previousElementSibling;for(;i?.lastElementChild;)i=i.lastElementChild;t=i??t.parentElement}return null},i=e=>{for(let{isIntersecting:n,target:i}of e){if(!n)continue;let e=r(i);if(!e)continue;let a=t.find(t=>t.hash===`#`+encodeURIComponent(e.id));if(a){this.current=a;break}}},a=document.querySelectorAll([`main :where(${this.tocHeadingSelector})`,`main :where(${this.tocHeadingSelector}, .sl-heading-wrapper) ~ *:not(:has(${this.tocHeadingSelector}))`,`main .sl-markdown-content > *:not(:has(${this.tocHeadingSelector}))`,`main > *:not(:has(${this.tocHeadingSelector}))`].join()),o,s=()=>{o||(o=new IntersectionObserver(i,{rootMargin:this.getRootMargin()}),a.forEach(e=>o.observe(e)))};s();let c;window.addEventListener(`resize`,()=>{o&&=(o.disconnect(),void 0),clearTimeout(c),c=setTimeout(()=>this.onIdle(s),200)})};getRootMargin(){let e=(document.querySelector(`header`)?.getBoundingClientRect().height||0)+(this.querySelector(`summary`)?.getBoundingClientRect().height||0)+32;return`-${e}px 0% ${e+53-document.documentElement.clientHeight}px`}};customElements.define(`starlight-toc`,t);</script></div></aside></div><footer class="hd-site-footer" data-pagefind-ignore><div class="hd-site-footer__row"><a class="hd-brand hd-brand--footer" href="/"><span class="hd-brand__mark"><img class="hd-brand__light" src="/images/logo-clair.svg" alt="" width="20" height="20" loading="lazy"><img class="hd-brand__dark" src="/images/logo-sombre.svg" alt="" width="20" height="20" loading="lazy"></span><span class="hd-brand__name">Docs</span></a></div><div class="hd-site-footer__row hd-site-footer__row--meta"><p>Écrire une documentation en MDX, la publier avec Host et y brancher un assistant IA qui cite ses sources.</p><div class="hd-theme-choice" role="radiogroup" aria-label="Thème"><button type="button" role="radio" aria-checked="false" data-hd-theme-choice="auto" aria-label="Système" title="Système"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4 5h16a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1Zm4 15h8m-4-3v3"></path></svg></button><button type="button" role="radio" aria-checked="false" data-hd-theme-choice="light" aria-label="Clair" title="Clair"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 16a4 4 0 1 0 0-8 4 4 0 0 0 0 8ZM12 2.5v2M12 19.5v2M4.6 4.6 6 6M18 18l1.4 1.4M2.5 12h2M19.5 12h2M4.6 19.4 6 18M18 6l1.4-1.4"></path></svg></button><button type="button" role="radio" aria-checked="false" data-hd-theme-choice="dark" aria-label="Sombre" title="Sombre"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M20 14.5A8 8 0 1 1 9.5 4a6.5 6.5 0 0 0 10.5 10.5Z"></path></svg></button></div></div></footer></div><hgdc-assistant data-endpoint="https://docs.hgdc.ch/api/v1/ask" data-project="jn7dj6vzkgs7n2d16kqjtb99yd8gbdw0" data-name="Docs"><section class="hgdc-panel" role="dialog" aria-modal="false" aria-labelledby="hgdc-assistant-title" data-panel inert><div class="hgdc-panel__grip" aria-hidden="true"></div><header class="hgdc-panel__header"><h2 id="hgdc-assistant-title"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3.5 13.6 8a3 3 0 0 0 1.9 1.9L20 11.5l-4.5 1.6a3 3 0 0 0-1.9 1.9L12 19.5 10.4 15a3 3 0 0 0-1.9-1.9L4 11.5 8.5 9.9A3 3 0 0 0 10.4 8ZM19 3v3M20.5 4.5h-3"></path></svg>Assistant</h2><div class="hgdc-panel__tools"><button type="button" class="hd-icon-button" data-reset aria-label="Nouvelle conversation" title="Nouvelle conversation" hidden><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4 12a8 8 0 1 0 2.3-5.7M4 4v4h4"></path></svg></button><button type="button" class="hd-icon-button" data-close aria-label="Fermer l'assistant" title="Fermer (Échap)"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M6 6l12 12M18 6 6 18"></path></svg></button></div></header><div class="hgdc-panel__body" data-log aria-live="polite"><div class="hgdc-empty" data-empty><p class="hgdc-empty__title">Pose ta question sur Docs.</p><p>Je cherche dans les pages de cette documentation et je cite mes sources. Si la réponse n'y est pas, je te le dis.</p></div></div><form class="hgdc-panel__form" data-form><label class="sr-only" for="hgdc-question">Ta question</label><textarea id="hgdc-question" data-input rows="1" maxlength="1000" placeholder="Pose une question…" required></textarea><button type="submit" class="hd-send" data-send aria-label="Envoyer la question"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 19V5m-6 6 6-6 6 6"></path></svg></button></form><p class="hgdc-panel__note">Réponses générées par IA (Claude, d'Anthropic), à vérifier. Les questions sont conservées 90 jours pour améliorer cette documentation.</p></section></hgdc-assistant><script type="module" src="/_astro/Assistant.astro_astro_type_script_index_0_lang.C1pz7yK1.js"></script></div><script type="module">var e=class extends HTMLElement{connectedCallback(){let e=matchMedia(`(min-width: 50em)`),t=()=>{e.matches&&this.matches(`:popover-open`)&&this.hidePopover(),this.popover=e.matches?null:`auto`};t(),e.addEventListener(`change`,t),this.addEventListener(`toggle`,e=>{let t=e.newState===`open`;for(let e of document.querySelectorAll(`.hd-main-frame, .hd-askbar`))e.toggleAttribute(`inert`,t);document.documentElement.toggleAttribute(`data-hd-menu`,t)}),this.addEventListener(`click`,e=>{e.target.closest(`a`)&&this.matches(`:popover-open`)&&this.hidePopover()})}};customElements.define(`hd-sidebar-pane`,e);</script></body></html>
@@ -0,0 +1,32 @@
1
+ # Comment ça marche
2
+
3
+ Docs tient en trois pièces : un modèle de site, Host qui le publie, et la console qui l’indexe pour l’assistant.
4
+
5
+ ## 1. Le modèle de site
6
+
7
+ Le paquet `@hgdc/docs` contient un site Astro Starlight complet. `hgdc-docs build` lit ton `docs.json`, prend tes pages MDX et construit un site statique. Rien ne tourne côté serveur : le site est rapide et ne tombe pas en panne avec la console.
8
+
9
+ Pendant le build, chaque page est aussi convertie en Markdown à partir du HTML final. Les composants sont donc déjà rendus : ce que lit un agent est exactement ce que voit un visiteur.
10
+
11
+ ## 2. La publication par Host
12
+
13
+ Host lance le build dans GitHub Actions à chaque push, puis sert le dossier `dist/` sur ton domaine. La doc est une source comme une autre : préversion par branche, retour arrière, domaine.
14
+
15
+ ## 3. L’indexation par la console
16
+
17
+ La console relit `/_hgdc/corpus.json` sur le site publié : tous les quarts d’heure, ou quand tu cliques sur **Synchroniser**. Elle vérifie que le corpus porte bien l’identifiant du projet, puis :
18
+
19
+ 1. découpe chaque page en passages, un par section (titre `##` ou plus fin) ;
20
+ 2. compare avec l’index existant, passage par passage : seuls les passages nouveaux sont traités ;
21
+ 3. calcule leur représentation vectorielle (embedding), qui permet de retrouver une reformulation ;
22
+ 4. supprime les passages qui ne sont plus publiés.
23
+
24
+ Un build identique au précédent ne change rien à l’index.
25
+
26
+ ## 4. La réponse
27
+
28
+ Une question passe par deux recherches : par mots (les termes exacts, comme `docs.json`) et par sens (les reformulations). Les deux classements sont fusionnés, les six meilleurs passages sont donnés au modèle Claude, qui répond en citant ceux qu’il utilise.
29
+
30
+ > **Note**
31
+ >
32
+ > L’index d’un projet est fermé aux autres : une recherche ne voit que les passages de son propre projet, vérifiés deux fois.