[{"data":1,"prerenderedAt":1820},["ShallowReactive",2],{"duxt-navigation-docs-docs_de":3,"i-lucide:book-open":942,"i-lucide:languages":947,"i-lucide:signpost":949,"i-lucide:thumbs-up":951,"i-lucide:chart-line":953,"docs-de-DE-\u002Fguides\u002Fsend-analytics-events":955,"i-lucide:folder-git":1750,"i-simple-icons:terraform":1752,"i-lucide:database-zap":1754,"i-lucide:git-compare":1756,"i-lucide:palette":1758,"i-lucide:cloud-upload":1760,"i-lucide:badge-check":1762,"duxt-preferred-missing-\u002Fguides\u002Fsend-analytics-events":945,"i-lucide:rocket":1764,"i-lucide:compass":1766,"i-lucide:list":1768,"i-lucide:puzzle":1770,"i-lucide:ruler":1772,"i-lucide:gavel":1774,"i-lucide:copy":1776,"i-lucide:chevron-down":1778,"i-lucide:thumbs-down":1780,"i-lucide:star":1782,"i-lucide:circle-alert":1784,"i-simple-icons:discord":1786,"i-lucide:book-open-text":1788,"i-lucide:arrow-up-right":1790,"i-lucide:file-code-2":1792,"i-lucide:info":1794,"i-lucide:triangle-alert":1796,"duxt-code-ts-export default defineAppConfig({\n  duxt: {\n    analytics: {\n      track(event) {\n        \u002F\u002F `event.name` ist der Diskriminator; `event.context` sagt, auf\n        \u002F\u002F welcher Seite, in welcher Locale, aus welcher Quelle und in\n        \u002F\u002F welcher Version es passiert ist.\n        console.log(event.name, event.context.path);\n      }\n    }\n  }\n});\n":13,"duxt-code-ts-export default defineAppConfig({\n  duxt: {\n    analytics: {\n      track(event) {\n        const { name, context, ...properties } = event;\n\n        \u002F\u002F Dein Anbieter, deine Eigenschaftsnamen, deine\n        \u002F\u002F Einwilligungsschranke.\n        window.plausible?.(name, { props: { ...context, ...properties } });\n      }\n    }\n  }\n});\n":13,"duxt-code-ts-track(event) {\n  if (event.name === 'search' && event.results === 0) {\n    \u002F\u002F Der eine Bericht, den eine Dokumentationsseite fast immer will: ein\n    \u002F\u002F Begriff, nach dem jemand gesucht hat und den die Seite nicht\n    \u002F\u002F beantworten konnte.\n    report('docs-search-miss', { query: event.query, ...event.context });\n  }\n}\n":13,"i-lucide:arrow-left":1798,"i-lucide:chevron-right":1800,"i-lucide:menu":1802,"i-lucide:search":1804,"i-lucide:keyboard":1806,"i-simple-icons:github":1808,"i-lucide:moon":1810,"duxt-version-missing-\u002Fguides\u002Fsend-analytics-events":1812,"i-flag:de-4x3":1816},[4,31,111,183,826,845,853,878],{"title":5,"path":6,"stem":7,"children":8,"description":12},"Einführung","\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","Was duxt ist, und was mit einer einzigen Konfigurationszeile ankommt.",null,{"title":15,"path":16,"stem":17,"icon":18,"description":19,"subcategory":13},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F1.installation","lucide:download","Ebene einbinden, erweitern, Markdown schreiben.",{"title":21,"path":22,"stem":23,"icon":24,"description":25,"subcategory":13},"Konfiguration","\u002Fgetting-started\u002Fconfiguration","1.getting-started\u002F2.configuration","lucide:settings","Eine Datei konfiguriert die ganze Seite — was hineingehört, und wie sie zusammengeführt wird.",{"title":27,"path":28,"stem":29,"icon":11,"description":30,"subcategory":13},"Mit dem Starter beginnen","\u002Fgetting-started\u002Ffrom-starter","1.getting-started\u002F3.from-starter","Erstelle mit Nuxi eine sofort lauffähige duxt-Dokumentationsseite.",{"title":32,"path":33,"stem":34,"children":35,"description":39},"Konzepte","\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","Wie die Ebene funktioniert — das Quellenmodell, das URL-Schema, die Collections und die Prüfungen.",{"title":41,"path":42,"stem":43,"icon":44,"description":45,"subcategory":13},"Ebenen und Überschreiben","\u002Fconcepts\u002Flayers","2.concepts\u002F1.layers","lucide:layers","Was eine Nuxt-Ebene dir gibt, was sie dir nimmt, und welche Pfade nicht so auflösen, wie sie sich lesen.",{"title":47,"path":48,"stem":49,"icon":50,"description":51,"subcategory":13},"Theming","\u002Fconcepts\u002Ftheming","2.concepts\u002F10.theming","lucide:palette","Wie das Theme gebaut ist — eigene Komponenten, eine Token-Ebene und ein Dark Mode, der über eine Klasse schaltet.",{"title":53,"path":54,"stem":55,"icon":56,"description":57,"subcategory":13},"Datenbanken","\u002Fconcepts\u002Fdatabases","2.concepts\u002F11.databases","lucide:database","Auf welchen Content-Datenbank-Adaptern eine duxt-Website laufen kann, welche davon geprüft sind und die eine Regel, die die Ebene aus dem Weg hält.",{"title":59,"path":60,"stem":61,"icon":62,"description":63,"subcategory":13},"Tastenkürzel","\u002Fconcepts\u002Fkeyboard-shortcuts","2.concepts\u002F12.keyboard-shortcuts","lucide:keyboard","Die vier Tasten, die das Theme belegt, wo jede davon gilt, und wo die Lesende davon erfährt.",{"title":65,"path":66,"stem":67,"icon":68,"description":69,"subcategory":13},"Quellen","\u002Fconcepts\u002Fsources","2.concepts\u002F2.sources","lucide:git-branch","Eine Liste von Quellen wird zu jeder Collection, jedem Präfix und jeder Version, die die Seite ausliefert.",{"title":71,"path":72,"stem":73,"icon":74,"description":75,"subcategory":13},"URLs und Versionen","\u002Fconcepts\u002Furls-and-versions","2.concepts\u002F3.urls-and-versions","lucide:git-compare","Wie die Repository- und Versionssegmente erscheinen, und was einem Leser in einer alten Version gesagt wird.",{"title":77,"path":78,"stem":79,"icon":56,"description":80,"subcategory":13},"Collections","\u002Fconcepts\u002Fcollections","2.concepts\u002F4.collections","Was Content aus den Quellen baut, und die vier Dinge, die das Schema hinzufügt.",{"title":82,"path":83,"stem":84,"icon":85,"description":86,"subcategory":13},"Generierte Sektionen","\u002Fconcepts\u002Fgenerated-sections","2.concepts\u002F5.generated-sections","lucide:file-cog","Ein Artefakt plus ein Typ, als Seiten veröffentlicht — was die Registry ist, und welche zwei Richtlinien ein Typ beantwortet.",{"title":88,"path":89,"stem":90,"icon":91,"description":92,"subcategory":13},"Was der Build prüft","\u002Fconcepts\u002Fbuild-checks","2.concepts\u002F6.build-checks","lucide:shield-check","Die stillen Fehlschläge dieser Ebene, in Meldungen verwandelt.",{"title":94,"path":95,"stem":96,"icon":97,"description":98,"subcategory":13},"Maschinelle Leser","\u002Fconcepts\u002Fmachine-readers","2.concepts\u002F7.machine-readers","lucide:bot","Was ein Modell bekommt — llms.txt, das rohe Markdown jeder Seite und ein echter MCP-Server.",{"title":100,"path":101,"stem":102,"icon":103,"description":104,"subcategory":13},"SEO","\u002Fconcepts\u002Fseo","2.concepts\u002F8.seo","lucide:search","Was jede Seite für Crawler und Social Cards ausgibt, welches Modul es schreibt, und der eine Wert, den die Ebene nicht erraten kann.",{"title":106,"path":107,"stem":108,"icon":109,"description":110,"subcategory":13},"Lokalisierung","\u002Fconcepts\u002Flocalisation","2.concepts\u002F9.localisation","lucide:languages","Sieben Locales bringt die Ebene mit, und jede konfigurierte Zeichenkette hat drei Formen.",{"title":112,"path":113,"stem":114,"children":115,"description":119},"Anleitungen","\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","Eine Aufgabe je Seite, von vorn bis hinten — mehrere Repositories, mehrere Versionen, mehrere Sprachen und ein Deployment.",{"title":121,"path":122,"stem":123,"icon":124,"description":125,"subcategory":13},"Mehrere Repositories","\u002Fguides\u002Fseveral-repositories","3.guides\u002F1.several-repositories","lucide:folder-git","Die Dokumentation mehrerer Projekte von einer Seite ausliefern.",{"title":127,"path":128,"stem":129,"icon":130,"description":131,"subcategory":13},"Terraform-Provider-Dokumentation veröffentlichen","\u002Fguides\u002Fpublish-terraform-provider-docs","3.guides\u002F10.publish-terraform-provider-docs","simple-icons:terraform","Einen tfplugindocs-Markdown-Baum als versionierte Provider-Referenz mit passender Navigation veröffentlichen.",{"title":133,"path":134,"stem":135,"icon":136,"description":137,"subcategory":13},"Remote-Quellen und OG-Bilder cachen","\u002Fguides\u002Fcache-build-work","3.guides\u002F11.cache-build-work","lucide:database-zap","Öffentliche Repository-Downloads und gerenderte Social Cards sicher zwischen CI-Builds wiederverwenden.",{"title":139,"path":140,"stem":141,"icon":74,"description":142,"subcategory":13},"Mehrere Versionen","\u002Fguides\u002Fseveral-versions","3.guides\u002F2.several-versions","Dieselbe Dokumentation an mehreren Refs ausliefern, mit Umschalter und Banner.",{"title":144,"path":145,"stem":146,"icon":109,"description":147,"subcategory":13},"Mehrere Sprachen","\u002Fguides\u002Fseveral-languages","3.guides\u002F3.several-languages","Die Oberfläche in mehreren Sprachen ausliefern — und die Seiten selbst übersetzen.",{"title":149,"path":150,"stem":151,"icon":50,"description":152,"subcategory":13},"Das Theme überschreiben","\u002Fguides\u002Foverride-the-theme","3.guides\u002F4.override-the-theme","Eine Farbe ändern, eine Komponente ersetzen, ein shadcn-vue-Primitiv hinzufügen.",{"title":154,"path":155,"stem":156,"icon":157,"description":158,"subcategory":13},"Eine Seite verschieben","\u002Fguides\u002Fmove-a-page","3.guides\u002F5.move-a-page","lucide:signpost","redirectFrom im Frontmatter, in Routenregeln unter jedem Präfix übersetzt.",{"title":160,"path":161,"stem":162,"icon":163,"description":164,"subcategory":13},"Eine Seite ausliefern","\u002Fguides\u002Fdeploy-a-site","3.guides\u002F6.deploy-a-site","lucide:cloud-upload","Wo eine duxt-Seite laufen kann, was sie dort braucht, und warum Inhalte nicht zur Laufzeit aufgefrischt werden.",{"title":166,"path":167,"stem":168,"icon":169,"description":170,"subcategory":13},"Seiten-Feedback sammeln","\u002Fguides\u002Fcollect-page-feedback","3.guides\u002F7.collect-page-feedback","lucide:thumbs-up","DuxtPageFeedback umhüllen und die Antwort dort behalten, wo deine Analytik ohnehin liegt.",{"title":172,"path":173,"stem":174,"icon":175,"description":176,"subcategory":13},"Deiner Website eine Marke geben","\u002Fguides\u002Fbrand-your-site","3.guides\u002F8.brand-your-site","lucide:badge-check","Name, Wortmarke und Icons setzen, damit die Website als deine gelesen wird und nicht als die der Ebene.",{"title":178,"path":179,"stem":180,"icon":181,"description":182,"subcategory":13},"Analytik-Ereignisse senden","\u002Fguides\u002Fsend-analytics-events","3.guides\u002F9.send-analytics-events","lucide:chart-line","Ein Callback, fünf Ereignisse, kein Anbieter — verdrahte duxts Leserinteraktionen mit der Analytik, die du ohnehin betreibst.",{"title":184,"path":185,"stem":186,"children":187,"description":191},"Referenz","\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","Die öffentliche Oberfläche der Ebene — Konfigurationsschlüssel, Frontmatter, Komponenten, Composables und Endpunkte.",{"title":21,"path":193,"stem":194,"icon":24,"description":195,"subcategory":13},"\u002Freference\u002Fconfiguration","4.reference\u002F1.configuration","Jeder Schlüssel unter duxt in app.config.ts — was er steuert, und wann er gelesen wird.",{"title":197,"path":198,"stem":199,"children":200,"icon":202,"description":203,"subcategory":13},"Changelog","\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","Ein Release-Log, als Seiten veröffentlicht — eine Zeitleiste, eine Seite pro Release, und ein Feed.",{"title":205,"path":206,"stem":207,"icon":208,"description":209,"subcategory":13},"Die Sektion deklarieren","\u002Freference\u002Fchangelog\u002Fsection","4.reference\u002F10.changelog\u002F1.section","lucide:file-clock","Der Sektionstyp `changelog` — wo die Datei liegt, und welche zwei Richtlinien er beantwortet.",{"title":211,"path":212,"stem":213,"icon":214,"description":215,"subcategory":13},"Granularität","\u002Freference\u002Fchangelog\u002Fgranularity","4.reference\u002F10.changelog\u002F2.granularity","lucide:split","Eine Seite pro Release, oder die Datei als die eine Seite, als die sie geschrieben wurde.",{"title":217,"path":218,"stem":219,"icon":220,"description":221,"subcategory":13},"Was gelesen wird","\u002Freference\u002Fchangelog\u002Fwhat-is-read","4.reference\u002F10.changelog\u002F3.what-is-read","lucide:scan-text","Welche Überschriften zu Releases werden, welche zu Gruppen, und was mit dem Rest passiert.",{"title":223,"path":224,"stem":225,"icon":226,"description":227,"subcategory":13},"Layout und Komponenten","\u002Freference\u002Fchangelog\u002Fcomponents","4.reference\u002F10.changelog\u002F4.components","lucide:box","Das Layout, in dem eine getrennte Historie rendert, und die zwei MDC-Komponenten, aus denen ihre Seiten bestehen.",{"title":229,"path":230,"stem":231,"children":232,"icon":234,"description":235,"subcategory":13},"Bruno-Collections","\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","Eine Bruno-Collection als request-zentrierte Referenz mit herunterladbarem Archiv.",{"title":205,"path":237,"stem":238,"icon":239,"description":240,"subcategory":13},"\u002Freference\u002Fbruno\u002Fsection","4.reference\u002F11.bruno\u002F1.section","lucide:file-code","Wo eine Bruno-Collection liegt, welche Seiten sie erzeugt und welche Optionen gelten.",{"title":242,"path":243,"stem":244,"icon":245,"description":246,"subcategory":13},"Was veröffentlicht wird","\u002Freference\u002Fbruno\u002Fwhat-is-published","4.reference\u002F11.bruno\u002F2.what-is-published","lucide:shield","Environments, Zugangsdaten, Scripts und Tests erreichen keine Seite.",{"title":248,"path":249,"stem":250,"icon":251,"description":252,"subcategory":13},"Der Request-Client","\u002Freference\u002Fbruno\u002Ftry-it","4.reference\u002F11.bruno\u002F3.try-it","lucide:send-horizontal","Standardmäßig aus und nur auf ausdrücklich öffentliche Ziele gerichtet.",{"title":254,"path":255,"stem":256,"icon":18,"description":257,"subcategory":13},"Die Collection beziehen","\u002Freference\u002Fbruno\u002Fgetting-the-collection","4.reference\u002F11.bruno\u002F4.getting-the-collection","Das Archiv ist an Version und Sprache der Seite gebunden; der Bruno-Link nicht.",{"title":259,"path":260,"stem":261,"icon":262,"description":263,"subcategory":13},"Hooks","\u002Freference\u002Fhooks","4.reference\u002F12.hooks","lucide:plug","Der eine Build-Hook, den duxt aussendet, was er übergibt und warum es nur einen gibt.",{"title":65,"path":265,"stem":266,"icon":68,"description":267,"subcategory":13},"\u002Freference\u002Fsources","4.reference\u002F2.sources","Die Felder eines Quelleneintrags, seine Refs, und die Optionen, die die URLs formen.",{"title":269,"path":270,"stem":271,"icon":239,"description":272,"subcategory":13},"Frontmatter","\u002Freference\u002Ffrontmatter","4.reference\u002F3.frontmatter","Die Felder, die eine Seite über Titel und Beschreibung hinaus tragen darf, und die zwei, die der Build füllt.",{"title":274,"path":275,"stem":276,"children":277,"icon":279,"description":280,"subcategory":13},"MDC-Komponenten","\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","Die Blöcke, die eine Markdown-Seite aufrufen kann, je eine Seite, mit ihren 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","Ein Einschub, an dem der Leser innehalten soll — ein Tipp, eine Warnung, eine Gefahr.",{"title":288,"path":289,"stem":290,"icon":291,"description":292,"subcategory":13},"Paketmanager","\u002Freference\u002Fmdc-components\u002Fpackage-managers","4.reference\u002F4.mdc-components\u002F10.package-managers","lucide:package","Ein Befehl, ein Tab je Paketmanager, über Seiten hinweg gemerkt.",{"title":294,"path":295,"stem":296,"icon":297,"description":298,"subcategory":13},"Dateibaum","\u002Freference\u002Fmdc-components\u002Ffile-tree","4.reference\u002F4.mdc-components\u002F11.file-tree","lucide:folder-tree","Eine Ordnerstruktur, mit Icons je Dateityp.",{"title":300,"path":301,"stem":302,"icon":303,"description":304,"subcategory":13},"Vorschau","\u002Freference\u002Fmdc-components\u002Fpreview","4.reference\u002F4.mdc-components\u002F12.preview","lucide:eye","Eine Komponente, so gerendert, wie die Seite sie rendert, mit ihrem Quelltext daneben.",{"title":306,"path":307,"stem":308,"icon":309,"description":310,"subcategory":13},"Seitenkarten","\u002Freference\u002Fmdc-components\u002Fpage-cards","4.reference\u002F4.mdc-components\u002F13.page-cards","lucide:layout-grid","Die Kinder einer Sektion, als Karten.",{"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","Ein Block, einmal geschrieben und in jeder Quelle gerendert, die ihn braucht.",{"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","Die Version, in der etwas kam, neben einer Überschrift.",{"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","Ein Diagramm aus einem Fence oder einem Prop.",{"title":330,"path":331,"stem":332,"children":333,"icon":335,"description":336,"subcategory":13},"Prose-Overrides","\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","Was die Ebene an schlichtem Markdown ändert — Links, Überschriften, Bilder, Code und Tabellen.",{"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","Ein Link, aufgelöst gegen die Quelle, in der er geschrieben wurde.",{"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","Überschriften, jede mit einem Permalink-Anker.",{"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","Ein Bild: Theme-bewusst, responsiv und zoombar.",{"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","Der Code-Block: Dateiname, Sprach-Icon, Kopier-Button.",{"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","Eine Tabelle, die scrollt statt der Seite.",{"title":368,"path":369,"stem":370,"icon":371,"description":372,"subcategory":13},"Schritte","\u002Freference\u002Fmdc-components\u002Fsteps","4.reference\u002F4.mdc-components\u002F2.steps","lucide:list-ordered","Eine geordnete Liste, gezeichnet als nummerierte Schritte an einer Schiene.",{"title":374,"path":375,"stem":376,"icon":239,"description":377,"subcategory":13},"Code-Gruppe","\u002Freference\u002Fmdc-components\u002Fcode-group","4.reference\u002F4.mdc-components\u002F3.code-group","Mehrere Fences als ein Block mit Tabs, beschriftet mit dem Dateinamen.",{"title":379,"path":380,"stem":381,"icon":382,"description":383,"subcategory":13},"Tab-Gruppe","\u002Freference\u002Fmdc-components\u002Ftab-group","4.reference\u002F4.mdc-components\u002F4.tab-group","lucide:panels-top-left","Tabs für alles, was kein Code ist.",{"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","Ein Panel einer Tab-Gruppe.",{"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","Aufklappbare Abschnitte — eine FAQ, oder Antworten, aus denen ein Leser wählt.",{"title":397,"path":398,"stem":399,"icon":400,"description":401,"subcategory":13},"Accordion-Element","\u002Freference\u002Fmdc-components\u002Faccordion-item","4.reference\u002F4.mdc-components\u002F7.accordion-item","lucide:chevron-down","Ein aufklappbarer Abschnitt.",{"title":403,"path":404,"stem":405,"icon":406,"description":407,"subcategory":13},"Feldgruppe","\u002Freference\u002Fmdc-components\u002Ffield-group","4.reference\u002F4.mdc-components\u002F8.field-group","lucide:list-tree","Eine Liste von Feldern als ein Block.",{"title":409,"path":410,"stem":411,"icon":202,"description":412,"subcategory":13},"Feld","\u002Freference\u002Fmdc-components\u002Ffield","4.reference\u002F4.mdc-components\u002F9.field","Ein Parameter, eine Eigenschaft oder eine Option, mit Typ und Standard.",{"title":414,"path":415,"stem":416,"children":417,"icon":419,"description":420,"subcategory":13},"Komponenten","\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","Die eigenen Komponenten der Ebene, je eine Seite — wofür jede da ist, und was sie nimmt.",{"title":422,"path":423,"stem":424,"children":425,"icon":427,"description":428,"subcategory":13},"Layout","\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","Die zwei Komponenten, die eine Seite rahmen — die Navigationsleiste und der Fußbereich.",{"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","Die Navbar: Titel, Navigation, Suche und die Icon-Links.",{"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","Der Fußbereich: der Name der Seite, ihre rechtlichen Links und die eigene Zeile der Ebene.",{"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","Site-eigene Hinweise, je Platzierung nur gezeichnet, wenn es etwas zu sagen gibt.",{"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},"Sich zurechtfinden — die Sektionszeile, die Seitenleiste, die Spur, das Inhaltsverzeichnis und vor\u002Fzurück.",{"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","Die zweite Navigationszeile — die obersten Teile der Dokumentation.",{"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","Der Baum der Seitenleiste.",{"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","Ein Eintrag der Seitenleiste.",{"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","Die Spur über dem Seitentitel.",{"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","Das Inhaltsverzeichnis und der Nebenbereich darunter.",{"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","Zurück und weiter, begrenzt durch die Sektion.",{"title":489,"path":490,"stem":491,"children":492,"icon":494,"description":495,"subcategory":13},"Bedienelemente","\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","Was ein Leser bedient — die Suche, die Umschalter, die Tastenkürzel-Übersicht und zwei Anzeigen.",{"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","Jede aktive Quelle durchsuchen und ihre lokal bewerteten Ergebnisse verschränken.",{"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","Das Versions-Abzeichen, und der Umschalter, wenn es mehr als eine gibt.",{"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","Der Balken, der einem Leser sagt, dass diese Version nicht die aktuelle ist.",{"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","Der Sprachumschalter.",{"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","Wie weit unten auf der Seite der Leser ist.",{"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","Die Übersicht der Tastenkürzel, auf ?.",{"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","Das erste fokussierbare Element auf der Seite.",{"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","Der Button, der die Übersicht der Tastenkürzel öffnet.",{"title":540,"path":541,"stem":542,"children":543,"icon":545,"description":546,"subcategory":13},"Seite","\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","Die Komponenten, die zur Seite selbst gehören.",{"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","Woher die Seite kommt: Bearbeiten-Link, letzte Änderung, Mitwirkende.",{"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","Diese Seite an ein Modell übergeben — oder ihre Quelle lesen.",{"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","„War diese Seite hilfreich?“ — ein Ereignis, und kein 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","Die Karte um einen Codeblock.",{"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","Die Funktionen, die die Ebene deinen eigenen Komponenten offenlegt, je eine Seite.",{"title":579,"path":580,"stem":581,"children":582,"icon":56,"description":584,"subcategory":13},"Konfiguration und Inhalt","\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},"Die zusammengeführte Konfiguration, und welche Collection die gerade gelesene Seite ausliefert.",{"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","Die zusammengeführte Konfiguration, jedes Textfeld bereits aufgelöst.",{"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","Welche Collection diese Route bedient.",{"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","Der Navigationsbaum der Collection, die diese Route bedient.",{"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","Der Teil der Dokumentation, in dem diese Seite liegt.",{"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","Die Spur von der Sektion hinunter zu einer Seite.",{"title":613,"path":614,"stem":615,"children":616,"icon":618,"description":619,"subcategory":13},"Pfade und Versionen","\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","Eine URL lesen, eine zurückschreiben, und wissen, welche Version gerade gelesen wird.",{"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","Der Pfad, unter dem die Dokumentation liegt, ohne Locale-Segment.",{"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","Ein Dokumentationspfad, wieder als Link ausgeschrieben.",{"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","Was der Umschalter zeigt, was das Banner sagt, ob indexiert wird.",{"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","Der konfigurierte Ursprung, und Pfade absolut gemacht.",{"title":642,"path":643,"stem":644,"children":645,"icon":118,"description":647,"subcategory":13},"Leseerlebnis","\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},"Suche, Überschriften, Fokus, Verlauf und die Entscheidungen, die ein Leser trifft.",{"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","Tippfehlertoleranz neben dem exakten Index.",{"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","Die Überschrift, die gerade im Blick ist.",{"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","Setzt den Fokus nach einer clientseitigen Navigation auf die Überschrift.",{"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","Die zuletzt geöffneten Seiten bis zum konfigurierten Limit.",{"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","Der Paketmanager, den ein Leser gewählt hat.",{"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","Benachrichtigungen, gekapselt, damit keine Komponente die Bibliothek importiert.",{"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","Die Tasten, auf die das Theme hört.",{"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","Eine Leserinteraktion an das eigene Callback der Seite melden — oder an niemanden.",{"title":697,"path":698,"stem":699,"children":700,"icon":618,"description":702,"subcategory":13},"Endpunkte","\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},"Alles, was die Seite außer Seiten ausliefert, je eine Seite.",{"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","Die Dokumentation als Markdown-Index, nach 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","Eine duxt-Erweiterung mit denselben Seiten in einer Markdown-Datei.",{"title":715,"path":716,"stem":717,"icon":239,"description":718,"subcategory":13},"\u003Cseite>.md","\u002Freference\u002Fendpoints\u002Fpage-markdown","4.reference\u002F7.endpoints\u002F3.page-markdown","Der Quelltext jeder Seite, unter ihrer eigenen URL plus .md.",{"title":720,"path":721,"stem":722,"icon":97,"description":723,"subcategory":13},"\u002Fmcp","\u002Freference\u002Fendpoints\u002Fmcp","4.reference\u002F7.endpoints\u002F4.mcp","Ein MCP-Server über denselben Inhalten.",{"title":725,"path":726,"stem":727,"icon":103,"description":728,"subcategory":13},"\u002Fsitemap.xml und \u002Frobots.txt","\u002Freference\u002Fendpoints\u002Fsitemap-and-robots","4.reference\u002F7.endpoints\u002F5.sitemap-and-robots","Worauf ein Crawler gezeigt wird, und wovon er ferngehalten wird.",{"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","Der Feed, sobald eine Sektion benannt ist.",{"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","Die Route, unter der das Nuxt-Devtools-Panel ausgeliefert wird. Nur im Dev-Server.",{"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},"Zehn Panels, die zeigen, was aus deinen Quellen geworden ist. Nur im Dev-Modus.",{"title":65,"path":749,"stem":750,"icon":594,"description":751,"subcategory":13},"\u002Freference\u002Fdevtools\u002Fsources","4.reference\u002F8.devtools\u002F1.sources","Was aus `duxt.sources` geworden ist — eine Collection je Quelle, Version und Sprache.",{"title":753,"path":754,"stem":755,"icon":157,"description":756,"subcategory":13},"Weiterleitungen","\u002Freference\u002Fdevtools\u002Fredirects","4.reference\u002F8.devtools\u002F10.redirects","Jeder Redirect, den der Server ausliefert, und welche davon die Ebene geschrieben hat.",{"title":758,"path":759,"stem":760,"icon":618,"description":761,"subcategory":13},"Pfade","\u002Freference\u002Fdevtools\u002Fpaths","4.reference\u002F8.devtools\u002F2.paths","URL einfügen und sehen, welche Quelle sie beansprucht und was sie dort findet.",{"title":763,"path":764,"stem":765,"icon":766,"description":767,"subcategory":13},"Seiten","\u002Freference\u002Fdevtools\u002Fpages","4.reference\u002F8.devtools\u002F3.pages","lucide:files","Jede Seite jeder Collection, mit ihrem Frontmatter und ihren Git-Metadaten.",{"title":769,"path":770,"stem":771,"icon":772,"description":773,"subcategory":13},"Versionen","\u002Freference\u002Fdevtools\u002Fversions","4.reference\u002F8.devtools\u002F4.versions","lucide:columns-3","Welche Version — und welche Sprache — trägt welche Seite.",{"title":775,"path":776,"stem":777,"icon":778,"description":779,"subcategory":13},"Prüfungen","\u002Freference\u002Fdevtools\u002Fchecks","4.reference\u002F8.devtools\u002F5.checks","lucide:check-check","Der Build-Validator, ausgeführt gegen das, was die Seite gerade ausliefert.",{"title":781,"path":782,"stem":783,"icon":103,"description":784,"subcategory":13},"Suche","\u002Freference\u002Fdevtools\u002Fsearch","4.reference\u002F8.devtools\u002F6.search","Was der Suchindex hält, durch dieselbe Abfrage, die der Dialog ausführt.",{"title":786,"path":787,"stem":788,"icon":494,"description":789,"subcategory":13},"Config","\u002Freference\u002Fdevtools\u002Fconfig","4.reference\u002F8.devtools\u002F7.config","Die zusammengeführte `duxt`-Config, und von welcher Seite der Zusammenführung jeder Wert kam.",{"title":791,"path":792,"stem":793,"icon":109,"description":794,"subcategory":13},"i18n","\u002Freference\u002Fdevtools\u002Fi18n","4.reference\u002F8.devtools\u002F8.i18n","Message-Keys pro Locale, gegen die Basissprache.",{"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","Der Download-Cache von Content und ein Weg, einen Eintrag zu verwerfen.",{"title":802,"path":803,"stem":804,"children":805,"icon":262,"description":807,"subcategory":13},"API-Referenz","\u002Freference\u002Fopenapi","4.reference\u002F9.openapi\u002Findex",[806,808,812,816,821],{"title":802,"path":803,"stem":804,"icon":262,"description":807,"subcategory":13},"Ein OpenAPI-Dokument, veröffentlicht als Referenzseiten mit einem Client, der echte Anfragen sendet.",{"title":205,"path":809,"stem":810,"icon":239,"description":811,"subcategory":13},"\u002Freference\u002Fopenapi\u002Fsection","4.reference\u002F9.openapi\u002F1.section","Der Sektionstyp `openapi` — wo das Dokument liegt, und was daraus wird.",{"title":414,"path":813,"stem":814,"icon":226,"description":815,"subcategory":13},"\u002Freference\u002Fopenapi\u002Fcomponents","4.reference\u002F9.openapi\u002F2.components","Die drei MDC-Komponenten, aus denen eine generierte Referenzseite besteht.",{"title":817,"path":818,"stem":819,"icon":234,"description":820,"subcategory":13},"Der Try-it-Client","\u002Freference\u002Fopenapi\u002Ftry-it","4.reference\u002F9.openapi\u002F3.try-it","Eine echte Anfrage, gesendet vom Browser des Lesers.",{"title":822,"path":823,"stem":824,"icon":568,"description":825,"subcategory":13},"Request-Samples","\u002Freference\u002Fopenapi\u002Frequest-samples","4.reference\u002F9.openapi\u002F4.request-samples","Dieselbe Anfrage in zwölf Clients, und wie du eigene hinzufügst.",{"title":827,"path":828,"stem":829,"children":830,"description":833},"Add-ons","\u002Fadd-ons","5.add-ons",[831,834,839],{"title":827,"path":828,"stem":832,"icon":315,"description":833,"subcategory":13},"5.add-ons\u002Findex","Begleit-Layer, die eine duxt-Site erweitern — jede ein eigenes Paket, eingebunden mit einem weiteren Eintrag in extends.",{"title":835,"path":836,"stem":837,"icon":103,"description":838,"subcategory":13},"Typesense","\u002Fadd-ons\u002Ftypesense","5.add-ons\u002F1.typesense","duxts einen Build-Hook in eine Typesense-Collection überführen — jede Quelle, jede Version und jede Sprache, per stabiler ID aktualisiert.",{"title":840,"path":841,"stem":842,"icon":843,"description":844,"subcategory":13},"Meilisearch","\u002Fadd-ons\u002Fmeilisearch","5.add-ons\u002F2.meilisearch","simple-icons:meilisearch","Ergänze die offizielle Companion-Layer für atomare Indizierung beim Build und optionale Browsersuche.",{"title":846,"path":847,"stem":848,"children":849,"icon":851,"description":852,"subcategory":13},"Danksagungen","\u002Fcredits","6.credits\u002Findex",[850],{"title":846,"path":847,"stem":848,"icon":851,"description":852,"subcategory":13},"lucide:heart","Worauf duxt aufbaut, und wem es nachempfunden ist.",{"title":854,"path":855,"stem":856,"children":857,"description":861},"Konventionen","\u002Fconventions","7.conventions",[858,862,868,873],{"title":854,"path":855,"stem":859,"icon":860,"description":861,"subcategory":13},"7.conventions\u002Findex","lucide:ruler","Projektspezifische Regeln — die, die sich aus dem Code nicht erschließen lassen.",{"title":863,"path":864,"stem":865,"icon":866,"description":867,"subcategory":13},"Branding","\u002Fconventions\u002Fbranding","7.conventions\u002F1.branding","lucide:shapes","Die Marke [d]uxt — wo welches Asset verwendet wird, warum die Klammern des Icons neu gezeichnet sind, und welche Farben feststehen.",{"title":869,"path":870,"stem":871,"icon":353,"description":872,"subcategory":13},"Icons","\u002Fconventions\u002Ficons","7.conventions\u002F2.icons","Vier Icon-Sätze, und die eine Frage, die entscheidet, welcher davon ein Zeichen malt.",{"title":874,"path":875,"stem":876,"icon":91,"description":877,"subcategory":13},"Abhängigkeitssicherheit","\u002Fconventions\u002Fdependency-security","7.conventions\u002F3.dependency-security","Sicherheitshinweise prüfen, ohne betroffene Pfade zu verbergen.",{"title":879,"path":880,"stem":881,"children":882,"description":886},"Architekturentscheidungen","\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","Das Entscheidungsprotokoll — jede Architekturentscheidung, die für duxt festgehalten wurde.",{"title":888,"path":889,"stem":890,"icon":13,"description":891,"subcategory":13},"duxt als Ebene bauen, die ein Modul trägt","\u002Fadr\u002F0001-build-duxt-as-a-layer-carrying-a-module","99.adr\u002F0001-build-duxt-as-a-layer-carrying-a-module","Das Theme als Nuxt-Ebene ausliefern, deren Wurzel das Paket ist, statt als Starter-Vorlage.",{"title":893,"path":894,"stem":895,"icon":13,"description":896,"subcategory":13},"Die Collections aus einer Quellenliste erzeugen","\u002Fadr\u002F0002-generate-the-collections-from-one-source-list","99.adr\u002F0002-generate-the-collections-from-one-source-list","Content-Collections zur Ladezeit der Konfiguration aus einer kompakten Quellenliste berechnen, statt Konsumenten sie deklarieren zu lassen.",{"title":898,"path":899,"stem":900,"icon":13,"description":901,"subcategory":13},"Die URL-Präfixe zur Build-Zeit entscheiden","\u002Fadr\u002F0003-decide-the-url-prefixes-at-build-time","99.adr\u002F0003-decide-the-url-prefixes-at-build-time","Ob ein Repository- oder Versionssegment erscheint, entscheidet die Quellenliste vor der ersten Anfrage, nie pro Anfrage.",{"title":903,"path":904,"stem":905,"icon":13,"description":906,"subcategory":13},"Markdown-Komponenten mit MDC rendern","\u002Fadr\u002F0004-render-markdown-components-with-mdc","99.adr\u002F0004-render-markdown-components-with-mdc","Für Komponenten in Markdown Contents eigene MDC-Syntax nutzen, statt MDX einzuführen.",{"title":908,"path":909,"stem":910,"icon":13,"description":911,"subcategory":13},"Die Ebene ohne betreiberspezifische Links ausliefern","\u002Fadr\u002F0005-ship-the-layer-without-owner-specific-links","99.adr\u002F0005-ship-the-layer-without-owner-specific-links","Jeder Standard, der ein bestimmtes Projekt benennen würde — Repository, Issue-Tracker, Community, Impressum —, wird leer ausgeliefert.",{"title":913,"path":914,"stem":915,"icon":13,"description":916,"subcategory":13},"Nach Zeitplan neu bauen statt zur Laufzeit aktualisieren","\u002Fadr\u002F0006-rebuild-on-a-schedule-rather-than-refresh-at-runtime","99.adr\u002F0006-rebuild-on-a-schedule-rather-than-refresh-at-runtime","Eine Seite, die ein anderes Repository liest, übernimmt dessen Änderungen beim Bauen, und eine Aktualisierung zur Laufzeit wird nicht angeboten.",{"title":918,"path":919,"stem":920,"icon":13,"description":921,"subcategory":13},"Übersetzungen als eigene Collections ausliefern","\u002Fadr\u002F0007-serve-translations-as-collections-of-their-own","99.adr\u002F0007-serve-translations-as-collections-of-their-own","Einer Quelle eine Locale-Dimension hinzufügen statt dem Content-Pfad ein Locale-Segment.",{"title":923,"path":924,"stem":925,"icon":13,"description":926,"subcategory":13},"Das Theme auf eigenen shadcn-vue-Komponenten bauen","\u002Fadr\u002F0008-build-the-theme-on-owned-shadcn-vue-components","99.adr\u002F0008-build-the-theme-on-owned-shadcn-vue-components","Die Ebene hält den Quelltext ihrer Interface-Komponenten selbst, statt sie aus einer Komponentenbibliothek oder einem fertigen Dokumentations-Theme zu importieren.",{"title":928,"path":929,"stem":930,"icon":13,"description":931,"subcategory":13},"Den SEO-Unterbau aus dem Nuxt-SEO-Bündel nehmen","\u002Fadr\u002F0009-take-the-seo-stack-from-the-nuxt-seo-bundle","99.adr\u002F0009-take-the-seo-stack-from-the-nuxt-seo-bundle","Die Ebene installiert @nuxtjs\u002Fseo und übergibt ihm die Head-Tags und strukturierten Daten, die sie bislang von Hand schrieb — behalten werden nur die Regeln, die von Versionen und Übersetzungen abhängen.",{"title":933,"path":934,"stem":935,"icon":13,"description":936,"subcategory":13},"Die Suche pro Collection von Content als Standard behalten","\u002Fadr\u002F0010-keep-contents-per-collection-search-as-the-default","99.adr\u002F0010-keep-contents-per-collection-search-as-the-default","Ein einziger Index über alle Quellen wurde gegen Contents Suche mit einem Index pro Collection gemessen und ist nicht der Standard der Ebene; der Build-Hook macht ihn stattdessen zu einer Provider-Ebene.",{"title":938,"path":939,"stem":940,"icon":13,"description":941,"subcategory":13},"Die Provider-Ebenen in einem Turborepo-Monorepo führen","\u002Fadr\u002F0011-host-the-provider-layers-in-a-turborepo-monorepo","99.adr\u002F0011-host-the-provider-layers-in-a-turborepo-monorepo","Die Ebene zieht nach packages\u002Fduxt und die Website nach apps\u002Fwww, jedes veröffentlichte Paket versioniert und taggt für sich als \u003Cname>@vX.Y.Z, und die in",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":946},0,24,false,"\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":948},"\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>",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":950},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 13v8m0-18v3m-9.646 4.354a1.207 1.207 0 0 1 0-1.708l2.06-2.06A2 2 0 0 1 5.828 6h12.344a2 2 0 0 1 1.414.586l2.06 2.06a1.207 1.207 0 0 1 0 1.708l-2.06 2.06a2 2 0 0 1-1.414.586H5.828a2 2 0 0 1-1.414-.586z\"\u002F>",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":952},"\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":954},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M3 3v16a2 2 0 0 0 2 2h16\"\u002F>\u003Cpath d=\"m19 9l-5 5l-4-4l-3 3\"\u002F>\u003C\u002Fg>",{"page":956,"from":1748,"asked":1749},{"id":957,"title":178,"body":958,"breadcrumb":1203,"category":13,"compare":13,"contributors":13,"copyPage":1203,"date":13,"description":182,"extension":1742,"feedback":1203,"fullWidth":945,"icon":181,"lastUpdated":13,"layout":13,"meta":1743,"navigation":1203,"pageInfo":1203,"page_title":13,"path":179,"prevNext":1203,"rawbody":1744,"redirectFrom":13,"release":13,"search":1203,"seo":1745,"sitemap":1746,"stem":180,"subcategory":13,"toc":13,"__hash__":1747},"docs_de\u002F3.guides\u002F9.send-analytics-events.md",{"type":959,"value":960,"toc":1733},"minimark",[961,970,983,987,1370,1374,1383,1521,1530,1550,1566,1571,1623,1627,1630,1651,1658,1661,1665,1682,1686,1729],[962,963,964,965,969],"p",{},"duxt meldet, was Leser mit einer Dokumentationsseite tun — suchen, einen Befehl\nkopieren, einen Endpoint ausprobieren, „War diese Seite hilfreich?“ beantworten\n— an ",[966,967,968],"strong",{},"eine einzige Funktion, die du schreibst",". Sie liefert keinen Anbieter,\nkein SDK und kein Skript aus, und eine Seite, die diese Funktion nicht\ngeschrieben hat, meldet nichts und lädt nichts zusätzlich herunter.",[971,972,975],"callout",{"title":973,"type":974},"Aus, bis du es einschaltest","info",[962,976,977,978,982],{},"Es gibt kein Standardziel, denn eine Dokumentationsebene kann keines für die\nLeser eines anderen aussuchen. Ohne ",[979,980,981],"code",{},"duxt.analytics.track"," erreicht jede\nAufrufstelle unten eine fehlende Funktion und hält an.",[984,985,368],"h2",{"id":986},"schritte",[988,989,990,1253,1268,1280,1362],"steps",{},[991,992,993,1125],"ol",{},[994,995,996,999,1000,1003,1004,1117,1120,1121,1124],"li",{},[966,997,998],{},"Schreibe die Callback-Funktion."," Sie lebt in ",[979,1001,1002],{},"app.config.ts",", neben dem\nRest deiner duxt-Konfiguration, und bekommt ein Ereignis pro Interaktion\nübergeben:",[1005,1006,1012],"pre",{"className":1007,"code":1008,"filename":1009,"language":1010,"meta":1011,"style":1011},"language-ts shiki shiki-themes github-light github-dark","export default defineAppConfig({\n  duxt: {\n    analytics: {\n      track(event) {\n        \u002F\u002F `event.name` ist der Diskriminator; `event.context` sagt, auf\n        \u002F\u002F welcher Seite, in welcher Locale, aus welcher Quelle und in\n        \u002F\u002F welcher Version es passiert ist.\n        console.log(event.name, event.context.path);\n      }\n    }\n  }\n});\n","app\u002Fapp.config.ts","ts","",[979,1013,1014,1034,1040,1046,1062,1069,1075,1081,1093,1099,1105,1111],{"__ignoreMap":1011},[1015,1016,1019,1023,1026,1030],"span",{"class":1017,"line":1018},"line",1,[1015,1020,1022],{"class":1021},"szBVR","export",[1015,1024,1025],{"class":1021}," default",[1015,1027,1029],{"class":1028},"sScJk"," defineAppConfig",[1015,1031,1033],{"class":1032},"sVt8B","({\n",[1015,1035,1037],{"class":1017,"line":1036},2,[1015,1038,1039],{"class":1032},"  duxt: {\n",[1015,1041,1043],{"class":1017,"line":1042},3,[1015,1044,1045],{"class":1032},"    analytics: {\n",[1015,1047,1049,1052,1055,1059],{"class":1017,"line":1048},4,[1015,1050,1051],{"class":1028},"      track",[1015,1053,1054],{"class":1032},"(",[1015,1056,1058],{"class":1057},"s4XuR","event",[1015,1060,1061],{"class":1032},") {\n",[1015,1063,1065],{"class":1017,"line":1064},5,[1015,1066,1068],{"class":1067},"sJ8bj","        \u002F\u002F `event.name` ist der Diskriminator; `event.context` sagt, auf\n",[1015,1070,1072],{"class":1017,"line":1071},6,[1015,1073,1074],{"class":1067},"        \u002F\u002F welcher Seite, in welcher Locale, aus welcher Quelle und in\n",[1015,1076,1078],{"class":1017,"line":1077},7,[1015,1079,1080],{"class":1067},"        \u002F\u002F welcher Version es passiert ist.\n",[1015,1082,1084,1087,1090],{"class":1017,"line":1083},8,[1015,1085,1086],{"class":1032},"        console.",[1015,1088,1089],{"class":1028},"log",[1015,1091,1092],{"class":1032},"(event.name, event.context.path);\n",[1015,1094,1096],{"class":1017,"line":1095},9,[1015,1097,1098],{"class":1032},"      }\n",[1015,1100,1102],{"class":1017,"line":1101},10,[1015,1103,1104],{"class":1032},"    }\n",[1015,1106,1108],{"class":1017,"line":1107},11,[1015,1109,1110],{"class":1032},"  }\n",[1015,1112,1114],{"class":1017,"line":1113},12,[1015,1115,1116],{"class":1032},"});\n",[1118,1119],"br",{},"Die Callback-Funktion läuft ",[966,1122,1123],{},"nur im Browser",". Ein Build und ein\nVorab-Rendering rufen sie nie auf, ein statisches Rendering füllt deine\nAnalytik also nicht mit Seiten, die ein Crawler geöffnet hat.",[994,1126,1127,1130,1131],{},[966,1128,1129],{},"Sende es dorthin, wo deine Analytik ohnehin liegt."," Was auch immer dein\nAnbieter anbietet — ein SDK, das ohnehin auf der Seite liegt, oder eine\neigene Route, damit der Browser des Lesers nie mit einem Dritten spricht,\nden du nicht gewählt hast:",[1005,1132,1134],{"className":1007,"code":1133,"filename":1009,"language":1010,"meta":1011,"style":1011},"export default defineAppConfig({\n  duxt: {\n    analytics: {\n      track(event) {\n        const { name, context, ...properties } = event;\n\n        \u002F\u002F Dein Anbieter, deine Eigenschaftsnamen, deine\n        \u002F\u002F Einwilligungsschranke.\n        window.plausible?.(name, { props: { ...context, ...properties } });\n      }\n    }\n  }\n});\n",[979,1135,1136,1146,1150,1154,1164,1199,1205,1210,1215,1236,1240,1244,1248],{"__ignoreMap":1011},[1015,1137,1138,1140,1142,1144],{"class":1017,"line":1018},[1015,1139,1022],{"class":1021},[1015,1141,1025],{"class":1021},[1015,1143,1029],{"class":1028},[1015,1145,1033],{"class":1032},[1015,1147,1148],{"class":1017,"line":1036},[1015,1149,1039],{"class":1032},[1015,1151,1152],{"class":1017,"line":1042},[1015,1153,1045],{"class":1032},[1015,1155,1156,1158,1160,1162],{"class":1017,"line":1048},[1015,1157,1051],{"class":1028},[1015,1159,1054],{"class":1032},[1015,1161,1058],{"class":1057},[1015,1163,1061],{"class":1032},[1015,1165,1166,1169,1172,1176,1179,1182,1184,1187,1190,1193,1196],{"class":1017,"line":1064},[1015,1167,1168],{"class":1021},"        const",[1015,1170,1171],{"class":1032}," { ",[1015,1173,1175],{"class":1174},"sj4cs","name",[1015,1177,1178],{"class":1032},", ",[1015,1180,1181],{"class":1174},"context",[1015,1183,1178],{"class":1032},[1015,1185,1186],{"class":1021},"...",[1015,1188,1189],{"class":1174},"properties",[1015,1191,1192],{"class":1032}," } ",[1015,1194,1195],{"class":1021},"=",[1015,1197,1198],{"class":1032}," event;\n",[1015,1200,1201],{"class":1017,"line":1071},[1015,1202,1204],{"emptyLinePlaceholder":1203},true,"\n",[1015,1206,1207],{"class":1017,"line":1077},[1015,1208,1209],{"class":1067},"        \u002F\u002F Dein Anbieter, deine Eigenschaftsnamen, deine\n",[1015,1211,1212],{"class":1017,"line":1083},[1015,1213,1214],{"class":1067},"        \u002F\u002F Einwilligungsschranke.\n",[1015,1216,1217,1220,1223,1226,1228,1231,1233],{"class":1017,"line":1095},[1015,1218,1219],{"class":1032},"        window.",[1015,1221,1222],{"class":1028},"plausible",[1015,1224,1225],{"class":1032},"?.(name, { props: { ",[1015,1227,1186],{"class":1021},[1015,1229,1230],{"class":1032},"context, ",[1015,1232,1186],{"class":1021},[1015,1234,1235],{"class":1032},"properties } });\n",[1015,1237,1238],{"class":1017,"line":1101},[1015,1239,1098],{"class":1032},[1015,1241,1242],{"class":1017,"line":1107},[1015,1243,1104],{"class":1032},[1015,1245,1246],{"class":1017,"line":1113},[1015,1247,1110],{"class":1032},[1015,1249,1251],{"class":1017,"line":1250},13,[1015,1252,1116],{"class":1032},[971,1254,1257],{"title":1255,"type":1256},"Die Einwilligung ist deine, nicht duxts","warning",[962,1258,1259,1260,1263,1264,1267],{},"duxt setzt kein Cookie, speichert nichts, puffert nichts und zeigt kein\nEinwilligungsbanner — es hat nichts zu fragen, denn nichts verlässt die Seite\naußer durch deine Funktion. Das heißt auch: ",[966,1261,1262],{},"Die Schranke gehört dir.","\nWenn deine Datenschutzerklärung eine Einwilligung verlangt, bevor das einen\nAnbieter erreicht, prüfe sie in ",[979,1265,1266],{},"track"," und kehre früh zurück.",[991,1269,1270],{"start":1042},[994,1271,1272,1275,1276,1279],{},[966,1273,1274],{},"Wähle die Ereignisse, die du willst, und lass den Rest fallen."," Die Union\nist geschlossen, ein ",[979,1277,1278],{},"switch"," deckt sie also erschöpfend ab, und was du nicht\nnennst, wird schlicht nicht gesendet:",[1005,1281,1283],{"className":1007,"code":1282,"filename":1009,"language":1010,"meta":1011,"style":1011},"track(event) {\n  if (event.name === 'search' && event.results === 0) {\n    \u002F\u002F Der eine Bericht, den eine Dokumentationsseite fast immer will: ein\n    \u002F\u002F Begriff, nach dem jemand gesucht hat und den die Seite nicht\n    \u002F\u002F beantworten konnte.\n    report('docs-search-miss', { query: event.query, ...event.context });\n  }\n}\n",[979,1284,1285,1292,1320,1325,1330,1335,1353,1357],{"__ignoreMap":1011},[1015,1286,1287,1289],{"class":1017,"line":1018},[1015,1288,1266],{"class":1028},[1015,1290,1291],{"class":1032},"(event) {\n",[1015,1293,1294,1297,1300,1303,1307,1310,1313,1315,1318],{"class":1017,"line":1036},[1015,1295,1296],{"class":1021},"  if",[1015,1298,1299],{"class":1032}," (event.name ",[1015,1301,1302],{"class":1021},"===",[1015,1304,1306],{"class":1305},"sZZnC"," 'search'",[1015,1308,1309],{"class":1021}," &&",[1015,1311,1312],{"class":1032}," event.results ",[1015,1314,1302],{"class":1021},[1015,1316,1317],{"class":1174}," 0",[1015,1319,1061],{"class":1032},[1015,1321,1322],{"class":1017,"line":1042},[1015,1323,1324],{"class":1067},"    \u002F\u002F Der eine Bericht, den eine Dokumentationsseite fast immer will: ein\n",[1015,1326,1327],{"class":1017,"line":1048},[1015,1328,1329],{"class":1067},"    \u002F\u002F Begriff, nach dem jemand gesucht hat und den die Seite nicht\n",[1015,1331,1332],{"class":1017,"line":1064},[1015,1333,1334],{"class":1067},"    \u002F\u002F beantworten konnte.\n",[1015,1336,1337,1340,1342,1345,1348,1350],{"class":1017,"line":1071},[1015,1338,1339],{"class":1028},"    report",[1015,1341,1054],{"class":1032},[1015,1343,1344],{"class":1305},"'docs-search-miss'",[1015,1346,1347],{"class":1032},", { query: event.query, ",[1015,1349,1186],{"class":1021},[1015,1351,1352],{"class":1032},"event.context });\n",[1015,1354,1355],{"class":1017,"line":1077},[1015,1356,1110],{"class":1032},[1015,1358,1359],{"class":1017,"line":1083},[1015,1360,1361],{"class":1032},"}\n",[991,1363,1364],{"start":1048},[994,1365,1366,1369],{},[966,1367,1368],{},"Prüfe, dass ein Ereignis ankommt",", mit dem Kontext, den du erwartet hast —\nunter einem Versions- und Locale-Präfix, nicht nur an der nackten URL.",[984,1371,1373],{"id":1372},"die-ereignisse","Die Ereignisse",[962,1375,1376,1377,1379,1380,1382],{},"Jedes Ereignis hat einen ",[979,1378,1175],{},", eigene Felder und einen ",[979,1381,1181],{},".",[1384,1385,1386,1404],"table",{},[1387,1388,1389],"thead",{},[1390,1391,1392,1398,1401],"tr",{},[1393,1394,1396],"th",{"align":1395},"left",[979,1397,1175],{},[1393,1399,1400],{"align":1395},"Wird gesendet, wenn",[1393,1402,1403],{"align":1395},"Trägt",[1405,1406,1407,1429,1452,1476,1506],"tbody",{},[1390,1408,1409,1415,1418],{},[1410,1411,1412],"td",{"align":1395},[979,1413,1414],{},"search",[1410,1416,1417],{"align":1395},"Eine entprellte, nicht leere Suchanfrage zur Ruhe kommt — auch eine, die nichts gefunden hat",[1410,1419,1420,1178,1423,1178,1426],{"align":1395},[979,1421,1422],{},"query",[979,1424,1425],{},"results",[979,1427,1428],{},"approximate",[1390,1430,1431,1436,1439],{},[1410,1432,1433],{"align":1395},[979,1434,1435],{},"search-result",[1410,1437,1438],{"align":1395},"Ein Leser einen Treffer öffnet",[1410,1440,1441,1178,1443,1178,1446,1178,1449],{"align":1395},[979,1442,1422],{},[979,1444,1445],{},"rank",[979,1447,1448],{},"to",[979,1450,1451],{},"collection",[1390,1453,1454,1459,1462],{},[1410,1455,1456],{"align":1395},[979,1457,1458],{},"copy",[1410,1460,1461],{"align":1395},"Ein Codebeispiel der Ebene kopiert wird",[1410,1463,1464,1178,1467,1178,1470,1178,1473],{"align":1395},[979,1465,1466],{},"kind",[979,1468,1469],{},"language",[979,1471,1472],{},"manager",[979,1474,1475],{},"sample",[1390,1477,1478,1483,1486],{},[1410,1479,1480],{"align":1395},[979,1481,1482],{},"api-request",[1410,1484,1485],{"align":1395},"Eine Try-it-Anfrage zur Ruhe kommt",[1410,1487,1488,1178,1491,1178,1494,1178,1497,1178,1500,1178,1503],{"align":1395},[979,1489,1490],{},"operation",[979,1492,1493],{},"method",[979,1495,1496],{},"path",[979,1498,1499],{},"outcome",[979,1501,1502],{},"statusClass",[979,1504,1505],{},"duration",[1390,1507,1508,1513,1516],{},[1410,1509,1510],{"align":1395},[979,1511,1512],{},"feedback",[1410,1514,1515],{"align":1395},"Ein Leser „War diese Seite hilfreich?“ beantwortet",[1410,1517,1518],{"align":1395},[979,1519,1520],{},"helpful",[962,1522,1523,1525,1526,1529],{},[979,1524,1414],{}," feuert ",[966,1527,1528],{},"einmal pro abgeschlossener Suchanfrage",", nicht pro\nTastenanschlag: Die Entprellung verwirft, was niemand zu Ende getippt hat, und\nein Ergebnis, das ein neueres ablöst, wird nie gemeldet, weil der Leser es nie\ngesehen hat.",[962,1531,1532,1534,1535,1538,1539,1542,1543,1545,1546,1549],{},[979,1533,1458],{}," deckt die eigenen Codebeispiele der Ebene ab — einen Codeblock, einen\n",[979,1536,1537],{},"::code-group","-Block, einen ",[979,1540,1541],{},"::package-managers","-Block, ein Request-Sample im\nTry-it-Client — und ",[979,1544,1466],{}," sagt, welches davon. ",[966,1547,1548],{},"„Seite als Markdown kopieren“\ngehört nicht zu dieser Familie"," und sendet nichts: Es ist die Seite, kein\nBeispiel darin.",[962,1551,1552,1554,1555,1558,1559,1561,1562,1565],{},[979,1553,1482],{}," beschreibt die Operation ",[966,1556,1557],{},"so, wie das OpenAPI-Dokument sie\ndeklariert",". ",[979,1560,1496],{}," ist die Vorlage (",[979,1563,1564],{},"\u002Fpets\u002F{id}","), nie die URL, die aufgerufen\nwurde.",[1567,1568,1570],"h3",{"id":1569},"der-kontext","Der Kontext",[1384,1572,1573,1582],{},[1387,1574,1575],{},[1390,1576,1577,1579],{},[1393,1578,409],{"align":1395},[1393,1580,1581],{"align":1395},"Hinweise",[1405,1583,1584,1593,1603,1613],{},[1390,1585,1586,1590],{},[1410,1587,1588],{"align":1395},[979,1589,1496],{},[1410,1591,1592],{"align":1395},"Der Dokumentationspfad, ohne Locale-Präfix, Query-String oder Fragment",[1390,1594,1595,1600],{},[1410,1596,1597],{"align":1395},[979,1598,1599],{},"locale",[1410,1601,1602],{"align":1395},"Die Locale, in der die Seite gelesen wurde",[1390,1604,1605,1610],{},[1410,1606,1607],{"align":1395},[979,1608,1609],{},"source",[1410,1611,1612],{"align":1395},"Aus welcher Quelle die Seite stammt — fehlt auf einer Seite mit nur einer Quelle",[1390,1614,1615,1620],{},[1410,1616,1617],{"align":1395},[979,1618,1619],{},"version",[1410,1621,1622],{"align":1395},"Welche Version — fehlt, wo die Quelle nur eine hat",[984,1624,1626],{"id":1625},"was-nie-gesendet-wird","Was nie gesendet wird",[962,1628,1629],{},"Diese Liste ist der Sinn der Funktion, deshalb lohnt es sich, sie deutlich\nauszusprechen. Kein Ereignis trägt:",[1631,1632,1633,1636,1639,1642,1645,1648],"ul",{},[994,1634,1635],{},"ein API-Credential, einen Header oder ein Token;",[994,1637,1638],{},"einen Request- oder Response-Body oder eine konkrete Request-URL;",[994,1640,1641],{},"den Text, der kopiert wurde;",[994,1643,1644],{},"den gerenderten Inhalt eines Suchtreffers;",[994,1646,1647],{},"irgendeine Browser-, Sitzungs- oder Leserkennung;",[994,1649,1650],{},"den Query-String oder das Fragment aus dem Pfad der Seite selbst.",[962,1652,1653,1654,1657],{},"duxt ",[966,1655,1656],{},"überträgt, puffert und speichert"," auch selbst nie etwas. Es gibt in der\nEbene keine Warteschlange, keinen Wiederholungsversuch, keinen Speicher und\nkeinen Netzwerkaufruf: Deine Funktion ist das Einzige, was die Seite je\nverlässt.",[962,1659,1660],{},"Deine Callback-Funktion wird nie abgewartet, und was sie wirft oder womit sie\nablehnt, wird verschluckt — ein Anbieter, der ausfällt, darf nicht die Suche,\ndas Kopieren, das Feedback oder die Anfrage mit sich reißen.",[984,1662,1664],{"id":1663},"seiten-feedback-so-oder-so","Seiten-Feedback, so oder so",[962,1666,1667,1669,1670,1672,1673,1676,1677,1681],{},[979,1668,1512],{}," ist dieselbe Antwort, die ",[979,1671,560],{}," schon immer gesendet\nhat. Das ",[979,1674,1675],{},"@feedback","-Ereignis der Komponente und ihr Standard-Slot sind\nunverändert, ",[1678,1679,1680],"a",{"href":167},"sie zu umhüllen"," funktioniert also\nweiterhin, und keiner der beiden Wege braucht den anderen — nimm das\nAnalytik-Callback, wenn du ein Ziel für alles willst, und die Hülle, wenn das\nFeedback allein irgendwo eigenes landen soll.",[984,1683,1685],{"id":1684},"checkliste","Checkliste",[1631,1687,1690,1702,1708,1717,1723],{"className":1688},[1689],"contains-task-list",[994,1691,1694,1698,1699,1701],{"className":1692},[1693],"task-list-item",[1695,1696],"input",{"disabled":1203,"type":1697},"checkbox"," ",[979,1700,981],{}," ist gesetzt, und mehr war nicht nötig, um es\neinzuschalten",[994,1703,1705,1707],{"className":1704},[1693],[1695,1706],{"disabled":1203,"type":1697}," Das Ziel gehört dir — ein Anbieter deiner Wahl oder eine eigene Route",[994,1709,1711,1713,1714,1716],{"className":1710},[1693],[1695,1712],{"disabled":1203,"type":1697}," Die Einwilligung wird in ",[979,1715,1266],{}," geprüft, falls deine Richtlinie danach\nfragt",[994,1718,1720,1722],{"className":1719},[1693],[1695,1721],{"disabled":1203,"type":1697}," Ein Ereignis kam mit dem Pfad, der Locale, der Quelle und der Version an,\ndie du erwartet hast",[994,1724,1726,1728],{"className":1725},[1693],[1695,1727],{"disabled":1203,"type":1697}," Nichts in dem, was du weiterleitest, identifiziert den Leser",[1730,1731,1732],"style",{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}",{"title":1011,"searchDepth":1036,"depth":1064,"links":1734},[1735,1736,1739,1740,1741],{"id":986,"depth":1036,"text":368},{"id":1372,"depth":1036,"text":1373,"children":1737},[1738],{"id":1569,"depth":1042,"text":1570},{"id":1625,"depth":1036,"text":1626},{"id":1663,"depth":1036,"text":1664},{"id":1684,"depth":1036,"text":1685},"md",{},"---\ntitle: Analytik-Ereignisse senden\ndescription: Ein Callback, fünf Ereignisse, kein Anbieter — verdrahte duxts Leserinteraktionen mit der Analytik, die du ohnehin betreibst.\nicon: lucide:chart-line\n---\n\nduxt meldet, was Leser mit einer Dokumentationsseite tun — suchen, einen Befehl\nkopieren, einen Endpoint ausprobieren, „War diese Seite hilfreich?“ beantworten\n— an **eine einzige Funktion, die du schreibst**. Sie liefert keinen Anbieter,\nkein SDK und kein Skript aus, und eine Seite, die diese Funktion nicht\ngeschrieben hat, meldet nichts und lädt nichts zusätzlich herunter.\n\n::callout{type=\"info\" title=\"Aus, bis du es einschaltest\"}\nEs gibt kein Standardziel, denn eine Dokumentationsebene kann keines für die\nLeser eines anderen aussuchen. Ohne `duxt.analytics.track` erreicht jede\nAufrufstelle unten eine fehlende Funktion und hält an.\n::\n\n## Schritte\n\n::steps\n\n1. **Schreibe die Callback-Funktion.** Sie lebt in `app.config.ts`, neben dem\n   Rest deiner duxt-Konfiguration, und bekommt ein Ereignis pro Interaktion\n   übergeben:\n\n   ```ts [app\u002Fapp.config.ts]\n   export default defineAppConfig({\n     duxt: {\n       analytics: {\n         track(event) {\n           \u002F\u002F `event.name` ist der Diskriminator; `event.context` sagt, auf\n           \u002F\u002F welcher Seite, in welcher Locale, aus welcher Quelle und in\n           \u002F\u002F welcher Version es passiert ist.\n           console.log(event.name, event.context.path);\n         }\n       }\n     }\n   });\n   ```\n\n   Die Callback-Funktion läuft **nur im Browser**. Ein Build und ein\n   Vorab-Rendering rufen sie nie auf, ein statisches Rendering füllt deine\n   Analytik also nicht mit Seiten, die ein Crawler geöffnet hat.\n\n2. **Sende es dorthin, wo deine Analytik ohnehin liegt.** Was auch immer dein\n   Anbieter anbietet — ein SDK, das ohnehin auf der Seite liegt, oder eine\n   eigene Route, damit der Browser des Lesers nie mit einem Dritten spricht,\n   den du nicht gewählt hast:\n\n   ```ts [app\u002Fapp.config.ts]\n   export default defineAppConfig({\n     duxt: {\n       analytics: {\n         track(event) {\n           const { name, context, ...properties } = event;\n\n           \u002F\u002F Dein Anbieter, deine Eigenschaftsnamen, deine\n           \u002F\u002F Einwilligungsschranke.\n           window.plausible?.(name, { props: { ...context, ...properties } });\n         }\n       }\n     }\n   });\n   ```\n\n   ::callout{type=\"warning\" title=\"Die Einwilligung ist deine, nicht duxts\"}\n   duxt setzt kein Cookie, speichert nichts, puffert nichts und zeigt kein\n   Einwilligungsbanner — es hat nichts zu fragen, denn nichts verlässt die Seite\n   außer durch deine Funktion. Das heißt auch: **Die Schranke gehört dir.**\n   Wenn deine Datenschutzerklärung eine Einwilligung verlangt, bevor das einen\n   Anbieter erreicht, prüfe sie in `track` und kehre früh zurück.\n   ::\n\n3. **Wähle die Ereignisse, die du willst, und lass den Rest fallen.** Die Union\n   ist geschlossen, ein `switch` deckt sie also erschöpfend ab, und was du nicht\n   nennst, wird schlicht nicht gesendet:\n\n   ```ts [app\u002Fapp.config.ts]\n   track(event) {\n     if (event.name === 'search' && event.results === 0) {\n       \u002F\u002F Der eine Bericht, den eine Dokumentationsseite fast immer will: ein\n       \u002F\u002F Begriff, nach dem jemand gesucht hat und den die Seite nicht\n       \u002F\u002F beantworten konnte.\n       report('docs-search-miss', { query: event.query, ...event.context });\n     }\n   }\n   ```\n\n4. **Prüfe, dass ein Ereignis ankommt**, mit dem Kontext, den du erwartet hast —\n   unter einem Versions- und Locale-Präfix, nicht nur an der nackten URL.\n\n::\n\n## Die Ereignisse\n\nJedes Ereignis hat einen `name`, eigene Felder und einen `context`.\n\n| `name` | Wird gesendet, wenn | Trägt |\n| :--- | :--- | :--- |\n| `search` | Eine entprellte, nicht leere Suchanfrage zur Ruhe kommt — auch eine, die nichts gefunden hat | `query`, `results`, `approximate` |\n| `search-result` | Ein Leser einen Treffer öffnet | `query`, `rank`, `to`, `collection` |\n| `copy` | Ein Codebeispiel der Ebene kopiert wird | `kind`, `language`, `manager`, `sample` |\n| `api-request` | Eine Try-it-Anfrage zur Ruhe kommt | `operation`, `method`, `path`, `outcome`, `statusClass`, `duration` |\n| `feedback` | Ein Leser „War diese Seite hilfreich?“ beantwortet | `helpful` |\n\n`search` feuert **einmal pro abgeschlossener Suchanfrage**, nicht pro\nTastenanschlag: Die Entprellung verwirft, was niemand zu Ende getippt hat, und\nein Ergebnis, das ein neueres ablöst, wird nie gemeldet, weil der Leser es nie\ngesehen hat.\n\n`copy` deckt die eigenen Codebeispiele der Ebene ab — einen Codeblock, einen\n`::code-group`-Block, einen `::package-managers`-Block, ein Request-Sample im\nTry-it-Client — und `kind` sagt, welches davon. **„Seite als Markdown kopieren“\ngehört nicht zu dieser Familie** und sendet nichts: Es ist die Seite, kein\nBeispiel darin.\n\n`api-request` beschreibt die Operation **so, wie das OpenAPI-Dokument sie\ndeklariert**. `path` ist die Vorlage (`\u002Fpets\u002F{id}`), nie die URL, die aufgerufen\nwurde.\n\n### Der Kontext\n\n| Feld | Hinweise |\n| :--- | :--- |\n| `path` | Der Dokumentationspfad, ohne Locale-Präfix, Query-String oder Fragment |\n| `locale` | Die Locale, in der die Seite gelesen wurde |\n| `source` | Aus welcher Quelle die Seite stammt — fehlt auf einer Seite mit nur einer Quelle |\n| `version` | Welche Version — fehlt, wo die Quelle nur eine hat |\n\n## Was nie gesendet wird\n\nDiese Liste ist der Sinn der Funktion, deshalb lohnt es sich, sie deutlich\nauszusprechen. Kein Ereignis trägt:\n\n- ein API-Credential, einen Header oder ein Token;\n- einen Request- oder Response-Body oder eine konkrete Request-URL;\n- den Text, der kopiert wurde;\n- den gerenderten Inhalt eines Suchtreffers;\n- irgendeine Browser-, Sitzungs- oder Leserkennung;\n- den Query-String oder das Fragment aus dem Pfad der Seite selbst.\n\nduxt **überträgt, puffert und speichert** auch selbst nie etwas. Es gibt in der\nEbene keine Warteschlange, keinen Wiederholungsversuch, keinen Speicher und\nkeinen Netzwerkaufruf: Deine Funktion ist das Einzige, was die Seite je\nverlässt.\n\nDeine Callback-Funktion wird nie abgewartet, und was sie wirft oder womit sie\nablehnt, wird verschluckt — ein Anbieter, der ausfällt, darf nicht die Suche,\ndas Kopieren, das Feedback oder die Anfrage mit sich reißen.\n\n## Seiten-Feedback, so oder so\n\n`feedback` ist dieselbe Antwort, die `DuxtPageFeedback` schon immer gesendet\nhat. Das `@feedback`-Ereignis der Komponente und ihr Standard-Slot sind\nunverändert, [sie zu umhüllen](\u002Fguides\u002Fcollect-page-feedback) funktioniert also\nweiterhin, und keiner der beiden Wege braucht den anderen — nimm das\nAnalytik-Callback, wenn du ein Ziel für alles willst, und die Hülle, wenn das\nFeedback allein irgendwo eigenes landen soll.\n\n## Checkliste\n\n- [ ] `duxt.analytics.track` ist gesetzt, und mehr war nicht nötig, um es\n      einzuschalten\n- [ ] Das Ziel gehört dir — ein Anbieter deiner Wahl oder eine eigene Route\n- [ ] Die Einwilligung wird in `track` geprüft, falls deine Richtlinie danach\n      fragt\n- [ ] Ein Ereignis kam mit dem Pfad, der Locale, der Quelle und der Version an,\n      die du erwartet hast\n- [ ] Nichts in dem, was du weiterleitest, identifiziert den Leser\n",{"title":178,"description":182},{"loc":179},"L5NZYtRlNnuHusNPr6xPGKorP45t7rkCTdO-n2psJvI","de","de-DE",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":1751},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"13\" r=\"2\"\u002F>\u003Cpath d=\"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Zm-6-7h3M7 13h3\"\u002F>\u003C\u002Fg>",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":1753},"\u003Cpath fill=\"currentColor\" d=\"M1.44 0v7.575l6.561 3.79V3.787zm21.12 4.227l-6.561 3.791v7.574l6.56-3.787zM8.72 4.23v7.575l6.561 3.787V8.018zm0 8.405v7.575L15.28 24v-7.578z\"\u002F>",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":1755},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cellipse cx=\"12\" cy=\"5\" rx=\"9\" ry=\"3\"\u002F>\u003Cpath d=\"M3 5v14a9 3 0 0 0 12 2.84M21 5v3m0 4l-3 5h4l-3 5\"\u002F>\u003Cpath d=\"M3 12a9 3 0 0 0 11.59 2.87\"\u002F>\u003C\u002Fg>",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":1757},"\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":1759},"\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":1761},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M12 13v8m-8-6.101A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242\"\u002F>\u003Cpath d=\"m8 17l4-4l4 4\"\u002F>\u003C\u002Fg>",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":1763},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M3.85 8.62a4 4 0 0 1 4.78-4.77a4 4 0 0 1 6.74 0a4 4 0 0 1 4.78 4.78a4 4 0 0 1 0 6.74a4 4 0 0 1-4.77 4.78a4 4 0 0 1-6.75 0a4 4 0 0 1-4.78-4.77a4 4 0 0 1 0-6.76\"\u002F>\u003Cpath d=\"m16 9l-5.5 5.5L8 12\"\u002F>\u003C\u002Fg>",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":1765},"\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":1767},"\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":1769},"\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":1771},"\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":1773},"\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":1775},"\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":1777},"\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":1779},"\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":1781},"\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":1783},"\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":1785},"\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":1787},"\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":1789},"\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":1791},"\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":1793,"hidden":1203},"\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":1795},"\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 16v-4m0-4h.01\"\u002F>\u003C\u002Fg>",{"left":943,"top":943,"width":944,"height":944,"rotate":943,"vFlip":945,"hFlip":945,"body":1797},"\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":1799},"\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":1801},"\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":1803},"\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":1805},"\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":1807},"\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":1809},"\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":1811},"\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>",[1813,1814,1815],"\u002Fv0.3.4\u002Fguides\u002Fsend-analytics-events","\u002Fv0.2.0\u002Fguides\u002Fsend-analytics-events","\u002Fv0.1.0\u002Fguides\u002Fsend-analytics-events",{"left":943,"top":943,"width":1817,"height":1818,"rotate":943,"vFlip":945,"hFlip":945,"body":1819},640,480,"\u003Cpath fill=\"#fc0\" d=\"M0 320h640v160H0z\"\u002F>\u003Cpath fill=\"#000001\" d=\"M0 0h640v160H0z\"\u002F>\u003Cpath fill=\"red\" d=\"M0 160h640v160H0z\"\u002F>",1792683295301]