[{"data":1,"prerenderedAt":1335},["ShallowReactive",2],{"duxt-navigation-docs-docs_fr":3,"i-lucide:compass":942,"i-lucide:layers":947,"i-lucide:keyboard":949,"i-lucide:git-branch":951,"i-lucide:shield-check":953,"i-lucide:bot":955,"i-lucide:search":957,"i-lucide:languages":959,"docs-fr-FR-\u002Fconcepts\u002Fkeyboard-shortcuts":961,"i-lucide:palette":1277,"i-lucide:git-compare":1279,"i-lucide:database":13,"i-lucide:file-cog":13,"duxt-preferred-missing-\u002Fconcepts\u002Fkeyboard-shortcuts":945,"i-lucide:rocket":1281,"i-lucide:book-open":1283,"i-lucide:list":1285,"i-lucide:puzzle":1287,"i-lucide:ruler":1289,"i-lucide:gavel":1291,"i-lucide:copy":1293,"i-lucide:chevron-down":1295,"i-lucide:thumbs-up":1297,"i-lucide:thumbs-down":1299,"i-lucide:star":1301,"i-lucide:circle-alert":1303,"i-simple-icons:discord":1305,"i-lucide:book-open-text":1307,"i-lucide:arrow-up-right":1309,"i-lucide:file-code-2":1311,"i-lucide:triangle-alert":1313,"i-lucide:arrow-left":1315,"i-lucide:arrow-right":1317,"i-lucide:chevron-right":1319,"i-lucide:menu":1321,"i-simple-icons:github":1323,"i-lucide:moon":1325,"duxt-version-missing-\u002Fconcepts\u002Fkeyboard-shortcuts":1327,"i-flag:fr-4x3":1331},[4,31,111,183,826,845,853,878],{"title":5,"path":6,"stem":7,"children":8,"description":12},"Introduction","\u002Fgetting-started","1.getting-started",[9,14,20,26],{"title":5,"path":6,"stem":10,"icon":11,"description":12,"subcategory":13},"1.getting-started\u002Findex","lucide:rocket","Ce qu’est duxt, et ce qui arrive avec une seule ligne de configuration.",null,{"title":15,"path":16,"stem":17,"icon":18,"description":19,"subcategory":13},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F1.installation","lucide:download","Ajoutez la couche, étendez-la, écrivez du Markdown.",{"title":21,"path":22,"stem":23,"icon":24,"description":25,"subcategory":13},"Configuration","\u002Fgetting-started\u002Fconfiguration","1.getting-started\u002F2.configuration","lucide:settings","Un fichier configure tout le site — ce qu’il contient, et comment il fusionne.",{"title":27,"path":28,"stem":29,"icon":11,"description":30,"subcategory":13},"Démarrer avec le starter","\u002Fgetting-started\u002Ffrom-starter","1.getting-started\u002F3.from-starter","Créez avec Nuxi un site de documentation duxt prêt à démarrer.",{"title":32,"path":33,"stem":34,"children":35,"description":39},"Concepts","\u002Fconcepts","2.concepts",[36,40,46,52,58,64,70,76,81,87,93,99,105],{"title":32,"path":33,"stem":37,"icon":38,"description":39,"subcategory":13},"2.concepts\u002Findex","lucide:compass","Comment fonctionne la couche — le modèle de sources, le schéma d’URL, les collections et les vérifications.",{"title":41,"path":42,"stem":43,"icon":44,"description":45,"subcategory":13},"Couches et surcharge","\u002Fconcepts\u002Flayers","2.concepts\u002F1.layers","lucide:layers","Ce qu’une couche Nuxt vous donne, ce qu’elle vous retire, et quels chemins ne se résolvent pas comme ils se lisent.",{"title":47,"path":48,"stem":49,"icon":50,"description":51,"subcategory":13},"Thématisation","\u002Fconcepts\u002Ftheming","2.concepts\u002F10.theming","lucide:palette","Comment le thème est construit — des composants possédés, une couche de jetons et un mode sombre qui bascule sur une classe.",{"title":53,"path":54,"stem":55,"icon":56,"description":57,"subcategory":13},"Bases de données","\u002Fconcepts\u002Fdatabases","2.concepts\u002F11.databases","lucide:database","Sur quels adaptateurs de base de données de Content un site duxt peut être déployé, lesquels ont été vérifiés, et la seule règle qui garde la couche à l’écart.",{"title":59,"path":60,"stem":61,"icon":62,"description":63,"subcategory":13},"Raccourcis clavier","\u002Fconcepts\u002Fkeyboard-shortcuts","2.concepts\u002F12.keyboard-shortcuts","lucide:keyboard","Les quatre touches que le thème lie, où chacune s'applique, et où la lectrice l'apprend.",{"title":65,"path":66,"stem":67,"icon":68,"description":69,"subcategory":13},"Sources","\u002Fconcepts\u002Fsources","2.concepts\u002F2.sources","lucide:git-branch","Une liste de sources devient chaque collection, préfixe et version que le site sert.",{"title":71,"path":72,"stem":73,"icon":74,"description":75,"subcategory":13},"URL et versions","\u002Fconcepts\u002Furls-and-versions","2.concepts\u002F3.urls-and-versions","lucide:git-compare","Comment apparaissent les segments de dépôt et de version, et ce qu’on dit à un lecteur dans une ancienne version.",{"title":77,"path":78,"stem":79,"icon":56,"description":80,"subcategory":13},"Collections","\u002Fconcepts\u002Fcollections","2.concepts\u002F4.collections","Ce que Content construit à partir des sources, et les quatre choses qu’ajoute le schéma.",{"title":82,"path":83,"stem":84,"icon":85,"description":86,"subcategory":13},"Sections générées","\u002Fconcepts\u002Fgenerated-sections","2.concepts\u002F5.generated-sections","lucide:file-cog","Un artefact plus un type, publiés en pages — ce qu’est le registre, et les deux politiques auxquelles un type répond.",{"title":88,"path":89,"stem":90,"icon":91,"description":92,"subcategory":13},"Ce que la compilation vérifie","\u002Fconcepts\u002Fbuild-checks","2.concepts\u002F6.build-checks","lucide:shield-check","Les échecs silencieux qu’a connus cette couche, transformés en messages.",{"title":94,"path":95,"stem":96,"icon":97,"description":98,"subcategory":13},"Lecteurs machines","\u002Fconcepts\u002Fmachine-readers","2.concepts\u002F7.machine-readers","lucide:bot","Ce qu’obtient un modèle — llms.txt, le Markdown brut de n’importe quelle page et un vrai serveur MCP.",{"title":100,"path":101,"stem":102,"icon":103,"description":104,"subcategory":13},"SEO","\u002Fconcepts\u002Fseo","2.concepts\u002F8.seo","lucide:search","Ce que chaque page émet pour les robots et les cartes sociales, quel module l'écrit, et la seule valeur que la couche ne peut pas deviner.",{"title":106,"path":107,"stem":108,"icon":109,"description":110,"subcategory":13},"Localisation","\u002Fconcepts\u002Flocalisation","2.concepts\u002F9.localisation","lucide:languages","La couche fournit sept locales, et chaque chaîne configurée prend trois formes.",{"title":112,"path":113,"stem":114,"children":115,"description":119},"Guides","\u002Fguides","3.guides",[116,120,126,132,138,143,148,153,159,165,171,177],{"title":112,"path":113,"stem":117,"icon":118,"description":119,"subcategory":13},"3.guides\u002Findex","lucide:book-open","Une tâche par page, du début à la fin — plusieurs dépôts, plusieurs versions, plusieurs langues et un déploiement.",{"title":121,"path":122,"stem":123,"icon":124,"description":125,"subcategory":13},"Plusieurs dépôts","\u002Fguides\u002Fseveral-repositories","3.guides\u002F1.several-repositories","lucide:folder-git","Servir la documentation de plusieurs projets depuis un seul site.",{"title":127,"path":128,"stem":129,"icon":130,"description":131,"subcategory":13},"Publier la documentation d’un provider Terraform","\u002Fguides\u002Fpublish-terraform-provider-docs","3.guides\u002F10.publish-terraform-provider-docs","simple-icons:terraform","Transformer un arbre Markdown tfplugindocs en référence versionnée avec une navigation adaptée au provider.",{"title":133,"path":134,"stem":135,"icon":136,"description":137,"subcategory":13},"Mettre en cache les sources distantes et images OG","\u002Fguides\u002Fcache-build-work","3.guides\u002F11.cache-build-work","lucide:database-zap","Réutiliser les dépôts publics téléchargés et les cartes sociales rendues entre les builds CI.",{"title":139,"path":140,"stem":141,"icon":74,"description":142,"subcategory":13},"Plusieurs versions","\u002Fguides\u002Fseveral-versions","3.guides\u002F2.several-versions","Servir la même documentation sur plusieurs refs, avec un sélecteur et un bandeau.",{"title":144,"path":145,"stem":146,"icon":109,"description":147,"subcategory":13},"Plusieurs langues","\u002Fguides\u002Fseveral-languages","3.guides\u002F3.several-languages","Servir l’interface en plusieurs langues, et traduire les pages elles-mêmes.",{"title":149,"path":150,"stem":151,"icon":50,"description":152,"subcategory":13},"Surcharger le thème","\u002Fguides\u002Foverride-the-theme","3.guides\u002F4.override-the-theme","Changer une couleur, remplacer un composant, ajouter une primitive shadcn-vue.",{"title":154,"path":155,"stem":156,"icon":157,"description":158,"subcategory":13},"Déplacer une page","\u002Fguides\u002Fmove-a-page","3.guides\u002F5.move-a-page","lucide:signpost","redirectFrom dans le frontmatter, transformé en règles de route sous chaque préfixe.",{"title":160,"path":161,"stem":162,"icon":163,"description":164,"subcategory":13},"Déployer un site","\u002Fguides\u002Fdeploy-a-site","3.guides\u002F6.deploy-a-site","lucide:cloud-upload","Où un site duxt peut tourner, ce qu’il lui faut là-bas, et pourquoi le contenu n’est pas rafraîchi à l’exécution.",{"title":166,"path":167,"stem":168,"icon":169,"description":170,"subcategory":13},"Recueillir des retours","\u002Fguides\u002Fcollect-page-feedback","3.guides\u002F7.collect-page-feedback","lucide:thumbs-up","Enveloppez DuxtPageFeedback et gardez la réponse là où vit déjà votre analytique.",{"title":172,"path":173,"stem":174,"icon":175,"description":176,"subcategory":13},"Donner son identité à votre site","\u002Fguides\u002Fbrand-your-site","3.guides\u002F8.brand-your-site","lucide:badge-check","Définir le nom, le logo et les icônes, pour que le site se lise comme le vôtre et non comme celui de la couche.",{"title":178,"path":179,"stem":180,"icon":181,"description":182,"subcategory":13},"Envoyer des événements d’analytique","\u002Fguides\u002Fsend-analytics-events","3.guides\u002F9.send-analytics-events","lucide:chart-line","Une fonction de rappel, cinq événements, aucun fournisseur — branchez les interactions des lecteurs de duxt sur l’analytique que vous utilisez déjà.",{"title":184,"path":185,"stem":186,"children":187,"description":191},"Référence","\u002Freference","4.reference",[188,192,196,228,258,264,268,273,413,570,696,741,801],{"title":184,"path":185,"stem":189,"icon":190,"description":191,"subcategory":13},"4.reference\u002Findex","lucide:list","La surface publique de la couche — clés de configuration, frontmatter, composants, composables et points de terminaison.",{"title":21,"path":193,"stem":194,"icon":24,"description":195,"subcategory":13},"\u002Freference\u002Fconfiguration","4.reference\u002F1.configuration","Chaque clé sous duxt dans app.config.ts — ce qu’elle contrôle, et quand elle est lue.",{"title":197,"path":198,"stem":199,"children":200,"icon":202,"description":203,"subcategory":13},"Journal des versions","\u002Freference\u002Fchangelog","4.reference\u002F10.changelog\u002Findex",[201,204,210,216,222],{"title":197,"path":198,"stem":199,"icon":202,"description":203,"subcategory":13},"lucide:tag","Un journal de releases, publié en pages — une chronologie, une page par version, et un flux.",{"title":205,"path":206,"stem":207,"icon":208,"description":209,"subcategory":13},"Déclarer la section","\u002Freference\u002Fchangelog\u002Fsection","4.reference\u002F10.changelog\u002F1.section","lucide:file-clock","Le type de section `changelog` — où vit le fichier, et les deux politiques auxquelles il répond.",{"title":211,"path":212,"stem":213,"icon":214,"description":215,"subcategory":13},"Granularité","\u002Freference\u002Fchangelog\u002Fgranularity","4.reference\u002F10.changelog\u002F2.granularity","lucide:split","Une page par version, ou le fichier comme l’unique page qu’il a été écrit.",{"title":217,"path":218,"stem":219,"icon":220,"description":221,"subcategory":13},"Ce qui est lu","\u002Freference\u002Fchangelog\u002Fwhat-is-read","4.reference\u002F10.changelog\u002F3.what-is-read","lucide:scan-text","Quels titres deviennent des versions, lesquels des groupes, et ce qu’il advient du reste.",{"title":223,"path":224,"stem":225,"icon":226,"description":227,"subcategory":13},"Mise en page et composants","\u002Freference\u002Fchangelog\u002Fcomponents","4.reference\u002F10.changelog\u002F4.components","lucide:box","La mise en page dans laquelle se rend un historique éclaté, et les deux composants MDC dont ses pages sont faites.",{"title":229,"path":230,"stem":231,"children":232,"icon":234,"description":235,"subcategory":13},"Collections Bruno","\u002Freference\u002Fbruno","4.reference\u002F11.bruno\u002Findex",[233,236,241,247,253],{"title":229,"path":230,"stem":231,"icon":234,"description":235,"subcategory":13},"lucide:send","Une collection Bruno publiée en référence centrée sur les requêtes, avec une archive téléchargeable.",{"title":205,"path":237,"stem":238,"icon":239,"description":240,"subcategory":13},"\u002Freference\u002Fbruno\u002Fsection","4.reference\u002F11.bruno\u002F1.section","lucide:file-code","Où vit une collection Bruno, quelles pages elle produit et quelles options elle accepte.",{"title":242,"path":243,"stem":244,"icon":245,"description":246,"subcategory":13},"Ce qui est publié","\u002Freference\u002Fbruno\u002Fwhat-is-published","4.reference\u002F11.bruno\u002F2.what-is-published","lucide:shield","Environnements, identifiants, scripts et tests n’atteignent jamais une page.",{"title":248,"path":249,"stem":250,"icon":251,"description":252,"subcategory":13},"Le client de requêtes","\u002Freference\u002Fbruno\u002Ftry-it","4.reference\u002F11.bruno\u002F3.try-it","lucide:send-horizontal","Désactivé par défaut et dirigé uniquement vers une cible déclarée publique.",{"title":254,"path":255,"stem":256,"icon":18,"description":257,"subcategory":13},"Obtenir la collection","\u002Freference\u002Fbruno\u002Fgetting-the-collection","4.reference\u002F11.bruno\u002F4.getting-the-collection","L’archive est liée à la version et à la langue affichées ; le lien Bruno ne l’est pas.",{"title":259,"path":260,"stem":261,"icon":262,"description":263,"subcategory":13},"Hooks","\u002Freference\u002Fhooks","4.reference\u002F12.hooks","lucide:plug","L’unique hook de build que duxt émet, ce qu’il vous remet et pourquoi il n’y en a qu’un.",{"title":65,"path":265,"stem":266,"icon":68,"description":267,"subcategory":13},"\u002Freference\u002Fsources","4.reference\u002F2.sources","Les champs d’une entrée de source, ses refs, et les options qui façonnent les URL.",{"title":269,"path":270,"stem":271,"icon":239,"description":272,"subcategory":13},"Frontmatter","\u002Freference\u002Ffrontmatter","4.reference\u002F3.frontmatter","Les champs qu’une page peut porter au-delà du titre et de la description, et les deux que la compilation remplit.",{"title":274,"path":275,"stem":276,"children":277,"icon":279,"description":280,"subcategory":13},"Composants MDC","\u002Freference\u002Fmdc-components","4.reference\u002F4.mdc-components\u002Findex",[278,281,287,293,299,305,311,317,323,329,367,373,378,384,390,396,402,408],{"title":274,"path":275,"stem":276,"icon":279,"description":280,"subcategory":13},"lucide:blocks","Les blocs qu’une page Markdown peut appeler, une page chacun, avec leurs props.",{"title":282,"path":283,"stem":284,"icon":285,"description":286,"subcategory":13},"Callout","\u002Freference\u002Fmdc-components\u002Fcallout","4.reference\u002F4.mdc-components\u002F1.callout","lucide:message-square-warning","Un encadré où le lecteur est censé s’arrêter — une astuce, un avertissement, un danger.",{"title":288,"path":289,"stem":290,"icon":291,"description":292,"subcategory":13},"Gestionnaires de paquets","\u002Freference\u002Fmdc-components\u002Fpackage-managers","4.reference\u002F4.mdc-components\u002F10.package-managers","lucide:package","Une commande, un onglet par gestionnaire de paquets, mémorisé d’une page à l’autre.",{"title":294,"path":295,"stem":296,"icon":297,"description":298,"subcategory":13},"Arborescence de fichiers","\u002Freference\u002Fmdc-components\u002Ffile-tree","4.reference\u002F4.mdc-components\u002F11.file-tree","lucide:folder-tree","Une structure de dossiers, avec une icône par type de fichier.",{"title":300,"path":301,"stem":302,"icon":303,"description":304,"subcategory":13},"Aperçu","\u002Freference\u002Fmdc-components\u002Fpreview","4.reference\u002F4.mdc-components\u002F12.preview","lucide:eye","Un composant rendu tel que la page le rend, avec sa source à côté.",{"title":306,"path":307,"stem":308,"icon":309,"description":310,"subcategory":13},"Cartes de page","\u002Freference\u002Fmdc-components\u002Fpage-cards","4.reference\u002F4.mdc-components\u002F13.page-cards","lucide:layout-grid","Les enfants d’une section, en cartes.",{"title":312,"path":313,"stem":314,"icon":315,"description":316,"subcategory":13},"Partial","\u002Freference\u002Fmdc-components\u002Fpartial","4.reference\u002F4.mdc-components\u002F14.partial","lucide:puzzle","Un bloc écrit une fois et rendu dans chaque source qui en a besoin.",{"title":318,"path":319,"stem":320,"icon":321,"description":322,"subcategory":13},"Since","\u002Freference\u002Fmdc-components\u002Fsince","4.reference\u002F4.mdc-components\u002F15.since","lucide:milestone","La version dans laquelle une chose est arrivée, à côté d’un titre.",{"title":324,"path":325,"stem":326,"icon":327,"description":328,"subcategory":13},"Mermaid","\u002Freference\u002Fmdc-components\u002Fmermaid","4.reference\u002F4.mdc-components\u002F16.mermaid","lucide:workflow","Un diagramme depuis un bloc ou une prop.",{"title":330,"path":331,"stem":332,"children":333,"icon":335,"description":336,"subcategory":13},"Surcharges de prose","\u002Freference\u002Fmdc-components\u002Fprose","4.reference\u002F4.mdc-components\u002F17.prose\u002Findex",[334,337,343,349,355,361],{"title":330,"path":331,"stem":332,"icon":335,"description":336,"subcategory":13},"lucide:type","Ce que la couche change au Markdown ordinaire — liens, titres, images, code et tableaux.",{"title":338,"path":339,"stem":340,"icon":341,"description":342,"subcategory":13},"ProseA","\u002Freference\u002Fmdc-components\u002Fprose\u002Fprose-a","4.reference\u002F4.mdc-components\u002F17.prose\u002F1.prose-a","lucide:link","Un lien, résolu selon la source dans laquelle il a été écrit.",{"title":344,"path":345,"stem":346,"icon":347,"description":348,"subcategory":13},"ProseH2, ProseH3, ProseH4","\u002Freference\u002Fmdc-components\u002Fprose\u002Fprose-headings","4.reference\u002F4.mdc-components\u002F17.prose\u002F2.prose-headings","lucide:heading","Des titres, chacun avec une ancre de permalien.",{"title":350,"path":351,"stem":352,"icon":353,"description":354,"subcategory":13},"ProseImg","\u002Freference\u002Fmdc-components\u002Fprose\u002Fprose-img","4.reference\u002F4.mdc-components\u002F17.prose\u002F3.prose-img","lucide:image","Une image : consciente du thème, adaptative et agrandissable.",{"title":356,"path":357,"stem":358,"icon":359,"description":360,"subcategory":13},"ProsePre","\u002Freference\u002Fmdc-components\u002Fprose\u002Fprose-pre","4.reference\u002F4.mdc-components\u002F17.prose\u002F4.prose-pre","lucide:terminal","Le bloc de code : nom de fichier, icône de langage, bouton de copie.",{"title":362,"path":363,"stem":364,"icon":365,"description":366,"subcategory":13},"ProseTable","\u002Freference\u002Fmdc-components\u002Fprose\u002Fprose-table","4.reference\u002F4.mdc-components\u002F17.prose\u002F5.prose-table","lucide:table","Un tableau qui défile à la place de la page.",{"title":368,"path":369,"stem":370,"icon":371,"description":372,"subcategory":13},"Étapes","\u002Freference\u002Fmdc-components\u002Fsteps","4.reference\u002F4.mdc-components\u002F2.steps","lucide:list-ordered","Une liste ordonnée dessinée en étapes numérotées sur un rail.",{"title":374,"path":375,"stem":376,"icon":239,"description":377,"subcategory":13},"Groupe de code","\u002Freference\u002Fmdc-components\u002Fcode-group","4.reference\u002F4.mdc-components\u002F3.code-group","Plusieurs blocs de code en un seul bloc à onglets, étiquetés par nom de fichier.",{"title":379,"path":380,"stem":381,"icon":382,"description":383,"subcategory":13},"Groupe d'onglets","\u002Freference\u002Fmdc-components\u002Ftab-group","4.reference\u002F4.mdc-components\u002F4.tab-group","lucide:panels-top-left","Des onglets pour tout ce qui n’est pas du code.",{"title":385,"path":386,"stem":387,"icon":388,"description":389,"subcategory":13},"Tab","\u002Freference\u002Fmdc-components\u002Ftab","4.reference\u002F4.mdc-components\u002F5.tab","lucide:square","Un panneau d’un groupe d’onglets.",{"title":391,"path":392,"stem":393,"icon":394,"description":395,"subcategory":13},"Accordion","\u002Freference\u002Fmdc-components\u002Faccordion","4.reference\u002F4.mdc-components\u002F6.accordion","lucide:chevrons-up-down","Des sections repliables — une FAQ, ou des réponses parmi lesquelles le lecteur choisit.",{"title":397,"path":398,"stem":399,"icon":400,"description":401,"subcategory":13},"Élément d'accordéon","\u002Freference\u002Fmdc-components\u002Faccordion-item","4.reference\u002F4.mdc-components\u002F7.accordion-item","lucide:chevron-down","Une section repliable.",{"title":403,"path":404,"stem":405,"icon":406,"description":407,"subcategory":13},"Groupe de champs","\u002Freference\u002Fmdc-components\u002Ffield-group","4.reference\u002F4.mdc-components\u002F8.field-group","lucide:list-tree","Une liste de champs, en un seul bloc.",{"title":409,"path":410,"stem":411,"icon":202,"description":412,"subcategory":13},"Champ","\u002Freference\u002Fmdc-components\u002Ffield","4.reference\u002F4.mdc-components\u002F9.field","Un paramètre, une propriété ou une option, avec son type et sa valeur par défaut.",{"title":414,"path":415,"stem":416,"children":417,"icon":419,"description":420,"subcategory":13},"Composants","\u002Freference\u002Fcomponents","4.reference\u002F5.components\u002Findex",[418,421,447,488,539],{"title":414,"path":415,"stem":416,"icon":419,"description":420,"subcategory":13},"lucide:component","Les composants propres à la couche, une page chacun — à quoi sert chacun, et ce qu’il prend.",{"title":422,"path":423,"stem":424,"children":425,"icon":427,"description":428,"subcategory":13},"Mise en page","\u002Freference\u002Fcomponents\u002Flayout","4.reference\u002F5.components\u002F1.layout\u002Findex",[426,429,435,441],{"title":422,"path":423,"stem":424,"icon":427,"description":428,"subcategory":13},"lucide:layout-panel-top","Les deux composants qui encadrent une page — la barre de navigation et le pied de page.",{"title":430,"path":431,"stem":432,"icon":433,"description":434,"subcategory":13},"DuxtHeader","\u002Freference\u002Fcomponents\u002Flayout\u002Fduxt-header","4.reference\u002F5.components\u002F1.layout\u002F1.duxt-header","lucide:panel-top","La barre de navigation : titre, navigation, recherche et liens en icônes.",{"title":436,"path":437,"stem":438,"icon":439,"description":440,"subcategory":13},"DuxtFooter","\u002Freference\u002Fcomponents\u002Flayout\u002Fduxt-footer","4.reference\u002F5.components\u002F1.layout\u002F2.duxt-footer","lucide:panel-bottom","Le pied de page : le nom du site, ses liens légaux, et la ligne propre à la couche.",{"title":442,"path":443,"stem":444,"icon":445,"description":446,"subcategory":13},"DuxtAnnouncements","\u002Freference\u002Fcomponents\u002Flayout\u002Fduxt-announcements","4.reference\u002F5.components\u002F1.layout\u002F3.duxt-announcements","lucide:megaphone","Les avis du site, dessinés par emplacement uniquement lorsqu’il y a quelque chose à annoncer.",{"title":448,"path":449,"stem":450,"children":451,"icon":38,"description":453,"subcategory":13},"Navigation","\u002Freference\u002Fcomponents\u002Fnavigation","4.reference\u002F5.components\u002F2.navigation\u002Findex",[452,454,460,465,471,477,482],{"title":448,"path":449,"stem":450,"icon":38,"description":453,"subcategory":13},"Se déplacer — la rangée des sections, la barre latérale, le fil d’Ariane, le sommaire et précédent\u002Fsuivant.",{"title":455,"path":456,"stem":457,"icon":458,"description":459,"subcategory":13},"DuxtSections","\u002Freference\u002Fcomponents\u002Fnavigation\u002Fduxt-sections","4.reference\u002F5.components\u002F2.navigation\u002F1.duxt-sections","lucide:rows-3","La deuxième rangée de la barre de navigation — les parties de premier niveau de la documentation.",{"title":461,"path":462,"stem":463,"icon":406,"description":464,"subcategory":13},"DuxtNavigation","\u002Freference\u002Fcomponents\u002Fnavigation\u002Fduxt-navigation","4.reference\u002F5.components\u002F2.navigation\u002F2.duxt-navigation","L’arbre de la barre latérale.",{"title":466,"path":467,"stem":468,"icon":469,"description":470,"subcategory":13},"DuxtNavigationLink","\u002Freference\u002Fcomponents\u002Fnavigation\u002Fduxt-navigation-link","4.reference\u002F5.components\u002F2.navigation\u002F3.duxt-navigation-link","lucide:link-2","Une entrée de la barre latérale.",{"title":472,"path":473,"stem":474,"icon":475,"description":476,"subcategory":13},"DuxtBreadcrumb","\u002Freference\u002Fcomponents\u002Fnavigation\u002Fduxt-breadcrumb","4.reference\u002F5.components\u002F2.navigation\u002F4.duxt-breadcrumb","lucide:chevrons-right","Le fil au-dessus du titre de page.",{"title":478,"path":479,"stem":480,"icon":190,"description":481,"subcategory":13},"DuxtToc","\u002Freference\u002Fcomponents\u002Fnavigation\u002Fduxt-toc","4.reference\u002F5.components\u002F2.navigation\u002F5.duxt-toc","Le sommaire, et l’encart en dessous.",{"title":483,"path":484,"stem":485,"icon":486,"description":487,"subcategory":13},"DuxtPageNav","\u002Freference\u002Fcomponents\u002Fnavigation\u002Fduxt-page-nav","4.reference\u002F5.components\u002F2.navigation\u002F6.duxt-page-nav","lucide:arrow-left-right","Précédent et suivant, bornés par la section.",{"title":489,"path":490,"stem":491,"children":492,"icon":494,"description":495,"subcategory":13},"Contrôles","\u002Freference\u002Fcomponents\u002Fcontrols","4.reference\u002F5.components\u002F3.controls\u002Findex",[493,496,501,506,512,517,523,528,534],{"title":489,"path":490,"stem":491,"icon":494,"description":495,"subcategory":13},"lucide:sliders-horizontal","Ce qu’actionne un lecteur — la recherche, les sélecteurs, la fiche des raccourcis et deux indicateurs.",{"title":497,"path":498,"stem":499,"icon":103,"description":500,"subcategory":13},"DuxtSearch","\u002Freference\u002Fcomponents\u002Fcontrols\u002Fduxt-search","4.reference\u002F5.components\u002F3.controls\u002F1.duxt-search","Rechercher chaque source active et entrelacer ses résultats classés localement.",{"title":502,"path":503,"stem":504,"icon":44,"description":505,"subcategory":13},"DuxtVersion","\u002Freference\u002Fcomponents\u002Fcontrols\u002Fduxt-version","4.reference\u002F5.components\u002F3.controls\u002F2.duxt-version","Le badge de version, et le sélecteur quand il y en a plusieurs.",{"title":507,"path":508,"stem":509,"icon":510,"description":511,"subcategory":13},"DuxtVersionBanner","\u002Freference\u002Fcomponents\u002Fcontrols\u002Fduxt-version-banner","4.reference\u002F5.components\u002F3.controls\u002F3.duxt-version-banner","lucide:triangle-alert","Le bandeau qui dit au lecteur que cette version n’est pas la version courante.",{"title":513,"path":514,"stem":515,"icon":109,"description":516,"subcategory":13},"DuxtLocale","\u002Freference\u002Fcomponents\u002Fcontrols\u002Fduxt-locale","4.reference\u002F5.components\u002F3.controls\u002F4.duxt-locale","Le sélecteur de langue.",{"title":518,"path":519,"stem":520,"icon":521,"description":522,"subcategory":13},"DuxtProgress","\u002Freference\u002Fcomponents\u002Fcontrols\u002Fduxt-progress","4.reference\u002F5.components\u002F3.controls\u002F5.duxt-progress","lucide:loader","Jusqu’où le lecteur est descendu dans la page.",{"title":524,"path":525,"stem":526,"icon":62,"description":527,"subcategory":13},"DuxtShortcuts","\u002Freference\u002Fcomponents\u002Fcontrols\u002Fduxt-shortcuts","4.reference\u002F5.components\u002F3.controls\u002F6.duxt-shortcuts","La fiche des raccourcis clavier, sur ?.",{"title":529,"path":530,"stem":531,"icon":532,"description":533,"subcategory":13},"DuxtSkipLink","\u002Freference\u002Fcomponents\u002Fcontrols\u002Fduxt-skip-link","4.reference\u002F5.components\u002F3.controls\u002F7.duxt-skip-link","lucide:skip-forward","Le premier élément focalisable de la page.",{"title":535,"path":536,"stem":537,"icon":62,"description":538,"subcategory":13},"DuxtShortcutsTrigger","\u002Freference\u002Fcomponents\u002Fcontrols\u002Fduxt-shortcuts-trigger","4.reference\u002F5.components\u002F3.controls\u002F8.duxt-shortcuts-trigger","Le bouton qui ouvre la liste des raccourcis.",{"title":540,"path":541,"stem":542,"children":543,"icon":545,"description":546,"subcategory":13},"Page","\u002Freference\u002Fcomponents\u002Fpage","4.reference\u002F5.components\u002F4.page\u002Findex",[544,547,553,559,564],{"title":540,"path":541,"stem":542,"icon":545,"description":546,"subcategory":13},"lucide:file-text","Les composants qui appartiennent à la page elle-même.",{"title":548,"path":549,"stem":550,"icon":551,"description":552,"subcategory":13},"DuxtPageInfo","\u002Freference\u002Fcomponents\u002Fpage\u002Fduxt-page-info","4.reference\u002F5.components\u002F4.page\u002F1.duxt-page-info","lucide:git-commit-horizontal","D’où vient la page : lien d’édition, dernière mise à jour, contributeurs.",{"title":554,"path":555,"stem":556,"icon":557,"description":558,"subcategory":13},"DuxtCopyPage","\u002Freference\u002Fcomponents\u002Fpage\u002Fduxt-copy-page","4.reference\u002F5.components\u002F4.page\u002F2.duxt-copy-page","lucide:clipboard-copy","Donnez cette page à un modèle, ou lisez sa source.",{"title":560,"path":561,"stem":562,"icon":169,"description":563,"subcategory":13},"DuxtPageFeedback","\u002Freference\u002Fcomponents\u002Fpage\u002Fduxt-page-feedback","4.reference\u002F5.components\u002F4.page\u002F3.duxt-page-feedback","« Cette page vous a-t-elle été utile ? » — un événement, et pas de backend.",{"title":565,"path":566,"stem":567,"icon":568,"description":569,"subcategory":13},"DuxtCodeBlock","\u002Freference\u002Fcomponents\u002Fpage\u002Fduxt-code-block","4.reference\u002F5.components\u002F4.page\u002F4.duxt-code-block","lucide:code","La carte autour d’un bloc de code.",{"title":571,"path":572,"stem":573,"children":574,"icon":576,"description":577,"subcategory":13},"Composables","\u002Freference\u002Fcomposables","4.reference\u002F6.composables\u002Findex",[575,578,612,641],{"title":571,"path":572,"stem":573,"icon":576,"description":577,"subcategory":13},"lucide:function-square","Les fonctions que la couche expose à vos propres composants, une page chacune.",{"title":579,"path":580,"stem":581,"children":582,"icon":56,"description":584,"subcategory":13},"Configuration et contenu","\u002Freference\u002Fcomposables\u002Fconfig-and-content","4.reference\u002F6.composables\u002F1.config-and-content\u002Findex",[583,585,590,596,601,607],{"title":579,"path":580,"stem":581,"icon":56,"description":584,"subcategory":13},"La configuration fusionnée, et quelle collection sert la page en cours de lecture.",{"title":586,"path":587,"stem":588,"icon":24,"description":589,"subcategory":13},"useDuxtConfig()","\u002Freference\u002Fcomposables\u002Fconfig-and-content\u002Fuse-duxt-config","4.reference\u002F6.composables\u002F1.config-and-content\u002F1.use-duxt-config","La configuration fusionnée, chaque champ de texte déjà résolu.",{"title":591,"path":592,"stem":593,"icon":594,"description":595,"subcategory":13},"useDuxtCollection()","\u002Freference\u002Fcomposables\u002Fconfig-and-content\u002Fuse-duxt-collection","4.reference\u002F6.composables\u002F1.config-and-content\u002F2.use-duxt-collection","lucide:library","Quelle collection sert cette route.",{"title":597,"path":598,"stem":599,"icon":406,"description":600,"subcategory":13},"useDuxtNavigation()","\u002Freference\u002Fcomposables\u002Fconfig-and-content\u002Fuse-duxt-navigation","4.reference\u002F6.composables\u002F1.config-and-content\u002F3.use-duxt-navigation","L’arbre de navigation de la collection qui sert cette route.",{"title":602,"path":603,"stem":604,"icon":605,"description":606,"subcategory":13},"useDuxtSection()","\u002Freference\u002Fcomposables\u002Fconfig-and-content\u002Fuse-duxt-section","4.reference\u002F6.composables\u002F1.config-and-content\u002F4.use-duxt-section","lucide:folder-open","La partie de la documentation dans laquelle se trouve cette page.",{"title":608,"path":609,"stem":610,"icon":475,"description":611,"subcategory":13},"useDuxtBreadcrumb()","\u002Freference\u002Fcomposables\u002Fconfig-and-content\u002Fuse-duxt-breadcrumb","4.reference\u002F6.composables\u002F1.config-and-content\u002F5.use-duxt-breadcrumb","Le fil qui descend de la section jusqu’à une page.",{"title":613,"path":614,"stem":615,"children":616,"icon":618,"description":619,"subcategory":13},"Chemins et versions","\u002Freference\u002Fcomposables\u002Fpaths-and-versions","4.reference\u002F6.composables\u002F2.paths-and-versions\u002Findex",[617,620,625,630,635],{"title":613,"path":614,"stem":615,"icon":618,"description":619,"subcategory":13},"lucide:route","Lire une URL, en écrire une en retour, et savoir quelle version est lue.",{"title":621,"path":622,"stem":623,"icon":321,"description":624,"subcategory":13},"useDuxtPath()","\u002Freference\u002Fcomposables\u002Fpaths-and-versions\u002Fuse-duxt-path","4.reference\u002F6.composables\u002F2.paths-and-versions\u002F1.use-duxt-path","Le chemin où se trouve la documentation, locale retirée.",{"title":626,"path":627,"stem":628,"icon":341,"description":629,"subcategory":13},"useDuxtLink()","\u002Freference\u002Fcomposables\u002Fpaths-and-versions\u002Fuse-duxt-link","4.reference\u002F6.composables\u002F2.paths-and-versions\u002F2.use-duxt-link","Un chemin de documentation, réécrit en lien.",{"title":631,"path":632,"stem":633,"icon":44,"description":634,"subcategory":13},"useDuxtVersion()","\u002Freference\u002Fcomposables\u002Fpaths-and-versions\u002Fuse-duxt-version","4.reference\u002F6.composables\u002F2.paths-and-versions\u002F3.use-duxt-version","Ce que montre le sélecteur, ce que dit la bannière, s’il faut indexer.",{"title":636,"path":637,"stem":638,"icon":639,"description":640,"subcategory":13},"useDuxtSiteUrl()","\u002Freference\u002Fcomposables\u002Fpaths-and-versions\u002Fuse-duxt-site-url","4.reference\u002F6.composables\u002F2.paths-and-versions\u002F4.use-duxt-site-url","lucide:globe","L’origine configurée, et les chemins rendus absolus.",{"title":642,"path":643,"stem":644,"children":645,"icon":118,"description":647,"subcategory":13},"Expérience de lecture","\u002Freference\u002Fcomposables\u002Freading","4.reference\u002F6.composables\u002F3.reading\u002Findex",[646,648,652,658,663,669,675,680,686,691],{"title":642,"path":643,"stem":644,"icon":118,"description":647,"subcategory":13},"La recherche, les titres, le focus, l’historique, et les choix que fait un lecteur.",{"title":649,"path":650,"stem":651,"icon":103,"description":500,"subcategory":13},"useDuxtSearch()","\u002Freference\u002Fcomposables\u002Freading\u002Fuse-duxt-search","4.reference\u002F6.composables\u002F3.reading\u002F1.use-duxt-search",{"title":653,"path":654,"stem":655,"icon":656,"description":657,"subcategory":13},"useFuzzySearch()","\u002Freference\u002Fcomposables\u002Freading\u002Fuse-fuzzy-search","4.reference\u002F6.composables\u002F3.reading\u002F2.use-fuzzy-search","lucide:spell-check","La tolérance aux fautes de frappe, à côté de l’index exact.",{"title":659,"path":660,"stem":661,"icon":347,"description":662,"subcategory":13},"useActiveHeading()","\u002Freference\u002Fcomposables\u002Freading\u002Fuse-active-heading","4.reference\u002F6.composables\u002F3.reading\u002F3.use-active-heading","Le titre actuellement en vue.",{"title":664,"path":665,"stem":666,"icon":667,"description":668,"subcategory":13},"useDuxtPageFocus()","\u002Freference\u002Fcomposables\u002Freading\u002Fuse-duxt-page-focus","4.reference\u002F6.composables\u002F3.reading\u002F4.use-duxt-page-focus","lucide:focus","Déplace le focus vers le titre après une navigation côté client.",{"title":670,"path":671,"stem":672,"icon":673,"description":674,"subcategory":13},"useRecentPages()","\u002Freference\u002Fcomposables\u002Freading\u002Fuse-recent-pages","4.reference\u002F6.composables\u002F3.reading\u002F5.use-recent-pages","lucide:history","Les pages ouvertes le plus récemment, jusqu’à la limite configurée.",{"title":676,"path":677,"stem":678,"icon":291,"description":679,"subcategory":13},"usePackageManager()","\u002Freference\u002Fcomposables\u002Freading\u002Fuse-package-manager","4.reference\u002F6.composables\u002F3.reading\u002F6.use-package-manager","Le gestionnaire de paquets qu’un lecteur a choisi.",{"title":681,"path":682,"stem":683,"icon":684,"description":685,"subcategory":13},"useDuxtToast()","\u002Freference\u002Fcomposables\u002Freading\u002Fuse-duxt-toast","4.reference\u002F6.composables\u002F3.reading\u002F7.use-duxt-toast","lucide:bell","Les notifications, enveloppées pour qu’aucun composant n’importe la bibliothèque.",{"title":687,"path":688,"stem":689,"icon":62,"description":690,"subcategory":13},"useDuxtShortcuts()","\u002Freference\u002Fcomposables\u002Freading\u002Fuse-duxt-shortcuts","4.reference\u002F6.composables\u002F3.reading\u002F8.use-duxt-shortcuts","Les touches que le thème écoute.",{"title":692,"path":693,"stem":694,"icon":181,"description":695,"subcategory":13},"useDuxtAnalytics()","\u002Freference\u002Fcomposables\u002Freading\u002Fuse-duxt-analytics","4.reference\u002F6.composables\u002F3.reading\u002F9.use-duxt-analytics","Rapporter une interaction de lecteur à la fonction de rappel propre au site, ou à personne.",{"title":697,"path":698,"stem":699,"children":700,"icon":618,"description":702,"subcategory":13},"Points de terminaison","\u002Freference\u002Fendpoints","4.reference\u002F7.endpoints\u002Findex",[701,703,708,714,719,724,729,735],{"title":697,"path":698,"stem":699,"icon":618,"description":702,"subcategory":13},"Tout ce que le site sert en dehors des pages, une page pour chacun.",{"title":704,"path":705,"stem":706,"icon":545,"description":707,"subcategory":13},"\u002Fllms.txt","\u002Freference\u002Fendpoints\u002Fllms-txt","4.reference\u002F7.endpoints\u002F1.llms-txt","La documentation en index Markdown, selon llmstxt.org.",{"title":709,"path":710,"stem":711,"icon":712,"description":713,"subcategory":13},"\u002Fllms-full.txt","\u002Freference\u002Fendpoints\u002Fllms-full-txt","4.reference\u002F7.endpoints\u002F2.llms-full-txt","lucide:file-stack","Une extension duxt avec les mêmes pages dans un fichier Markdown.",{"title":715,"path":716,"stem":717,"icon":239,"description":718,"subcategory":13},"\u003Cpage>.md","\u002Freference\u002Fendpoints\u002Fpage-markdown","4.reference\u002F7.endpoints\u002F3.page-markdown","La source de n’importe quelle page, à son URL suivie de .md.",{"title":720,"path":721,"stem":722,"icon":97,"description":723,"subcategory":13},"\u002Fmcp","\u002Freference\u002Fendpoints\u002Fmcp","4.reference\u002F7.endpoints\u002F4.mcp","Un serveur MCP sur le même contenu.",{"title":725,"path":726,"stem":727,"icon":103,"description":728,"subcategory":13},"\u002Fsitemap.xml et \u002Frobots.txt","\u002Freference\u002Fendpoints\u002Fsitemap-and-robots","4.reference\u002F7.endpoints\u002F5.sitemap-and-robots","Ce vers quoi un robot est dirigé, et ce dont on le tient à l’écart.",{"title":730,"path":731,"stem":732,"icon":733,"description":734,"subcategory":13},"\u002Frss.xml","\u002Freference\u002Fendpoints\u002Frss-xml","4.reference\u002F7.endpoints\u002F6.rss-xml","lucide:rss","Le flux, une fois qu’une section est nommée.",{"title":736,"path":737,"stem":738,"icon":739,"description":740,"subcategory":13},"\u002F_duxt\u002Fdevtools","\u002Freference\u002Fendpoints\u002Fdevtools","4.reference\u002F7.endpoints\u002F7.devtools","lucide:wrench","La route depuis laquelle le panneau Nuxt Devtools est servi. En développement seulement.",{"title":742,"path":743,"stem":744,"children":745,"icon":739,"description":747,"subcategory":13},"Devtools","\u002Freference\u002Fdevtools","4.reference\u002F8.devtools\u002Findex",[746,748,752,757,762,768,774,780,785,790,795],{"title":742,"path":743,"stem":744,"icon":739,"description":747,"subcategory":13},"Dix panneaux qui montrent ce que vos sources sont devenues. En développement seulement.",{"title":65,"path":749,"stem":750,"icon":594,"description":751,"subcategory":13},"\u002Freference\u002Fdevtools\u002Fsources","4.reference\u002F8.devtools\u002F1.sources","Ce que `duxt.sources` est devenu — une collection par source, version et langue.",{"title":753,"path":754,"stem":755,"icon":157,"description":756,"subcategory":13},"Redirections","\u002Freference\u002Fdevtools\u002Fredirects","4.reference\u002F8.devtools\u002F10.redirects","Chaque redirection que sert le serveur, et lesquelles la couche a écrites.",{"title":758,"path":759,"stem":760,"icon":618,"description":761,"subcategory":13},"Chemins","\u002Freference\u002Fdevtools\u002Fpaths","4.reference\u002F8.devtools\u002F2.paths","Collez une URL et voyez quelle source la revendique et ce qu’elle y trouve.",{"title":763,"path":764,"stem":765,"icon":766,"description":767,"subcategory":13},"Pages","\u002Freference\u002Fdevtools\u002Fpages","4.reference\u002F8.devtools\u002F3.pages","lucide:files","Chaque page de chaque collection, avec son frontmatter et ses métadonnées git.",{"title":769,"path":770,"stem":771,"icon":772,"description":773,"subcategory":13},"Versions","\u002Freference\u002Fdevtools\u002Fversions","4.reference\u002F8.devtools\u002F4.versions","lucide:columns-3","Quelle version — et quelle langue — porte quelle page.",{"title":775,"path":776,"stem":777,"icon":778,"description":779,"subcategory":13},"Vérifications","\u002Freference\u002Fdevtools\u002Fchecks","4.reference\u002F8.devtools\u002F5.checks","lucide:check-check","Le validateur du build, appliqué à ce que le site sert en ce moment.",{"title":781,"path":782,"stem":783,"icon":103,"description":784,"subcategory":13},"Recherche","\u002Freference\u002Fdevtools\u002Fsearch","4.reference\u002F8.devtools\u002F6.search","Ce que contient l’index de recherche, via la requête même que lance la boîte de dialogue.",{"title":786,"path":787,"stem":788,"icon":494,"description":789,"subcategory":13},"Config","\u002Freference\u002Fdevtools\u002Fconfig","4.reference\u002F8.devtools\u002F7.config","La configuration `duxt` fusionnée, et de quel côté de la fusion vient chaque valeur.",{"title":791,"path":792,"stem":793,"icon":109,"description":794,"subcategory":13},"i18n","\u002Freference\u002Fdevtools\u002Fi18n","4.reference\u002F8.devtools\u002F8.i18n","Clés de message par langue, face à la langue de base.",{"title":796,"path":797,"stem":798,"icon":799,"description":800,"subcategory":13},"Cache","\u002Freference\u002Fdevtools\u002Fcache","4.reference\u002F8.devtools\u002F9.cache","lucide:hard-drive","Le cache de téléchargement de Content, et un moyen d’en jeter une entrée.",{"title":802,"path":803,"stem":804,"children":805,"icon":262,"description":807,"subcategory":13},"Référence de l’API","\u002Freference\u002Fopenapi","4.reference\u002F9.openapi\u002Findex",[806,808,812,816,821],{"title":802,"path":803,"stem":804,"icon":262,"description":807,"subcategory":13},"Un document OpenAPI, publié en pages de référence avec un client qui envoie de vraies requêtes.",{"title":205,"path":809,"stem":810,"icon":239,"description":811,"subcategory":13},"\u002Freference\u002Fopenapi\u002Fsection","4.reference\u002F9.openapi\u002F1.section","Le type de section `openapi` — où vit le document, et ce qu’il devient.",{"title":414,"path":813,"stem":814,"icon":226,"description":815,"subcategory":13},"\u002Freference\u002Fopenapi\u002Fcomponents","4.reference\u002F9.openapi\u002F2.components","Les trois composants MDC dont est faite une page de référence générée.",{"title":817,"path":818,"stem":819,"icon":234,"description":820,"subcategory":13},"Le client d’essai","\u002Freference\u002Fopenapi\u002Ftry-it","4.reference\u002F9.openapi\u002F3.try-it","Une vraie requête, envoyée par le navigateur du lecteur lui-même.",{"title":822,"path":823,"stem":824,"icon":568,"description":825,"subcategory":13},"Échantillons de requête","\u002Freference\u002Fopenapi\u002Frequest-samples","4.reference\u002F9.openapi\u002F4.request-samples","La même requête dans douze clients, et comment ajouter le vôtre.",{"title":827,"path":828,"stem":829,"children":830,"description":833},"Extensions","\u002Fadd-ons","5.add-ons",[831,834,839],{"title":827,"path":828,"stem":832,"icon":315,"description":833,"subcategory":13},"5.add-ons\u002Findex","Des layers compagnons qui étendent un site duxt — chacun est un paquet à part, ajouté par une entrée de plus dans extends.",{"title":835,"path":836,"stem":837,"icon":103,"description":838,"subcategory":13},"Typesense","\u002Fadd-ons\u002Ftypesense","5.add-ons\u002F1.typesense","Consommez l’unique hook de build de duxt dans une collection Typesense — chaque source, version et langue, mise à jour par un id stable.",{"title":840,"path":841,"stem":842,"icon":843,"description":844,"subcategory":13},"Meilisearch","\u002Fadd-ons\u002Fmeilisearch","5.add-ons\u002F2.meilisearch","simple-icons:meilisearch","Ajouter la couche complémentaire officielle pour une indexation atomique à la compilation et une recherche facultative dans le navigateur.",{"title":846,"path":847,"stem":848,"children":849,"icon":851,"description":852,"subcategory":13},"Crédits","\u002Fcredits","6.credits\u002Findex",[850],{"title":846,"path":847,"stem":848,"icon":851,"description":852,"subcategory":13},"lucide:heart","Ce sur quoi duxt est construit, et ce d’après quoi il l’a été.",{"title":854,"path":855,"stem":856,"children":857,"description":861},"Conventions","\u002Fconventions","7.conventions",[858,862,868,873],{"title":854,"path":855,"stem":859,"icon":860,"description":861,"subcategory":13},"7.conventions\u002Findex","lucide:ruler","Règles propres au projet — celles qu'on ne peut pas déduire du code.",{"title":863,"path":864,"stem":865,"icon":866,"description":867,"subcategory":13},"Identité visuelle","\u002Fconventions\u002Fbranding","7.conventions\u002F1.branding","lucide:shapes","La marque [d]uxt — où sert chaque ressource, pourquoi les crochets de l'icône sont redessinés, et quelles couleurs sont fixes.",{"title":869,"path":870,"stem":871,"icon":353,"description":872,"subcategory":13},"Icônes","\u002Fconventions\u002Ficons","7.conventions\u002F2.icons","Quatre jeux d'icônes, et la seule question qui décide lequel dessine une marque.",{"title":874,"path":875,"stem":876,"icon":91,"description":877,"subcategory":13},"Sécurité des dépendances","\u002Fconventions\u002Fdependency-security","7.conventions\u002F3.dependency-security","Examiner les avis sans masquer les chemins concernés.",{"title":879,"path":880,"stem":881,"children":882,"description":886},"Décisions d’architecture","\u002Fadr","99.adr",[883,887,892,897,902,907,912,917,922,927,932,937],{"title":879,"path":880,"stem":884,"icon":885,"description":886,"subcategory":13},"99.adr\u002Findex","lucide:gavel","Le journal des décisions — chaque décision d’architecture consignée pour duxt.",{"title":888,"path":889,"stem":890,"icon":13,"description":891,"subcategory":13},"Construire duxt comme une couche portant un module","\u002Fadr\u002F0001-build-duxt-as-a-layer-carrying-a-module","99.adr\u002F0001-build-duxt-as-a-layer-carrying-a-module","Distribuer le thème comme une couche Nuxt dont la racine est le paquet, plutôt que comme un modèle de départ.",{"title":893,"path":894,"stem":895,"icon":13,"description":896,"subcategory":13},"Générer les collections à partir d’une seule liste de sources","\u002Fadr\u002F0002-generate-the-collections-from-one-source-list","99.adr\u002F0002-generate-the-collections-from-one-source-list","Calculer les collections Content à partir d’une liste de sources compacte au chargement de la configuration, au lieu de les faire déclarer par les consommateurs.",{"title":898,"path":899,"stem":900,"icon":13,"description":901,"subcategory":13},"Décider les préfixes d’URL à la compilation","\u002Fadr\u002F0003-decide-the-url-prefixes-at-build-time","99.adr\u002F0003-decide-the-url-prefixes-at-build-time","L’apparition d’un segment de dépôt ou de version est tranchée par la liste des sources avant la première requête, jamais par requête.",{"title":903,"path":904,"stem":905,"icon":13,"description":906,"subcategory":13},"Rendre les composants Markdown avec MDC","\u002Fadr\u002F0004-render-markdown-components-with-mdc","99.adr\u002F0004-render-markdown-components-with-mdc","Utiliser la syntaxe MDC propre à Content pour les composants dans le Markdown plutôt que d’adopter MDX.",{"title":908,"path":909,"stem":910,"icon":13,"description":911,"subcategory":13},"Livrer la couche sans liens propres à un propriétaire","\u002Fadr\u002F0005-ship-the-layer-without-owner-specific-links","99.adr\u002F0005-ship-the-layer-without-owner-specific-links","Toute valeur par défaut qui nommerait un projet précis — dépôt, gestionnaire de tickets, communauté, mentions légales — est livrée vide.",{"title":913,"path":914,"stem":915,"icon":13,"description":916,"subcategory":13},"Recompiler de façon planifiée plutôt que rafraîchir à l’exécution","\u002Fadr\u002F0006-rebuild-on-a-schedule-rather-than-refresh-at-runtime","99.adr\u002F0006-rebuild-on-a-schedule-rather-than-refresh-at-runtime","Un site qui lit un autre dépôt en récupère les changements quand il compile, et aucun rafraîchissement à l’exécution n’est proposé.",{"title":918,"path":919,"stem":920,"icon":13,"description":921,"subcategory":13},"Servir les traductions comme des collections à part","\u002Fadr\u002F0007-serve-translations-as-collections-of-their-own","99.adr\u002F0007-serve-translations-as-collections-of-their-own","Ajouter une dimension de locale à une source plutôt qu’un segment de locale au chemin de contenu.",{"title":923,"path":924,"stem":925,"icon":13,"description":926,"subcategory":13},"Bâtir le thème sur des composants shadcn-vue possédés","\u002Fadr\u002F0008-build-the-theme-on-owned-shadcn-vue-components","99.adr\u002F0008-build-the-theme-on-owned-shadcn-vue-components","La couche détient le code source de ses composants d'interface plutôt que de les importer d'une bibliothèque de composants ou d'un thème de documentation tout fait.",{"title":928,"path":929,"stem":930,"icon":13,"description":931,"subcategory":13},"Prendre le socle SEO dans le bundle Nuxt SEO","\u002Fadr\u002F0009-take-the-seo-stack-from-the-nuxt-seo-bundle","99.adr\u002F0009-take-the-seo-stack-from-the-nuxt-seo-bundle","La couche installe @nuxtjs\u002Fseo et lui confie les balises de head et les données structurées qu'elle écrivait à la main, ne gardant que les règles qui dépendent des versions et des traductions.",{"title":933,"path":934,"stem":935,"icon":13,"description":936,"subcategory":13},"Conserver la recherche par collection de Content comme défaut","\u002Fadr\u002F0010-keep-contents-per-collection-search-as-the-default","99.adr\u002F0010-keep-contents-per-collection-search-as-the-default","Un index unique sur toutes les sources a été mesuré face à la recherche à un index par collection de Content et n'est pas le défaut de la couche ; le hook de build en fait plutôt une couche fournisseur.",{"title":938,"path":939,"stem":940,"icon":13,"description":941,"subcategory":13},"Héberger les couches fournisseurs dans un monorepo Turborepo","\u002Fadr\u002F0011-host-the-provider-layers-in-a-turborepo-monorepo","99.adr\u002F0011-host-the-provider-layers-in-a-turborepo-monorepo","La couche passe dans packages\u002Fduxt et le site dans apps\u002Fwww, chaque paquet publié se versionne et s'étiquette seul en \u003Cname>@vX.Y.Z, et la décision de dépôts dédiés consignée dans",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":946},0,24,false,"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"10\"\u002F>\u003Cpath d=\"m16.24 7.76l-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z\"\u002F>\u003C\u002Fg>",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":948},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z\"\u002F>\u003Cpath d=\"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12\"\u002F>\u003Cpath d=\"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17\"\u002F>\u003C\u002Fg>",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":950},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M10 8h.01M12 12h.01M14 8h.01M16 12h.01M18 8h.01M6 8h.01M7 16h10m-9-4h.01\"\u002F>\u003Crect width=\"20\" height=\"16\" x=\"2\" y=\"4\" rx=\"2\"\u002F>\u003C\u002Fg>",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":952},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M15 6a9 9 0 0 0-9 9V3\"\u002F>\u003Ccircle cx=\"18\" cy=\"6\" r=\"3\"\u002F>\u003Ccircle cx=\"6\" cy=\"18\" r=\"3\"\u002F>\u003C\u002Fg>",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":954},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\"\u002F>\u003Cpath d=\"m9 12l2 2l4-4\"\u002F>\u003C\u002Fg>",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":956},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M12 8V4H8\"\u002F>\u003Crect width=\"16\" height=\"12\" x=\"4\" y=\"8\" rx=\"2\"\u002F>\u003Cpath d=\"M2 14h2m16 0h2m-7-1v2m-6-2v2\"\u002F>\u003C\u002Fg>",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":958},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"m21 21l-4.34-4.34\"\u002F>\u003Ccircle cx=\"11\" cy=\"11\" r=\"8\"\u002F>\u003C\u002Fg>",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":960},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m5 8l6 6m-7 0l6-6l2-3M2 5h12M7 2h1m14 20l-5-10l-5 10m2-4h6\"\u002F>",{"page":962,"from":1275,"asked":1276},{"id":963,"title":59,"body":964,"breadcrumb":1268,"category":13,"compare":13,"contributors":13,"copyPage":1268,"date":13,"description":63,"extension":1269,"feedback":1268,"fullWidth":945,"icon":62,"lastUpdated":13,"layout":13,"meta":1270,"navigation":1268,"pageInfo":1268,"page_title":13,"path":60,"prevNext":1268,"rawbody":1271,"redirectFrom":13,"release":13,"search":1268,"seo":1272,"sitemap":1273,"stem":61,"subcategory":13,"toc":13,"__hash__":1274},"docs_fr\u002F2.concepts\u002F12.keyboard-shortcuts.md",{"type":965,"value":966,"toc":1258},"minimark",[967,971,976,1066,1079,1087,1091,1094,1145,1149,1152,1163,1170,1182,1186,1203,1223,1234,1238],[968,969,970],"p",{},"Le thème lie quatre touches. Cette page dit lesquelles, quand elles écoutent, et\noù une lectrice qui n'a jamais lu cette page l'apprend — car un raccourci que\npersonne ne peut découvrir est un raccourci que personne n'a.",[972,973,975],"h2",{"id":974},"les-liaisons","Les liaisons",[977,978,979,996],"table",{},[980,981,982],"thead",{},[983,984,985,990,993],"tr",{},[986,987,989],"th",{"align":988},"left","Touches",[986,991,992],{"align":988},"Fait",[986,994,995],{"align":988},"Écoute tant que",[997,998,999,1023,1036,1052],"tbody",{},[983,1000,1001,1017,1020],{},[1002,1003,1004,1008,1011,1012,1015],"td",{"align":988},[1005,1006,1007],"kbd",{},"⌘",[1005,1009,1010],{},"K"," · ",[1005,1013,1014],{},"Ctrl",[1005,1016,1010],{},[1002,1018,1019],{"align":988},"Ouvre la recherche, et la referme",[1002,1021,1022],{"align":988},"Partout sur la page, y compris sur un lien ou un bouton ayant le focus",[983,1024,1025,1030,1033],{},[1002,1026,1027],{"align":988},[1005,1028,1029],{},"?",[1002,1031,1032],{"align":988},"Ouvre la liste des raccourcis",[1002,1034,1035],{"align":988},"Le contenu propre de la page a le focus",[983,1037,1038,1043,1050],{},[1002,1039,1040],{"align":988},[1005,1041,1042],{},"[",[1002,1044,1045,1046],{"align":988},"La page précédente ",[1047,1048,1049],"strong",{},"de cette section",[1002,1051,1035],{"align":988},[983,1053,1054,1059,1064],{},[1002,1055,1056],{"align":988},[1005,1057,1058],{},"]",[1002,1060,1061,1062],{"align":988},"La page suivante ",[1047,1063,1049],{},[1002,1065,1035],{"align":988},[968,1067,1068,1069,1072,1073,1075,1076,1078],{},"Le modificateur suit le clavier de la lectrice, pas celui de l'auteur : ",[1070,1071,1007],"code",{}," sur\nun clavier Apple, ",[1070,1074,1014],{}," partout ailleurs. Il est résolu dès qu'un navigateur est\nlà pour répondre : une page prérendue livre donc le ",[1070,1077,1014],{}," le plus sûr et\nl'échange à l'arrivée.",[968,1080,1081,1083,1084,1086],{},[1070,1082,1042],{}," et ",[1070,1085,1058],{}," restent dans la section lue. La dernière page d'une section n'offre\naucune page suivante vers une autre — changer de section est le rôle de la\nrangée des sections, et une touche nommée « page suivante » qui quitte le sujet\nn'est pas la même touche.",[972,1088,1090],{"id":1089},"où-la-lectrice-lapprend","Où la lectrice l'apprend",[968,1092,1093],{},"Quatre endroits, et tous les quatre puisent dans la même définition : aucun ne\npeut donc en venir à annoncer une touche que la couche ne lie plus.",[1095,1096,1097,1112,1123,1136],"ul",{},[1098,1099,1100,1103,1104,1107,1108,1111],"li",{},[1047,1101,1102],{},"Le bouton de recherche"," porte son propre accord — ",[1070,1105,1106],{},"⌘K"," ou ",[1070,1109,1110],{},"Ctrl+K"," — dans la\ncapsule à sa droite.",[1098,1113,1114,1117,1118,1083,1120,1122],{},[1047,1115,1116],{},"Les liens vers la page précédente et la suivante"," au pied d'une page portent\n",[1070,1119,1042],{},[1070,1121,1058],{},". C'étaient les touches que rien ne mentionnait : il fallait ouvrir\nla liste pour apprendre que les deux liens déjà sous les yeux avaient des\ntouches.",[1098,1124,1125,1128,1129,1132,1133,1135],{},[1047,1126,1127],{},"Le bouton clavier"," à côté de la recherche ouvre la liste au pointeur, sur\nchaque page à partir du breakpoint ",[1070,1130,1131],{},"lg"," ; en dessous, l'en-tête le masque, car\nun écran tactile n'a pas de touches à lister. C'est la réponse à la part\ncirculaire du problème : ",[1070,1134,1029],{}," ouvre la liste des touches, et il faut le savoir\npour la taper.",[1098,1137,1138,1141,1142,1144],{},[1047,1139,1140],{},"La liste elle-même"," énumère chaque liaison vivante avec ses touches, sur ",[1070,1143,1029],{},"\nou depuis ce bouton.",[972,1146,1148],{"id":1147},"quand-une-touche-se-retire","Quand une touche se retire",[968,1150,1151],{},"Un raccourci global d'un seul caractère se déclenche sous une lectrice qui ne l'a\njamais demandé : les touches sans modificateur sont donc gardées, pas seulement\nliées. Rien ne se déclenche :",[1095,1153,1154,1157,1160],{},[1098,1155,1156],{},"dès que quelque chose de plus proche de la touche l'a déjà traitée ;",[1098,1158,1159],{},"pendant que la lectrice saisit du texte — un champ, un textarea, un select, une\nzone éditable ;",[1098,1161,1162],{},"n'importe où dans une boîte de dialogue, un menu, une listbox, une combobox,\nune grille ou un arbre, qui répondent eux-mêmes aux frappes.",[968,1164,1165,1166,1169],{},"Les touches sans modificateur se retirent d'un cran de plus : elles ne se\ndéclenchent que tant que le contenu propre de la page a le focus, jamais sur un\nlien, un bouton ou un onglet. ",[1070,1167,1168],{},"⌘\u002FCtrl+K"," fait exception, car aucun contrôle ne\nveut cet accord.",[968,1171,1172,1173,1176,1177,1083,1179,1181],{},"Une cible de focus en ",[1070,1174,1175],{},"tabindex=\"-1\""," compte comme du contenu, délibérément :\nc'est là que le focus se gare après une navigation, et une lectrice qui vient\nd'arriver sur une page est exactement celle à qui ",[1070,1178,1042],{},[1070,1180,1058],{}," s'adressent.",[972,1183,1185],{"id":1184},"éteindre-les-touches-nues","Éteindre les touches nues",[968,1187,1188,1191,1192,1194,1195,1083,1197,1199,1200,1202],{},[1070,1189,1190],{},"shortcuts.singleCharacter: false"," délie ",[1070,1193,1029],{},", ",[1070,1196,1042],{},[1070,1198,1058],{}," et laisse ",[1070,1201,1168],{},".\nL'accès par contacteur, le contrôle vocal et la dictée émettent des caractères\nnus à longueur de temps, et une page qui s'en va sous l'un d'eux n'en montre\naucune cause ; aucune méthode de saisie ne produit l'accord modifié par accident.",[1204,1205,1208],"callout",{"title":1206,"type":1207},"Cela délie aussi la touche d'aide","warning",[968,1209,1210,1212,1213,1215,1216,1219,1220,1222],{},[1070,1211,1029],{}," est un caractère nu comme les autres : un site qui pose cette valeur n'a plus\naucune touche pour ouvrir la liste des raccourcis. Le bouton clavier de l'en-tête\nest alors la seule entrée. En dessous de ",[1070,1214,1131],{},", l'en-tête le masque — un écran\ntactile n'a pas de touches à lister — en lui passant ",[1070,1217,1218],{},"hidden lg:inline-flex","\ndepuis ",[1070,1221,430],{}," ; le composant lui-même ne porte aucune classe responsive.\nRetirez-le d'un en-tête surchargé, et la liste devient inaccessible.",[968,1224,1225,1226,1233],{},"La politique est un booléen plutôt qu'une table de liaisons, et c'est délibéré :\nvoir ",[1227,1228,1229,1232],"a",{"href":193},[1070,1230,1231],{},"shortcuts"," dans la référence de configuration",".",[972,1235,1237],{"id":1236},"surcharger-tout-cela","Surcharger tout cela",[968,1239,1240,1241,1245,1246,1250,1251,1255,1256,1233],{},"La liste, les gardes et le dessin sont un seul module —\n",[1227,1242,1243],{"href":688},[1070,1244,687],{},". Les\ndeux composants autour sont\n",[1227,1247,1248],{"href":525},[1070,1249,524],{},", la liste, et\n",[1227,1252,1253],{"href":536},[1070,1254,535],{},",\nle bouton qui l'ouvre. Les deux vous appartiennent par la voie habituelle ; voir\n",[1227,1257,149],{"href":150},{"title":1259,"searchDepth":1260,"depth":1261,"links":1262},"",2,5,[1263,1264,1265,1266,1267],{"id":974,"depth":1260,"text":975},{"id":1089,"depth":1260,"text":1090},{"id":1147,"depth":1260,"text":1148},{"id":1184,"depth":1260,"text":1185},{"id":1236,"depth":1260,"text":1237},true,"md",{},"---\ntitle: Raccourcis clavier\ndescription: Les quatre touches que le thème lie, où chacune s'applique, et où la lectrice l'apprend.\nicon: lucide:keyboard\n---\n\nLe thème lie quatre touches. Cette page dit lesquelles, quand elles écoutent, et\noù une lectrice qui n'a jamais lu cette page l'apprend — car un raccourci que\npersonne ne peut découvrir est un raccourci que personne n'a.\n\n## Les liaisons\n\n| Touches                                                 | Fait                                          | Écoute tant que                                            |\n| :------------------------------------------------------ | :-------------------------------------------- | :------------------------------------------------------------ |\n| \u003Ckbd>⌘\u003C\u002Fkbd>\u003Ckbd>K\u003C\u002Fkbd> · \u003Ckbd>Ctrl\u003C\u002Fkbd>\u003Ckbd>K\u003C\u002Fkbd> | Ouvre la recherche, et la referme             | Partout sur la page, y compris sur un lien ou un bouton ayant le focus |\n| \u003Ckbd>?\u003C\u002Fkbd>                                            | Ouvre la liste des raccourcis                 | Le contenu propre de la page a le focus                        |\n| \u003Ckbd>[\u003C\u002Fkbd>                                            | La page précédente **de cette section**       | Le contenu propre de la page a le focus                        |\n| \u003Ckbd>]\u003C\u002Fkbd>                                            | La page suivante **de cette section**         | Le contenu propre de la page a le focus                        |\n\nLe modificateur suit le clavier de la lectrice, pas celui de l'auteur : `⌘` sur\nun clavier Apple, `Ctrl` partout ailleurs. Il est résolu dès qu'un navigateur est\nlà pour répondre : une page prérendue livre donc le `Ctrl` le plus sûr et\nl'échange à l'arrivée.\n\n`[` et `]` restent dans la section lue. La dernière page d'une section n'offre\naucune page suivante vers une autre — changer de section est le rôle de la\nrangée des sections, et une touche nommée « page suivante » qui quitte le sujet\nn'est pas la même touche.\n\n## Où la lectrice l'apprend\n\nQuatre endroits, et tous les quatre puisent dans la même définition : aucun ne\npeut donc en venir à annoncer une touche que la couche ne lie plus.\n\n- **Le bouton de recherche** porte son propre accord — `⌘K` ou `Ctrl+K` — dans la\n  capsule à sa droite.\n- **Les liens vers la page précédente et la suivante** au pied d'une page portent\n  `[` et `]`. C'étaient les touches que rien ne mentionnait : il fallait ouvrir\n  la liste pour apprendre que les deux liens déjà sous les yeux avaient des\n  touches.\n- **Le bouton clavier** à côté de la recherche ouvre la liste au pointeur, sur\n  chaque page à partir du breakpoint `lg` ; en dessous, l'en-tête le masque, car\n  un écran tactile n'a pas de touches à lister. C'est la réponse à la part\n  circulaire du problème : `?` ouvre la liste des touches, et il faut le savoir\n  pour la taper.\n- **La liste elle-même** énumère chaque liaison vivante avec ses touches, sur `?`\n  ou depuis ce bouton.\n\n## Quand une touche se retire\n\nUn raccourci global d'un seul caractère se déclenche sous une lectrice qui ne l'a\njamais demandé : les touches sans modificateur sont donc gardées, pas seulement\nliées. Rien ne se déclenche :\n\n- dès que quelque chose de plus proche de la touche l'a déjà traitée ;\n- pendant que la lectrice saisit du texte — un champ, un textarea, un select, une\n  zone éditable ;\n- n'importe où dans une boîte de dialogue, un menu, une listbox, une combobox,\n  une grille ou un arbre, qui répondent eux-mêmes aux frappes.\n\nLes touches sans modificateur se retirent d'un cran de plus : elles ne se\ndéclenchent que tant que le contenu propre de la page a le focus, jamais sur un\nlien, un bouton ou un onglet. `⌘\u002FCtrl+K` fait exception, car aucun contrôle ne\nveut cet accord.\n\nUne cible de focus en `tabindex=\"-1\"` compte comme du contenu, délibérément :\nc'est là que le focus se gare après une navigation, et une lectrice qui vient\nd'arriver sur une page est exactement celle à qui `[` et `]` s'adressent.\n\n## Éteindre les touches nues\n\n`shortcuts.singleCharacter: false` délie `?`, `[` et `]` et laisse `⌘\u002FCtrl+K`.\nL'accès par contacteur, le contrôle vocal et la dictée émettent des caractères\nnus à longueur de temps, et une page qui s'en va sous l'un d'eux n'en montre\naucune cause ; aucune méthode de saisie ne produit l'accord modifié par accident.\n\n::callout{type=\"warning\" title=\"Cela délie aussi la touche d'aide\"}\n`?` est un caractère nu comme les autres : un site qui pose cette valeur n'a plus\naucune touche pour ouvrir la liste des raccourcis. Le bouton clavier de l'en-tête\nest alors la seule entrée. En dessous de `lg`, l'en-tête le masque — un écran\ntactile n'a pas de touches à lister — en lui passant `hidden lg:inline-flex`\ndepuis `DuxtHeader` ; le composant lui-même ne porte aucune classe responsive.\nRetirez-le d'un en-tête surchargé, et la liste devient inaccessible.\n::\n\nLa politique est un booléen plutôt qu'une table de liaisons, et c'est délibéré :\nvoir [`shortcuts` dans la référence de configuration](\u002Freference\u002Fconfiguration).\n\n## Surcharger tout cela\n\nLa liste, les gardes et le dessin sont un seul module —\n[`useDuxtShortcuts()`](\u002Freference\u002Fcomposables\u002Freading\u002Fuse-duxt-shortcuts). Les\ndeux composants autour sont\n[`DuxtShortcuts`](\u002Freference\u002Fcomponents\u002Fcontrols\u002Fduxt-shortcuts), la liste, et\n[`DuxtShortcutsTrigger`](\u002Freference\u002Fcomponents\u002Fcontrols\u002Fduxt-shortcuts-trigger),\nle bouton qui l'ouvre. Les deux vous appartiennent par la voie habituelle ; voir\n[Surcharger le thème](\u002Fguides\u002Foverride-the-theme).\n",{"title":59,"description":63},{"loc":60},"NhOrVcrFXCqc-XRzI_Zu4szUBTCgSS6BnTBtKqyGy1w","fr","fr-FR",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":1278},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M12 22a1 1 0 0 1 0-20a10 9 0 0 1 10 9a5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z\"\u002F>\u003Ccircle cx=\"13.5\" cy=\"6.5\" r=\".5\" fill=\"currentColor\"\u002F>\u003Ccircle cx=\"17.5\" cy=\"10.5\" r=\".5\" fill=\"currentColor\"\u002F>\u003Ccircle cx=\"6.5\" cy=\"12.5\" r=\".5\" fill=\"currentColor\"\u002F>\u003Ccircle cx=\"8.5\" cy=\"7.5\" r=\".5\" fill=\"currentColor\"\u002F>\u003C\u002Fg>",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":1280},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"18\" cy=\"18\" r=\"3\"\u002F>\u003Ccircle cx=\"6\" cy=\"6\" r=\"3\"\u002F>\u003Cpath d=\"M13 6h3a2 2 0 0 1 2 2v7m-7 3H8a2 2 0 0 1-2-2V9\"\u002F>\u003C\u002Fg>",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":1282},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09\"\u002F>\u003Cpath d=\"M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z\"\u002F>\u003Cpath d=\"M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05\"\u002F>\u003C\u002Fg>",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":1284},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 5v16m8.001-2A2 2 0 0 0 22 17V5a2 2 0 0 0-1.999-2L16 3.002A5 5 0 0 0 12 5a5 5 0 0 0-4-2H4a2 2 0 0 0-2 2v12a2 2 0 0 0 1.999 2H8a5 5 0 0 1 4 2a5 5 0 0 1 4-2z\"\u002F>",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":1286},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M3 5h.01M3 12h.01M3 19h.01M8 5h13M8 12h13M8 19h13\"\u002F>",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":1288},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M15.39 4.39a1 1 0 0 0 1.68-.474a2.5 2.5 0 1 1 3.014 3.015a1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474a2.5 2.5 0 1 0-3.014 3.015a1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474a2.5 2.5 0 1 1-3.014-3.015a1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474a2.5 2.5 0 1 0 3.014-3.015a1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z\"\u002F>",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":1290},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M21.3 15.3a2.4 2.4 0 0 1 0 3.4l-2.6 2.6a2.4 2.4 0 0 1-3.4 0L2.7 8.7a2.41 2.41 0 0 1 0-3.4l2.6-2.6a2.41 2.41 0 0 1 3.4 0Zm-6.8-2.8l2-2m-5-1l2-2m-5-1l2-2m7 11l2-2\"\u002F>",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":1292},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m14 13l-8.381 8.38a1 1 0 0 1-3.001-3l8.384-8.381M16 16l6-6m-.5.5l-8-8M8 8l6-6M8.5 7.5l8 8\"\u002F>",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":1294},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\"\u002F>\u003Cpath d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"\u002F>\u003C\u002Fg>",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":1296},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m6 9l6 6l6-6\"\u002F>",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":1298},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M15 5.88L14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88M7 10v12\"\u002F>",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":1300},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 18.12L10 14H4.17a2 2 0 0 1-1.92-2.56l2.33-8A2 2 0 0 1 6.5 2H20a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.76a2 2 0 0 0-1.79 1.11L12 22a3.13 3.13 0 0 1-3-3.88M17 14V2\"\u002F>",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":1302},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.12 2.12 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.12 2.12 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.12 2.12 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.12 2.12 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.12 2.12 0 0 0 1.597-1.16z\"\u002F>",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":1304},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"10\"\u002F>\u003Cpath d=\"M12 8v4m0 4h.01\"\u002F>\u003C\u002Fg>",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":1306},"\u003Cpath fill=\"currentColor\" d=\"M20.317 4.37a19.8 19.8 0 0 0-4.885-1.515a.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.3 18.3 0 0 0-5.487 0a13 13 0 0 0-.617-1.25a.08.08 0 0 0-.079-.037A19.7 19.7 0 0 0 3.677 4.37a.1.1 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.08.08 0 0 0 .031.057a19.9 19.9 0 0 0 5.993 3.03a.08.08 0 0 0 .084-.028a14 14 0 0 0 1.226-1.994a.076.076 0 0 0-.041-.106a13 13 0 0 1-1.872-.892a.077.077 0 0 1-.008-.128a10 10 0 0 0 .372-.292a.07.07 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.07.07 0 0 1 .078.01q.181.149.373.292a.077.077 0 0 1-.006.127a12.3 12.3 0 0 1-1.873.892a.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.08.08 0 0 0 .084.028a19.8 19.8 0 0 0 6.002-3.03a.08.08 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.06.06 0 0 0-.031-.03M8.02 15.33c-1.182 0-2.157-1.085-2.157-2.419c0-1.333.956-2.419 2.157-2.419c1.21 0 2.176 1.096 2.157 2.42c0 1.333-.956 2.418-2.157 2.418m7.975 0c-1.183 0-2.157-1.085-2.157-2.419c0-1.333.955-2.419 2.157-2.419c1.21 0 2.176 1.096 2.157 2.42c0 1.333-.946 2.418-2.157 2.418\"\u002F>",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":1308},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 5v16m4-8h2m-2-4h2m2.001 10A2 2 0 0 0 22 17V5a2 2 0 0 0-1.999-2L16 3.002A5 5 0 0 0 12 5a5 5 0 0 0-4-2H4a2 2 0 0 0-2 2v12a2 2 0 0 0 1.999 2H8a5 5 0 0 1 4 2a5 5 0 0 1 4-2zM6 13h2M6 9h2\"\u002F>",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":1310},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M7 7h10v10M7 17L17 7\"\u002F>",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":1312,"hidden":1268},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4\"\u002F>\u003Cpath d=\"M14 2v4a2 2 0 0 0 2 2h4M5 12l-3 3l3 3m4 0l3-3l-3-3\"\u002F>\u003C\u002Fg>",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":1314},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m21.73 18l-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3M12 9v4m0 4h.01\"\u002F>",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":1316},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m12 19l-7-7l7-7m7 7H5\"\u002F>",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":1318},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 12h14m-7-7l7 7l-7 7\"\u002F>",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":1320},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m9 18l6-6l-6-6\"\u002F>",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":1322},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 5h16M4 12h16M4 19h16\"\u002F>",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":1324},"\u003Cpath fill=\"currentColor\" d=\"M12 .297c-6.63 0-12 5.373-12 12c0 5.303 3.438 9.8 8.205 11.385c.6.113.82-.258.82-.577c0-.285-.01-1.04-.015-2.04c-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729c1.205.084 1.838 1.236 1.838 1.236c1.07 1.835 2.809 1.305 3.495.998c.108-.776.417-1.305.76-1.605c-2.665-.3-5.466-1.332-5.466-5.93c0-1.31.465-2.38 1.235-3.22c-.135-.303-.54-1.523.105-3.176c0 0 1.005-.322 3.3 1.23c.96-.267 1.98-.399 3-.405c1.02.006 2.04.138 3 .405c2.28-1.552 3.285-1.23 3.285-1.23c.645 1.653.24 2.873.12 3.176c.765.84 1.23 1.91 1.23 3.22c0 4.61-2.805 5.625-5.475 5.92c.42.36.81 1.096.81 2.22c0 1.606-.015 2.896-.015 3.286c0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\"\u002F>",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":1326},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401\"\u002F>",[1328,1329,1330],"\u002Fv0.3.4\u002Fconcepts\u002Fkeyboard-shortcuts","\u002Fv0.2.0\u002Fconcepts\u002Fkeyboard-shortcuts","\u002Fv0.1.0\u002Fconcepts\u002Fkeyboard-shortcuts",{"left":943,"top":943,"width":1332,"height":1333,"rotate":943,"vFlip":945,"hFlip":945,"body":1334},640,480,"\u003Cpath fill=\"#000091\" d=\"M0 0h213.3v480H0z\"\u002F>\u003Cpath fill=\"#fff\" d=\"M213.3 0h213.4v480H213.3z\"\u002F>\u003Cpath fill=\"#e1000f\" d=\"M426.7 0H640v480H426.7z\"\u002F>",1792683353147]