[{"data":1,"prerenderedAt":2274},["ShallowReactive",2],{"duxt-navigation-docs-docs":3,"i-lucide:rocket":832,"i-lucide:compass":837,"i-lucide:book-open":839,"i-lucide:ruler":841,"i-lucide:gavel":843,"i-lucide:list":845,"i-lucide:settings":847,"i-lucide:tag":849,"i-lucide:git-branch":851,"i-lucide:file-code":853,"i-lucide:blocks":855,"i-lucide:component":857,"i-lucide:function-square":859,"i-lucide:route":861,"i-lucide:wrench":863,"i-lucide:plug":865,"i-lucide:chevron-right":867,"i-lucide:menu":869,"i-lucide:chevron-down":871,"i-lucide:search":873,"i-simple-icons:github":875,"i-flag:us-4x3":877,"i-lucide:moon":881,"docs-en-US-\u002Freference\u002Fconfiguration":883,"i-lucide:copy":2250,"i-lucide:thumbs-up":2252,"i-lucide:thumbs-down":2254,"i-lucide:star":2256,"i-lucide:circle-alert":2258,"i-simple-icons:discord":2260,"i-lucide:book-open-text":2262,"i-lucide:arrow-up-right":2264,"i-lucide:pencil":2266,"duxt-code-ts-badge: {\n  label: '{version} released',\n  icon: 'lucide:rocket',\n  variant: 'success',\n  to: 'https:\u002F\u002Fgithub.com\u002Facme\u002Fsdk\u002Freleases\u002Flatest',\n  external: true\n}\n":784,"duxt-code-ts-feed: { path: '\u002Fchangelog', title: 'my project — releases' }\n":784,"i-lucide:lightbulb":2268,"i-lucide:arrow-left":2270,"i-lucide:arrow-right":2272},[4,25,94,148,743,751,771,826],{"title":5,"path":6,"stem":7,"children":8},"Introduction","\u002Fgetting-started","1.getting-started",[9,13,19],{"title":5,"path":6,"stem":10,"icon":11,"description":12},"1.getting-started\u002Findex","lucide:rocket","What duxt is, and what arrives with a single line of config.",{"title":14,"path":15,"stem":16,"icon":17,"description":18},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F1.installation","lucide:download","Add the layer, extend it, write Markdown.",{"title":20,"path":21,"stem":22,"icon":23,"description":24},"Configuration","\u002Fgetting-started\u002Fconfiguration","1.getting-started\u002F2.configuration","lucide:settings","One file configures the whole site — what belongs in it, and how it merges.",{"title":26,"path":27,"stem":28,"children":29},"Concepts","\u002Fconcepts","2.concepts",[30,34,40,46,52,58,64,70,76,82,88],{"title":26,"path":27,"stem":31,"icon":32,"description":33},"2.concepts\u002Findex","lucide:compass","How the layer works — the sources model, the URL scheme, the collections and the checks.",{"title":35,"path":36,"stem":37,"icon":38,"description":39},"Layers and overriding","\u002Fconcepts\u002Flayers","2.concepts\u002F1.layers","lucide:layers","What a Nuxt layer gives you, what it takes away, and which paths do not resolve the way they read.",{"title":41,"path":42,"stem":43,"icon":44,"description":45},"Theming","\u002Fconcepts\u002Ftheming","2.concepts\u002F10.theming","lucide:palette","How the theme is put together — owned components, one token layer, and a dark mode that switches on a class.",{"title":47,"path":48,"stem":49,"icon":50,"description":51},"Sources","\u002Fconcepts\u002Fsources","2.concepts\u002F2.sources","lucide:git-branch","One list of sources becomes every collection, prefix and version the site serves.",{"title":53,"path":54,"stem":55,"icon":56,"description":57},"URLs and versions","\u002Fconcepts\u002Furls-and-versions","2.concepts\u002F3.urls-and-versions","lucide:git-compare","How the repository and version segments appear, and what a reader in an old version is told.",{"title":59,"path":60,"stem":61,"icon":62,"description":63},"Collections","\u002Fconcepts\u002Fcollections","2.concepts\u002F4.collections","lucide:database","What Content builds from the sources, and the four things the schema adds.",{"title":65,"path":66,"stem":67,"icon":68,"description":69},"Generated sections","\u002Fconcepts\u002Fgenerated-sections","2.concepts\u002F5.generated-sections","lucide:file-cog","An artefact plus a type, published as pages — what the registry is, and the two policies a type answers.",{"title":71,"path":72,"stem":73,"icon":74,"description":75},"What the build checks","\u002Fconcepts\u002Fbuild-checks","2.concepts\u002F6.build-checks","lucide:shield-check","The silent failures this layer had, turned into messages.",{"title":77,"path":78,"stem":79,"icon":80,"description":81},"Machine readers","\u002Fconcepts\u002Fmachine-readers","2.concepts\u002F7.machine-readers","lucide:bot","What a model gets — llms.txt, the raw Markdown of any page, and a real MCP server.",{"title":83,"path":84,"stem":85,"icon":86,"description":87},"SEO","\u002Fconcepts\u002Fseo","2.concepts\u002F8.seo","lucide:search","What every page emits for crawlers and social cards, which module writes it, and the one value the layer cannot guess.",{"title":89,"path":90,"stem":91,"icon":92,"description":93},"Localisation","\u002Fconcepts\u002Flocalisation","2.concepts\u002F9.localisation","lucide:languages","Seven locales ship with the layer, and every configured string takes three forms.",{"title":95,"path":96,"stem":97,"children":98},"Guides","\u002Fguides","3.guides",[99,103,109,114,119,124,130,136,142],{"title":95,"path":96,"stem":100,"icon":101,"description":102},"3.guides\u002Findex","lucide:book-open","One task per page, start to finish — several repositories, several versions, several languages, and a deploy.",{"title":104,"path":105,"stem":106,"icon":107,"description":108},"Several repositories","\u002Fguides\u002Fseveral-repositories","3.guides\u002F1.several-repositories","lucide:folder-git","Serve the documentation of several projects from one site.",{"title":110,"path":111,"stem":112,"icon":56,"description":113},"Several versions","\u002Fguides\u002Fseveral-versions","3.guides\u002F2.several-versions","Serve the same documentation at several refs, with a switcher and a banner.",{"title":115,"path":116,"stem":117,"icon":92,"description":118},"Several languages","\u002Fguides\u002Fseveral-languages","3.guides\u002F3.several-languages","Serve the interface in several languages, and translate the pages themselves.",{"title":120,"path":121,"stem":122,"icon":44,"description":123},"Override the theme","\u002Fguides\u002Foverride-the-theme","3.guides\u002F4.override-the-theme","Change a colour, replace a component, add a shadcn-vue primitive.",{"title":125,"path":126,"stem":127,"icon":128,"description":129},"Move a page","\u002Fguides\u002Fmove-a-page","3.guides\u002F5.move-a-page","lucide:signpost","redirectFrom in the frontmatter, turned into route rules under every prefix.",{"title":131,"path":132,"stem":133,"icon":134,"description":135},"Deploy a site","\u002Fguides\u002Fdeploy-a-site","3.guides\u002F6.deploy-a-site","lucide:cloud-upload","Where a duxt site can run, what it needs there, and why content is not refreshed at runtime.",{"title":137,"path":138,"stem":139,"icon":140,"description":141},"Collect page feedback","\u002Fguides\u002Fcollect-page-feedback","3.guides\u002F7.collect-page-feedback","lucide:thumbs-up","Wrap DuxtPageFeedback, keep the answer where your analytics already live.",{"title":143,"path":144,"stem":145,"icon":146,"description":147},"Brand your site","\u002Fguides\u002Fbrand-your-site","3.guides\u002F8.brand-your-site","lucide:badge-check","Set the name, the wordmark and the icons, so the site reads as yours rather than as the layer's.",{"title":149,"path":150,"stem":151,"children":152},"Reference","\u002Freference","4.reference",[153,157,161,193,197,203,343,490,611,656,716],{"title":149,"path":150,"stem":154,"icon":155,"description":156},"4.reference\u002Findex","lucide:list","The layer's public surface — config keys, frontmatter, components, composables and endpoints.",{"title":20,"path":158,"stem":159,"icon":23,"description":160},"\u002Freference\u002Fconfiguration","4.reference\u002F1.configuration","Every key under duxt in app.config.ts — what it controls, and when it is read.",{"title":162,"path":163,"stem":164,"children":165,"icon":167,"description":168},"Changelog","\u002Freference\u002Fchangelog","4.reference\u002F10.changelog\u002Findex",[166,169,175,181,187],{"title":162,"path":163,"stem":164,"icon":167,"description":168},"lucide:tag","A release log, published as pages — a timeline, a page per release, and a feed.",{"title":170,"path":171,"stem":172,"icon":173,"description":174},"Declaring the section","\u002Freference\u002Fchangelog\u002Fsection","4.reference\u002F10.changelog\u002F1.section","lucide:file-clock","The `changelog` section type — where the file lives, and the two policies it answers.",{"title":176,"path":177,"stem":178,"icon":179,"description":180},"Granularity","\u002Freference\u002Fchangelog\u002Fgranularity","4.reference\u002F10.changelog\u002F2.granularity","lucide:split","A page per release, or the file as the one page it was written as.",{"title":182,"path":183,"stem":184,"icon":185,"description":186},"What is read","\u002Freference\u002Fchangelog\u002Fwhat-is-read","4.reference\u002F10.changelog\u002F3.what-is-read","lucide:scan-text","Which headings become releases, which become groups, and what happens to the rest.",{"title":188,"path":189,"stem":190,"icon":191,"description":192},"Layout and components","\u002Freference\u002Fchangelog\u002Fcomponents","4.reference\u002F10.changelog\u002F4.components","lucide:box","The layout a split history renders in, and the two MDC components its pages are made of.",{"title":47,"path":194,"stem":195,"icon":50,"description":196},"\u002Freference\u002Fsources","4.reference\u002F2.sources","The fields of a source entry, its refs, and the options that shape the URLs.",{"title":198,"path":199,"stem":200,"icon":201,"description":202},"Frontmatter","\u002Freference\u002Ffrontmatter","4.reference\u002F3.frontmatter","lucide:file-code","The fields a page may carry beyond title and description, and the two the build fills in.",{"title":204,"path":205,"stem":206,"children":207,"icon":209,"description":210},"MDC components","\u002Freference\u002Fmdc-components","4.reference\u002F4.mdc-components\u002Findex",[208,211,217,223,229,235,241,247,253,259,297,303,308,314,320,326,332,338],{"title":204,"path":205,"stem":206,"icon":209,"description":210},"lucide:blocks","The blocks a Markdown page can call, one page each, with their props.",{"title":212,"path":213,"stem":214,"icon":215,"description":216},"Callout","\u002Freference\u002Fmdc-components\u002Fcallout","4.reference\u002F4.mdc-components\u002F1.callout","lucide:message-square-warning","An aside the reader is meant to stop at — a tip, a warning, a danger.",{"title":218,"path":219,"stem":220,"icon":221,"description":222},"Package managers","\u002Freference\u002Fmdc-components\u002Fpackage-managers","4.reference\u002F4.mdc-components\u002F10.package-managers","lucide:package","One command, one tab per package manager, remembered across pages.",{"title":224,"path":225,"stem":226,"icon":227,"description":228},"File tree","\u002Freference\u002Fmdc-components\u002Ffile-tree","4.reference\u002F4.mdc-components\u002F11.file-tree","lucide:folder-tree","A folder structure, with icons per file type.",{"title":230,"path":231,"stem":232,"icon":233,"description":234},"Preview","\u002Freference\u002Fmdc-components\u002Fpreview","4.reference\u002F4.mdc-components\u002F12.preview","lucide:eye","A component rendered as the page renders it, with its source beside it.",{"title":236,"path":237,"stem":238,"icon":239,"description":240},"Page cards","\u002Freference\u002Fmdc-components\u002Fpage-cards","4.reference\u002F4.mdc-components\u002F13.page-cards","lucide:layout-grid","A section's children, as cards.",{"title":242,"path":243,"stem":244,"icon":245,"description":246},"Partial","\u002Freference\u002Fmdc-components\u002Fpartial","4.reference\u002F4.mdc-components\u002F14.partial","lucide:puzzle","A block written once and rendered in every source that needs it.",{"title":248,"path":249,"stem":250,"icon":251,"description":252},"Since","\u002Freference\u002Fmdc-components\u002Fsince","4.reference\u002F4.mdc-components\u002F15.since","lucide:milestone","The version something arrived in, beside a heading.",{"title":254,"path":255,"stem":256,"icon":257,"description":258},"Mermaid","\u002Freference\u002Fmdc-components\u002Fmermaid","4.reference\u002F4.mdc-components\u002F16.mermaid","lucide:workflow","A diagram from a fence or a prop.",{"title":260,"path":261,"stem":262,"children":263,"icon":265,"description":266},"Prose overrides","\u002Freference\u002Fmdc-components\u002Fprose","4.reference\u002F4.mdc-components\u002F17.prose\u002Findex",[264,267,273,279,285,291],{"title":260,"path":261,"stem":262,"icon":265,"description":266},"lucide:type","What the layer changes about plain Markdown — links, headings, images, code and tables.",{"title":268,"path":269,"stem":270,"icon":271,"description":272},"ProseA","\u002Freference\u002Fmdc-components\u002Fprose\u002Fprose-a","4.reference\u002F4.mdc-components\u002F17.prose\u002F1.prose-a","lucide:link","A link, resolved against the source it was written in.",{"title":274,"path":275,"stem":276,"icon":277,"description":278},"ProseH2, ProseH3, ProseH4","\u002Freference\u002Fmdc-components\u002Fprose\u002Fprose-headings","4.reference\u002F4.mdc-components\u002F17.prose\u002F2.prose-headings","lucide:heading","Headings, each with a permalink anchor.",{"title":280,"path":281,"stem":282,"icon":283,"description":284},"ProseImg","\u002Freference\u002Fmdc-components\u002Fprose\u002Fprose-img","4.reference\u002F4.mdc-components\u002F17.prose\u002F3.prose-img","lucide:image","An image: theme-aware, and zoomable.",{"title":286,"path":287,"stem":288,"icon":289,"description":290},"ProsePre","\u002Freference\u002Fmdc-components\u002Fprose\u002Fprose-pre","4.reference\u002F4.mdc-components\u002F17.prose\u002F4.prose-pre","lucide:terminal","The code block: filename, language icon, copy button.",{"title":292,"path":293,"stem":294,"icon":295,"description":296},"ProseTable","\u002Freference\u002Fmdc-components\u002Fprose\u002Fprose-table","4.reference\u002F4.mdc-components\u002F17.prose\u002F5.prose-table","lucide:table","A table that scrolls instead of the page.",{"title":298,"path":299,"stem":300,"icon":301,"description":302},"Steps","\u002Freference\u002Fmdc-components\u002Fsteps","4.reference\u002F4.mdc-components\u002F2.steps","lucide:list-ordered","An ordered list drawn as numbered steps on a rail.",{"title":304,"path":305,"stem":306,"icon":201,"description":307},"Code group","\u002Freference\u002Fmdc-components\u002Fcode-group","4.reference\u002F4.mdc-components\u002F3.code-group","Several fences as one tabbed block, labelled by filename.",{"title":309,"path":310,"stem":311,"icon":312,"description":313},"Tab group","\u002Freference\u002Fmdc-components\u002Ftab-group","4.reference\u002F4.mdc-components\u002F4.tab-group","lucide:panels-top-left","Tabs for anything that is not code.",{"title":315,"path":316,"stem":317,"icon":318,"description":319},"Tab","\u002Freference\u002Fmdc-components\u002Ftab","4.reference\u002F4.mdc-components\u002F5.tab","lucide:square","One panel of a tab group.",{"title":321,"path":322,"stem":323,"icon":324,"description":325},"Accordion","\u002Freference\u002Fmdc-components\u002Faccordion","4.reference\u002F4.mdc-components\u002F6.accordion","lucide:chevrons-up-down","Collapsible sections — a FAQ, or answers a reader picks from.",{"title":327,"path":328,"stem":329,"icon":330,"description":331},"Accordion item","\u002Freference\u002Fmdc-components\u002Faccordion-item","4.reference\u002F4.mdc-components\u002F7.accordion-item","lucide:chevron-down","One collapsible section.",{"title":333,"path":334,"stem":335,"icon":336,"description":337},"Field group","\u002Freference\u002Fmdc-components\u002Ffield-group","4.reference\u002F4.mdc-components\u002F8.field-group","lucide:list-tree","A list of fields as one block.",{"title":339,"path":340,"stem":341,"icon":167,"description":342},"Field","\u002Freference\u002Fmdc-components\u002Ffield","4.reference\u002F4.mdc-components\u002F9.field","One parameter, property or option, with its type and default.",{"title":344,"path":345,"stem":346,"children":347,"icon":349,"description":350},"Components","\u002Freference\u002Fcomponents","4.reference\u002F5.components\u002Findex",[348,351,371,412,459],{"title":344,"path":345,"stem":346,"icon":349,"description":350},"lucide:component","The layer's own components, one page each — what each is for, and what it takes.",{"title":352,"path":353,"stem":354,"children":355,"icon":357,"description":358},"Layout","\u002Freference\u002Fcomponents\u002Flayout","4.reference\u002F5.components\u002F1.layout\u002Findex",[356,359,365],{"title":352,"path":353,"stem":354,"icon":357,"description":358},"lucide:layout-panel-top","The two components that frame a page — the navbar and the footer.",{"title":360,"path":361,"stem":362,"icon":363,"description":364},"DuxtHeader","\u002Freference\u002Fcomponents\u002Flayout\u002Fduxt-header","4.reference\u002F5.components\u002F1.layout\u002F1.duxt-header","lucide:panel-top","The navbar: title, navigation, search, and the icon links.",{"title":366,"path":367,"stem":368,"icon":369,"description":370},"DuxtFooter","\u002Freference\u002Fcomponents\u002Flayout\u002Fduxt-footer","4.reference\u002F5.components\u002F1.layout\u002F2.duxt-footer","lucide:panel-bottom","The footer: the site's name, its legal links, and the layer's own line.",{"title":372,"path":373,"stem":374,"children":375,"icon":32,"description":377},"Navigation","\u002Freference\u002Fcomponents\u002Fnavigation","4.reference\u002F5.components\u002F2.navigation\u002Findex",[376,378,384,389,395,401,406],{"title":372,"path":373,"stem":374,"icon":32,"description":377},"Getting around — the section row, the sidebar, the trail, the contents and prev\u002Fnext.",{"title":379,"path":380,"stem":381,"icon":382,"description":383},"DuxtSections","\u002Freference\u002Fcomponents\u002Fnavigation\u002Fduxt-sections","4.reference\u002F5.components\u002F2.navigation\u002F1.duxt-sections","lucide:rows-3","The second navbar row — the top-level parts of the documentation.",{"title":385,"path":386,"stem":387,"icon":336,"description":388},"DuxtNavigation","\u002Freference\u002Fcomponents\u002Fnavigation\u002Fduxt-navigation","4.reference\u002F5.components\u002F2.navigation\u002F2.duxt-navigation","The sidebar tree.",{"title":390,"path":391,"stem":392,"icon":393,"description":394},"DuxtNavigationLink","\u002Freference\u002Fcomponents\u002Fnavigation\u002Fduxt-navigation-link","4.reference\u002F5.components\u002F2.navigation\u002F3.duxt-navigation-link","lucide:link-2","One entry of the sidebar.",{"title":396,"path":397,"stem":398,"icon":399,"description":400},"DuxtBreadcrumb","\u002Freference\u002Fcomponents\u002Fnavigation\u002Fduxt-breadcrumb","4.reference\u002F5.components\u002F2.navigation\u002F4.duxt-breadcrumb","lucide:chevrons-right","The trail above the page title.",{"title":402,"path":403,"stem":404,"icon":155,"description":405},"DuxtToc","\u002Freference\u002Fcomponents\u002Fnavigation\u002Fduxt-toc","4.reference\u002F5.components\u002F2.navigation\u002F5.duxt-toc","The table of contents, and the aside under it.",{"title":407,"path":408,"stem":409,"icon":410,"description":411},"DuxtPageNav","\u002Freference\u002Fcomponents\u002Fnavigation\u002Fduxt-page-nav","4.reference\u002F5.components\u002F2.navigation\u002F6.duxt-page-nav","lucide:arrow-left-right","Previous and next, bounded by the section.",{"title":413,"path":414,"stem":415,"children":416,"icon":418,"description":419},"Controls","\u002Freference\u002Fcomponents\u002Fcontrols","4.reference\u002F5.components\u002F3.controls\u002Findex",[417,420,425,430,436,441,447,453],{"title":413,"path":414,"stem":415,"icon":418,"description":419},"lucide:sliders-horizontal","What a reader operates — search, the switchers, the shortcut sheet, and two indicators.",{"title":421,"path":422,"stem":423,"icon":86,"description":424},"DuxtSearch","\u002Freference\u002Fcomponents\u002Fcontrols\u002Fduxt-search","4.reference\u002F5.components\u002F3.controls\u002F1.duxt-search","Search across every source, ranked together.",{"title":426,"path":427,"stem":428,"icon":38,"description":429},"DuxtVersion","\u002Freference\u002Fcomponents\u002Fcontrols\u002Fduxt-version","4.reference\u002F5.components\u002F3.controls\u002F2.duxt-version","The version badge, and the switcher when there is more than one.",{"title":431,"path":432,"stem":433,"icon":434,"description":435},"DuxtVersionBanner","\u002Freference\u002Fcomponents\u002Fcontrols\u002Fduxt-version-banner","4.reference\u002F5.components\u002F3.controls\u002F3.duxt-version-banner","lucide:triangle-alert","The bar telling a reader this version is not the current one.",{"title":437,"path":438,"stem":439,"icon":92,"description":440},"DuxtLocale","\u002Freference\u002Fcomponents\u002Fcontrols\u002Fduxt-locale","4.reference\u002F5.components\u002F3.controls\u002F4.duxt-locale","The language switcher.",{"title":442,"path":443,"stem":444,"icon":445,"description":446},"DuxtProgress","\u002Freference\u002Fcomponents\u002Fcontrols\u002Fduxt-progress","4.reference\u002F5.components\u002F3.controls\u002F5.duxt-progress","lucide:loader","How far down the page the reader is.",{"title":448,"path":449,"stem":450,"icon":451,"description":452},"DuxtShortcuts","\u002Freference\u002Fcomponents\u002Fcontrols\u002Fduxt-shortcuts","4.reference\u002F5.components\u002F3.controls\u002F6.duxt-shortcuts","lucide:keyboard","The keyboard shortcut sheet, on ?.",{"title":454,"path":455,"stem":456,"icon":457,"description":458},"DuxtSkipLink","\u002Freference\u002Fcomponents\u002Fcontrols\u002Fduxt-skip-link","4.reference\u002F5.components\u002F3.controls\u002F7.duxt-skip-link","lucide:skip-forward","The first focusable element on the page.",{"title":460,"path":461,"stem":462,"children":463,"icon":465,"description":466},"Page","\u002Freference\u002Fcomponents\u002Fpage","4.reference\u002F5.components\u002F4.page\u002Findex",[464,467,473,479,484],{"title":460,"path":461,"stem":462,"icon":465,"description":466},"lucide:file-text","The components that belong to the page itself.",{"title":468,"path":469,"stem":470,"icon":471,"description":472},"DuxtPageInfo","\u002Freference\u002Fcomponents\u002Fpage\u002Fduxt-page-info","4.reference\u002F5.components\u002F4.page\u002F1.duxt-page-info","lucide:git-commit-horizontal","Where the page came from: edit link, last updated, contributors.",{"title":474,"path":475,"stem":476,"icon":477,"description":478},"DuxtCopyPage","\u002Freference\u002Fcomponents\u002Fpage\u002Fduxt-copy-page","4.reference\u002F5.components\u002F4.page\u002F2.duxt-copy-page","lucide:clipboard-copy","Hand this page to a model, or read its source.",{"title":480,"path":481,"stem":482,"icon":140,"description":483},"DuxtPageFeedback","\u002Freference\u002Fcomponents\u002Fpage\u002Fduxt-page-feedback","4.reference\u002F5.components\u002F4.page\u002F3.duxt-page-feedback","Was this page helpful?",{"title":485,"path":486,"stem":487,"icon":488,"description":489},"DuxtCodeBlock","\u002Freference\u002Fcomponents\u002Fpage\u002Fduxt-code-block","4.reference\u002F5.components\u002F4.page\u002F4.duxt-code-block","lucide:code","The card around a code block.",{"title":491,"path":492,"stem":493,"children":494,"icon":496,"description":497},"Composables","\u002Freference\u002Fcomposables","4.reference\u002F6.composables\u002Findex",[495,498,532,561],{"title":491,"path":492,"stem":493,"icon":496,"description":497},"lucide:function-square","The functions the layer exposes to your own components, one page each.",{"title":499,"path":500,"stem":501,"children":502,"icon":62,"description":504},"Config and content","\u002Freference\u002Fcomposables\u002Fconfig-and-content","4.reference\u002F6.composables\u002F1.config-and-content\u002Findex",[503,505,510,516,521,527],{"title":499,"path":500,"stem":501,"icon":62,"description":504},"The merged config, and which collection serves the page being read.",{"title":506,"path":507,"stem":508,"icon":23,"description":509},"useDuxtConfig()","\u002Freference\u002Fcomposables\u002Fconfig-and-content\u002Fuse-duxt-config","4.reference\u002F6.composables\u002F1.config-and-content\u002F1.use-duxt-config","The merged config, every text field already resolved.",{"title":511,"path":512,"stem":513,"icon":514,"description":515},"useDuxtCollection()","\u002Freference\u002Fcomposables\u002Fconfig-and-content\u002Fuse-duxt-collection","4.reference\u002F6.composables\u002F1.config-and-content\u002F2.use-duxt-collection","lucide:library","Which collection serves this route.",{"title":517,"path":518,"stem":519,"icon":336,"description":520},"useDuxtNavigation()","\u002Freference\u002Fcomposables\u002Fconfig-and-content\u002Fuse-duxt-navigation","4.reference\u002F6.composables\u002F1.config-and-content\u002F3.use-duxt-navigation","The navigation tree for the collection serving this route.",{"title":522,"path":523,"stem":524,"icon":525,"description":526},"useDuxtSection()","\u002Freference\u002Fcomposables\u002Fconfig-and-content\u002Fuse-duxt-section","4.reference\u002F6.composables\u002F1.config-and-content\u002F4.use-duxt-section","lucide:folder-open","The part of the documentation this page is in.",{"title":528,"path":529,"stem":530,"icon":399,"description":531},"useDuxtBreadcrumb()","\u002Freference\u002Fcomposables\u002Fconfig-and-content\u002Fuse-duxt-breadcrumb","4.reference\u002F6.composables\u002F1.config-and-content\u002F5.use-duxt-breadcrumb","The trail from the section down to a page.",{"title":533,"path":534,"stem":535,"children":536,"icon":538,"description":539},"Paths and versions","\u002Freference\u002Fcomposables\u002Fpaths-and-versions","4.reference\u002F6.composables\u002F2.paths-and-versions\u002Findex",[537,540,545,550,555],{"title":533,"path":534,"stem":535,"icon":538,"description":539},"lucide:route","Reading a URL, writing one back out, and knowing which version is being read.",{"title":541,"path":542,"stem":543,"icon":251,"description":544},"useDuxtPath()","\u002Freference\u002Fcomposables\u002Fpaths-and-versions\u002Fuse-duxt-path","4.reference\u002F6.composables\u002F2.paths-and-versions\u002F1.use-duxt-path","The path the documentation is at, locale stripped.",{"title":546,"path":547,"stem":548,"icon":271,"description":549},"useDuxtLink()","\u002Freference\u002Fcomposables\u002Fpaths-and-versions\u002Fuse-duxt-link","4.reference\u002F6.composables\u002F2.paths-and-versions\u002F2.use-duxt-link","A documentation path, written back out as a link.",{"title":551,"path":552,"stem":553,"icon":38,"description":554},"useDuxtVersion()","\u002Freference\u002Fcomposables\u002Fpaths-and-versions\u002Fuse-duxt-version","4.reference\u002F6.composables\u002F2.paths-and-versions\u002F3.use-duxt-version","What the switcher shows, what the banner says, whether to index.",{"title":556,"path":557,"stem":558,"icon":559,"description":560},"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","The configured origin, and paths made absolute.",{"title":562,"path":563,"stem":564,"children":565,"icon":101,"description":567},"Reading experience","\u002Freference\u002Fcomposables\u002Freading","4.reference\u002F6.composables\u002F3.reading\u002Findex",[566,568,572,578,583,589,595,600,606],{"title":562,"path":563,"stem":564,"icon":101,"description":567},"Search, headings, focus, history, and the choices a reader makes.",{"title":569,"path":570,"stem":571,"icon":86,"description":424},"useDuxtSearch()","\u002Freference\u002Fcomposables\u002Freading\u002Fuse-duxt-search","4.reference\u002F6.composables\u002F3.reading\u002F1.use-duxt-search",{"title":573,"path":574,"stem":575,"icon":576,"description":577},"useFuzzySearch()","\u002Freference\u002Fcomposables\u002Freading\u002Fuse-fuzzy-search","4.reference\u002F6.composables\u002F3.reading\u002F2.use-fuzzy-search","lucide:spell-check","Typo tolerance beside the exact index.",{"title":579,"path":580,"stem":581,"icon":277,"description":582},"useActiveHeading()","\u002Freference\u002Fcomposables\u002Freading\u002Fuse-active-heading","4.reference\u002F6.composables\u002F3.reading\u002F3.use-active-heading","The heading currently in view.",{"title":584,"path":585,"stem":586,"icon":587,"description":588},"useDuxtPageFocus()","\u002Freference\u002Fcomposables\u002Freading\u002Fuse-duxt-page-focus","4.reference\u002F6.composables\u002F3.reading\u002F4.use-duxt-page-focus","lucide:focus","Moves focus to the heading after a client-side navigation.",{"title":590,"path":591,"stem":592,"icon":593,"description":594},"useRecentPages()","\u002Freference\u002Fcomposables\u002Freading\u002Fuse-recent-pages","4.reference\u002F6.composables\u002F3.reading\u002F5.use-recent-pages","lucide:history","The last five pages this reader opened.",{"title":596,"path":597,"stem":598,"icon":221,"description":599},"usePackageManager()","\u002Freference\u002Fcomposables\u002Freading\u002Fuse-package-manager","4.reference\u002F6.composables\u002F3.reading\u002F6.use-package-manager","The package manager a reader picked.",{"title":601,"path":602,"stem":603,"icon":604,"description":605},"useDuxtToast()","\u002Freference\u002Fcomposables\u002Freading\u002Fuse-duxt-toast","4.reference\u002F6.composables\u002F3.reading\u002F7.use-duxt-toast","lucide:bell","Notifications, wrapped so no component imports the library.",{"title":607,"path":608,"stem":609,"icon":451,"description":610},"useDuxtShortcuts()","\u002Freference\u002Fcomposables\u002Freading\u002Fuse-duxt-shortcuts","4.reference\u002F6.composables\u002F3.reading\u002F8.use-duxt-shortcuts","The keys the theme listens to.",{"title":612,"path":613,"stem":614,"children":615,"icon":538,"description":617},"Endpoints","\u002Freference\u002Fendpoints","4.reference\u002F7.endpoints\u002Findex",[616,618,623,629,634,639,644,650],{"title":612,"path":613,"stem":614,"icon":538,"description":617},"Everything the site serves besides pages, one page each.",{"title":619,"path":620,"stem":621,"icon":465,"description":622},"\u002Fllms.txt","\u002Freference\u002Fendpoints\u002Fllms-txt","4.reference\u002F7.endpoints\u002F1.llms-txt","The documentation as a Markdown index, per llmstxt.org.",{"title":624,"path":625,"stem":626,"icon":627,"description":628},"\u002Fllms-full.txt","\u002Freference\u002Fendpoints\u002Fllms-full-txt","4.reference\u002F7.endpoints\u002F2.llms-full-txt","lucide:file-stack","The same pages, whole, in one Markdown file.",{"title":630,"path":631,"stem":632,"icon":201,"description":633},"\u003Cpage>.md","\u002Freference\u002Fendpoints\u002Fpage-markdown","4.reference\u002F7.endpoints\u002F3.page-markdown","Any page source, at its own URL plus .md.",{"title":635,"path":636,"stem":637,"icon":80,"description":638},"\u002Fmcp","\u002Freference\u002Fendpoints\u002Fmcp","4.reference\u002F7.endpoints\u002F4.mcp","An MCP server over the same content.",{"title":640,"path":641,"stem":642,"icon":86,"description":643},"\u002Fsitemap.xml and \u002Frobots.txt","\u002Freference\u002Fendpoints\u002Fsitemap-and-robots","4.reference\u002F7.endpoints\u002F5.sitemap-and-robots","What a crawler is pointed at, and what it is kept out of.",{"title":645,"path":646,"stem":647,"icon":648,"description":649},"\u002Frss.xml","\u002Freference\u002Fendpoints\u002Frss-xml","4.reference\u002F7.endpoints\u002F6.rss-xml","lucide:rss","The feed, once a section is named.",{"title":651,"path":652,"stem":653,"icon":654,"description":655},"\u002F_duxt\u002Fdevtools","\u002Freference\u002Fendpoints\u002Fdevtools","4.reference\u002F7.endpoints\u002F7.devtools","lucide:wrench","The route the Nuxt Devtools panel is served from. Dev only.",{"title":657,"path":658,"stem":659,"children":660,"icon":654,"description":662},"Devtools","\u002Freference\u002Fdevtools","4.reference\u002F8.devtools\u002Findex",[661,663,667,672,677,683,689,695,700,705,710],{"title":657,"path":658,"stem":659,"icon":654,"description":662},"Ten panels that show what your sources became. Dev only.",{"title":47,"path":664,"stem":665,"icon":514,"description":666},"\u002Freference\u002Fdevtools\u002Fsources","4.reference\u002F8.devtools\u002F1.sources","What `duxt.sources` became — one collection per source, version and language.",{"title":668,"path":669,"stem":670,"icon":128,"description":671},"Redirects","\u002Freference\u002Fdevtools\u002Fredirects","4.reference\u002F8.devtools\u002F10.redirects","Every redirect the server ships, and which of them the layer wrote.",{"title":673,"path":674,"stem":675,"icon":538,"description":676},"Paths","\u002Freference\u002Fdevtools\u002Fpaths","4.reference\u002F8.devtools\u002F2.paths","Paste a URL, see which source claims it and what it finds there.",{"title":678,"path":679,"stem":680,"icon":681,"description":682},"Pages","\u002Freference\u002Fdevtools\u002Fpages","4.reference\u002F8.devtools\u002F3.pages","lucide:files","Every page of every collection, with its frontmatter and git metadata.",{"title":684,"path":685,"stem":686,"icon":687,"description":688},"Versions","\u002Freference\u002Fdevtools\u002Fversions","4.reference\u002F8.devtools\u002F4.versions","lucide:columns-3","Which version — and which language — carries which page.",{"title":690,"path":691,"stem":692,"icon":693,"description":694},"Checks","\u002Freference\u002Fdevtools\u002Fchecks","4.reference\u002F8.devtools\u002F5.checks","lucide:check-check","The build validator, run against what the site is serving now.",{"title":696,"path":697,"stem":698,"icon":86,"description":699},"Search","\u002Freference\u002Fdevtools\u002Fsearch","4.reference\u002F8.devtools\u002F6.search","What the search index holds, through the same query the dialog runs.",{"title":701,"path":702,"stem":703,"icon":418,"description":704},"Config","\u002Freference\u002Fdevtools\u002Fconfig","4.reference\u002F8.devtools\u002F7.config","The merged `duxt` config, and which side of the merge each value came from.",{"title":706,"path":707,"stem":708,"icon":92,"description":709},"i18n","\u002Freference\u002Fdevtools\u002Fi18n","4.reference\u002F8.devtools\u002F8.i18n","Message keys per locale, against the base language.",{"title":711,"path":712,"stem":713,"icon":714,"description":715},"Cache","\u002Freference\u002Fdevtools\u002Fcache","4.reference\u002F8.devtools\u002F9.cache","lucide:hard-drive","Content's download cache, and a way to drop one entry.",{"title":717,"path":718,"stem":719,"children":720,"icon":722,"description":723},"API reference","\u002Freference\u002Fopenapi","4.reference\u002F9.openapi\u002Findex",[721,724,728,732,738],{"title":717,"path":718,"stem":719,"icon":722,"description":723},"lucide:plug","An OpenAPI document, published as reference pages with a client that sends real requests.",{"title":170,"path":725,"stem":726,"icon":201,"description":727},"\u002Freference\u002Fopenapi\u002Fsection","4.reference\u002F9.openapi\u002F1.section","The `openapi` section type — where the document lives, and what it becomes.",{"title":344,"path":729,"stem":730,"icon":191,"description":731},"\u002Freference\u002Fopenapi\u002Fcomponents","4.reference\u002F9.openapi\u002F2.components","The three MDC components a generated reference page is made of.",{"title":733,"path":734,"stem":735,"icon":736,"description":737},"The try-it client","\u002Freference\u002Fopenapi\u002Ftry-it","4.reference\u002F9.openapi\u002F3.try-it","lucide:send","A real request, sent by the reader's own browser.",{"title":739,"path":740,"stem":741,"icon":488,"description":742},"Request samples","\u002Freference\u002Fopenapi\u002Frequest-samples","4.reference\u002F9.openapi\u002F4.request-samples","The same request in twelve clients, and how to add your own.",{"title":744,"path":745,"stem":746,"children":747,"icon":749,"description":750},"Credits","\u002Fcredits","5.credits\u002Findex",[748],{"title":744,"path":745,"stem":746,"icon":749,"description":750},"lucide:heart","What duxt is built on, and what it was built after.",{"title":752,"path":753,"stem":754,"children":755},"Conventions","\u002Fconventions","6.conventions",[756,760,766],{"title":752,"path":753,"stem":757,"icon":758,"description":759},"6.conventions\u002Findex","lucide:ruler","Project-specific rules — the ones a reader could not infer from the code.",{"title":761,"path":762,"stem":763,"icon":764,"description":765},"Branding","\u002Fconventions\u002Fbranding","6.conventions\u002F1.branding","lucide:shapes","The [d]uxt mark — where each asset is used, why the icon's brackets are redrawn, and the colours that are fixed.",{"title":767,"path":768,"stem":769,"icon":283,"description":770},"Icons","\u002Fconventions\u002Ficons","6.conventions\u002F2.icons","Four icon sets, and the one question that decides which of them draws a given mark.",{"title":772,"path":773,"stem":774,"children":775},"Architecture decisions","\u002Fadr","99.adr",[776,780,786,791,796,801,806,811,816,821],{"title":772,"path":773,"stem":777,"icon":778,"description":779},"99.adr\u002Findex","lucide:gavel","The decision log — every architecture decision recorded for duxt.",{"title":781,"path":782,"stem":783,"icon":784,"description":785},"Build duxt as a layer carrying a module","\u002Fadr\u002F0001-build-duxt-as-a-layer-carrying-a-module","99.adr\u002F0001-build-duxt-as-a-layer-carrying-a-module",null,"Distribute the theme as a Nuxt layer whose root is the package, rather than as a starter template.",{"title":787,"path":788,"stem":789,"icon":784,"description":790},"Generate the collections from one source list","\u002Fadr\u002F0002-generate-the-collections-from-one-source-list","99.adr\u002F0002-generate-the-collections-from-one-source-list","Compute Content collections from a compact sources list at config load time instead of having consumers declare them.",{"title":792,"path":793,"stem":794,"icon":784,"description":795},"Decide the URL prefixes at build time","\u002Fadr\u002F0003-decide-the-url-prefixes-at-build-time","99.adr\u002F0003-decide-the-url-prefixes-at-build-time","Whether a repository or version segment appears is settled by the source list before the first request, never per request.",{"title":797,"path":798,"stem":799,"icon":784,"description":800},"Render Markdown components with MDC","\u002Fadr\u002F0004-render-markdown-components-with-mdc","99.adr\u002F0004-render-markdown-components-with-mdc","Use Content's own MDC syntax for components inside Markdown rather than adopting MDX.",{"title":802,"path":803,"stem":804,"icon":784,"description":805},"Ship the layer without owner-specific links","\u002Fadr\u002F0005-ship-the-layer-without-owner-specific-links","99.adr\u002F0005-ship-the-layer-without-owner-specific-links","Every default that would name a specific project — repository, issue tracker, community, imprint — ships empty.",{"title":807,"path":808,"stem":809,"icon":784,"description":810},"Rebuild on a schedule rather than refresh at runtime","\u002Fadr\u002F0006-rebuild-on-a-schedule-rather-than-refresh-at-runtime","99.adr\u002F0006-rebuild-on-a-schedule-rather-than-refresh-at-runtime","A site reading another repository picks up its changes when it builds, and no runtime refresh is offered.",{"title":812,"path":813,"stem":814,"icon":784,"description":815},"Serve translations as collections of their own","\u002Fadr\u002F0007-serve-translations-as-collections-of-their-own","99.adr\u002F0007-serve-translations-as-collections-of-their-own","Add a locale dimension to a source rather than a locale segment to the content path.",{"title":817,"path":818,"stem":819,"icon":784,"description":820},"Build the theme on owned shadcn-vue components","\u002Fadr\u002F0008-build-the-theme-on-owned-shadcn-vue-components","99.adr\u002F0008-build-the-theme-on-owned-shadcn-vue-components","The layer holds the source of its interface components rather than importing them from a component library or a ready-made documentation theme.",{"title":822,"path":823,"stem":824,"icon":784,"description":825},"Take the SEO stack from the Nuxt SEO bundle","\u002Fadr\u002F0009-take-the-seo-stack-from-the-nuxt-seo-bundle","99.adr\u002F0009-take-the-seo-stack-from-the-nuxt-seo-bundle","The layer installs @nuxtjs\u002Fseo and hands it the head tags and structured data it used to write by hand, keeping only the rules that depend on versions and translations.",{"title":827,"path":828,"stem":829,"icon":830,"description":831},"Documentation","\u002F","index","lucide:book-open-text","A Nuxt layer that turns a repository's docs folder into a versioned, multi-repo documentation site.",{"left":833,"top":833,"width":834,"height":834,"rotate":833,"vFlip":835,"hFlip":835,"body":836},0,24,false,"\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":833,"top":833,"width":834,"height":834,"rotate":833,"vFlip":835,"hFlip":835,"body":838},"\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":833,"top":833,"width":834,"height":834,"rotate":833,"vFlip":835,"hFlip":835,"body":840},"\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":833,"top":833,"width":834,"height":834,"rotate":833,"vFlip":835,"hFlip":835,"body":842},"\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":833,"top":833,"width":834,"height":834,"rotate":833,"vFlip":835,"hFlip":835,"body":844},"\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":833,"top":833,"width":834,"height":834,"rotate":833,"vFlip":835,"hFlip":835,"body":846},"\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":833,"top":833,"width":834,"height":834,"rotate":833,"vFlip":835,"hFlip":835,"body":848},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M9.671 4.136a2.34 2.34 0 0 1 4.659 0a2.34 2.34 0 0 0 3.319 1.915a2.34 2.34 0 0 1 2.33 4.033a2.34 2.34 0 0 0 0 3.831a2.34 2.34 0 0 1-2.33 4.033a2.34 2.34 0 0 0-3.319 1.915a2.34 2.34 0 0 1-4.659 0a2.34 2.34 0 0 0-3.32-1.915a2.34 2.34 0 0 1-2.33-4.033a2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915\"\u002F>\u003Ccircle cx=\"12\" cy=\"12\" r=\"3\"\u002F>\u003C\u002Fg>",{"left":833,"top":833,"width":834,"height":834,"rotate":833,"vFlip":835,"hFlip":835,"body":850},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z\"\u002F>\u003Ccircle cx=\"7.5\" cy=\"7.5\" r=\".5\" fill=\"currentColor\"\u002F>\u003C\u002Fg>",{"left":833,"top":833,"width":834,"height":834,"rotate":833,"vFlip":835,"hFlip":835,"body":852},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M15 6a9 9 0 0 0-9 9V3\"\u002F>\u003Ccircle cx=\"18\" cy=\"6\" r=\"3\"\u002F>\u003Ccircle cx=\"6\" cy=\"18\" r=\"3\"\u002F>\u003C\u002Fg>",{"left":833,"top":833,"width":834,"height":834,"rotate":833,"vFlip":835,"hFlip":835,"body":854},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z\"\u002F>\u003Cpath d=\"M14 2v5a1 1 0 0 0 1 1h5m-10 4.5L8 15l2 2.5m4-5l2 2.5l-2 2.5\"\u002F>\u003C\u002Fg>",{"left":833,"top":833,"width":834,"height":834,"rotate":833,"vFlip":835,"hFlip":835,"body":856},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M10 22V7a1 1 0 0 0-1-1H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5a1 1 0 0 0-1-1H2\"\u002F>\u003Crect width=\"8\" height=\"8\" x=\"14\" y=\"2\" rx=\"1\"\u002F>\u003C\u002Fg>",{"left":833,"top":833,"width":834,"height":834,"rotate":833,"vFlip":835,"hFlip":835,"body":858},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M15.536 11.293a1 1 0 0 0 0 1.414l2.376 2.377a1 1 0 0 0 1.414 0l2.377-2.377a1 1 0 0 0 0-1.414l-2.377-2.377a1 1 0 0 0-1.414 0zm-13.239 0a1 1 0 0 0 0 1.414l2.377 2.377a1 1 0 0 0 1.414 0l2.377-2.377a1 1 0 0 0 0-1.414L6.088 8.916a1 1 0 0 0-1.414 0zm6.619 6.619a1 1 0 0 0 0 1.415l2.377 2.376a1 1 0 0 0 1.414 0l2.377-2.376a1 1 0 0 0 0-1.415l-2.377-2.376a1 1 0 0 0-1.414 0zm0-13.238a1 1 0 0 0 0 1.414l2.377 2.376a1 1 0 0 0 1.414 0l2.377-2.376a1 1 0 0 0 0-1.414l-2.377-2.377a1 1 0 0 0-1.414 0z\"\u002F>",{"left":833,"top":833,"width":834,"height":834,"rotate":833,"vFlip":835,"hFlip":835,"body":860},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\" ry=\"2\"\u002F>\u003Cpath d=\"M9 17c2 0 2.8-1 2.8-2.8V10c0-2 1-3.3 3.2-3m-6 4.2h5.7\"\u002F>\u003C\u002Fg>",{"left":833,"top":833,"width":834,"height":834,"rotate":833,"vFlip":835,"hFlip":835,"body":862},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"6\" cy=\"19\" r=\"3\"\u002F>\u003Cpath d=\"M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15\"\u002F>\u003Ccircle cx=\"18\" cy=\"5\" r=\"3\"\u002F>\u003C\u002Fg>",{"left":833,"top":833,"width":834,"height":834,"rotate":833,"vFlip":835,"hFlip":835,"body":864},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z\"\u002F>",{"left":833,"top":833,"width":834,"height":834,"rotate":833,"vFlip":835,"hFlip":835,"body":866},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 22v-5m3-9V2m2 6a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1zM9 8V2\"\u002F>",{"left":833,"top":833,"width":834,"height":834,"rotate":833,"vFlip":835,"hFlip":835,"body":868},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m9 18l6-6l-6-6\"\u002F>",{"left":833,"top":833,"width":834,"height":834,"rotate":833,"vFlip":835,"hFlip":835,"body":870},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 5h16M4 12h16M4 19h16\"\u002F>",{"left":833,"top":833,"width":834,"height":834,"rotate":833,"vFlip":835,"hFlip":835,"body":872},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m6 9l6 6l6-6\"\u002F>",{"left":833,"top":833,"width":834,"height":834,"rotate":833,"vFlip":835,"hFlip":835,"body":874},"\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":833,"top":833,"width":834,"height":834,"rotate":833,"vFlip":835,"hFlip":835,"body":876},"\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":833,"top":833,"width":878,"height":879,"rotate":833,"vFlip":835,"hFlip":835,"body":880},640,480,"\u003Cpath fill=\"#bd3d44\" d=\"M0 0h640v480H0\"\u002F>\u003Cpath stroke=\"#fff\" stroke-width=\"37\" d=\"M0 55.3h640M0 129h640M0 203h640M0 277h640M0 351h640M0 425h640\"\u002F>\u003Cpath fill=\"#192f5d\" d=\"M0 0h364.8v258.5H0\"\u002F>\u003Cmarker id=\"SVGEq3dreKJ\" markerHeight=\"30\" markerWidth=\"30\">\u003Cpath fill=\"#fff\" d=\"m14 0l9 27L0 10h28L5 27z\"\u002F>\u003C\u002Fmarker>\u003Cpath fill=\"none\" marker-mid=\"url(#SVGEq3dreKJ)\" d=\"m0 0l16 11h61h61h61h61h60L47 37h61h61h60h61L16 63h61h61h61h61h60L47 89h61h61h60h61L16 115h61h61h61h61h60L47 141h61h61h60h61L16 166h61h61h61h61h60L47 192h61h61h60h61L16 218h61h61h61h61h60z\"\u002F>",{"left":833,"top":833,"width":834,"height":834,"rotate":833,"vFlip":835,"hFlip":835,"body":882},"\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>",{"page":884,"from":2248,"asked":2249},{"id":885,"title":20,"body":886,"compare":784,"contributors":2237,"date":784,"description":160,"extension":2241,"icon":23,"lastUpdated":2242,"layout":784,"meta":2243,"navigation":835,"path":158,"rawbody":2244,"redirectFrom":784,"seo":2245,"sitemap":2246,"stem":159,"__hash__":2247},"docs\u002F4.reference\u002F1.configuration.md",{"type":887,"value":888,"toc":2224},"minimark",[889,906,911,1099,1104,1170,1175,1179,1186,1242,1246,1249,1280,1297,1408,1432,1449,1452,1457,1577,1588,1591,1599,1704,1797,1806,1899,1910,1914,2020,2029,2032,2084,2094,2098,2107,2140,2150,2160,2164,2217,2220],[890,891,892,893,897,898,901,902,905],"p",{},"Everything below lives under ",[894,895,896],"code",{},"duxt"," in your ",[894,899,900],{},"app\u002Fapp.config.ts",". How the merge\nworks, and why arrays replace rather than append, is in\n",[903,904,20],"a",{"href":21},".",[907,908,910],"h2",{"id":909},"site","Site",[912,913,914,931],"table",{},[915,916,917],"thead",{},[918,919,920,925,928],"tr",{},[921,922,924],"th",{"align":923},"left","Key",[921,926,927],{"align":923},"Default",[921,929,930],{"align":923},"What it controls",[932,933,934,951,965,979,993,1006,1024,1038,1051,1066,1084],"tbody",{},[918,935,936,942,948],{},[937,938,939],"td",{"align":923},[894,940,941],{},"title",[937,943,944],{"align":923},[945,946,947],"strong",{},"none",[937,949,950],{"align":923},"The name in the navbar and in the SEO title",[918,952,953,958,962],{},[937,954,955],{"align":923},[894,956,957],{},"logo",[937,959,960],{"align":923},[945,961,947],{},[937,963,964],{"align":923},"A wordmark replacing the icon-and-name pair — see below",[918,966,967,972,976],{},[937,968,969],{"align":923},[894,970,971],{},"version",[937,973,974],{"align":923},[945,975,947],{},[937,977,978],{"align":923},"The badge beside it",[918,980,981,986,990],{},[937,982,983],{"align":923},[894,984,985],{},"organization",[937,987,988],{"align":923},[945,989,947],{},[937,991,992],{"align":923},"Who publishes the site, for schema.org — see below",[918,994,995,1000,1003],{},[937,996,997],{"align":923},[894,998,999],{},"locales",[937,1001,1002],{"align":923},"all seven",[937,1004,1005],{"align":923},"Which of the layer's languages this site serves",[918,1007,1008,1013,1018],{},[937,1009,1010],{"align":923},[894,1011,1012],{},"breadcrumb",[937,1014,1015],{"align":923},[894,1016,1017],{},"true",[937,1019,1020,1023],{"align":923},[894,1021,1022],{},"false"," drops the trail above the page title",[918,1025,1026,1031,1035],{},[937,1027,1028],{"align":923},[894,1029,1030],{},"pageIcon",[937,1032,1033],{"align":923},[945,1034,947],{},[937,1036,1037],{"align":923},"Icon for any page whose frontmatter sets none — a section's own wins",[918,1039,1040,1045,1048],{},[937,1041,1042],{"align":923},[894,1043,1044],{},"packageManagers",[937,1046,1047],{"align":923},"pnpm, npm, yarn, bun",[937,1049,1050],{"align":923},"Which managers a command block offers, in that order",[918,1052,1053,1058,1061],{},[937,1054,1055],{"align":923},[894,1056,1057],{},"requestSamples",[937,1059,1060],{"align":923},"seven of twelve",[937,1062,1063,1064],{"align":923},"Which code samples the try-it client offers — see ",[903,1065,739],{"href":740},[918,1067,1068,1073,1077],{},[937,1069,1070],{"align":923},[894,1071,1072],{},"sampleLanguages",[937,1074,1075],{"align":923},[945,1076,947],{},[937,1078,1079,1080,1083],{"align":923},"Extra Shiki grammars, for ",[894,1081,1082],{},"x-codeSamples"," in a language no sample names",[918,1085,1086,1091,1094],{},[937,1087,1088],{"align":923},[894,1089,1090],{},"poweredBy",[937,1092,1093],{"align":923},"on",[937,1095,1096,1098],{"align":923},[894,1097,1022],{}," drops the \"Powered by duxt\" line from the footer",[1100,1101,1102],"h3",{"id":957},[894,1103,957],{},[912,1105,1106,1118],{},[915,1107,1108],{},[918,1109,1110,1112,1115],{},[921,1111,339],{"align":923},[921,1113,1114],{"align":923},"Type",[921,1116,1117],{"align":923},"Notes",[932,1119,1120,1137,1155],{},[918,1121,1122,1127,1132],{},[937,1123,1124],{"align":923},[894,1125,1126],{},"src",[937,1128,1129],{"align":923},[894,1130,1131],{},"string",[937,1133,1134,1135],{"align":923},"The mark. Unset leaves the generic icon beside ",[894,1136,941],{},[918,1138,1139,1144,1148],{},[937,1140,1141],{"align":923},[894,1142,1143],{},"srcDark",[937,1145,1146],{"align":923},[894,1147,1131],{},[937,1149,1150,1151,1154],{"align":923},"Swapped in by CSS under the ",[894,1152,1153],{},"dark"," class, not by script",[918,1156,1157,1162,1165],{},[937,1158,1159],{"align":923},[894,1160,1161],{},"alt",[937,1163,1164],{"align":923},"text",[937,1166,1167,1168],{"align":923},"Falls back to ",[894,1169,941],{},[890,1171,1172,1173,905],{},"Setting one is ",[903,1174,143],{"href":144},[1100,1176,1177],{"id":985},[894,1178,985],{},[890,1180,1181,1182,1185],{},"The ",[894,1183,1184],{},"Organization"," node search engines and AI summaries read to name a source.\nAbsent until you set it: duxt renders somebody else's documentation and does not\nguess whose.",[912,1187,1188,1198],{},[915,1189,1190],{},[918,1191,1192,1194,1196],{},[921,1193,339],{"align":923},[921,1195,1114],{"align":923},[921,1197,1117],{"align":923},[932,1199,1200,1212,1229],{},[918,1201,1202,1207,1209],{},[937,1203,1204],{"align":923},[894,1205,1206],{},"name",[937,1208,1164],{"align":923},[937,1210,1211],{"align":923},"The publisher's name. Nothing is published without it",[918,1213,1214,1219,1223],{},[937,1215,1216],{"align":923},[894,1217,1218],{},"url",[937,1220,1221],{"align":923},[894,1222,1131],{},[937,1224,1225,1226],{"align":923},"Their site. Falls back to ",[894,1227,1228],{},"site.url",[918,1230,1231,1235,1239],{},[937,1232,1233],{"align":923},[894,1234,957],{},[937,1236,1237],{"align":923},[894,1238,1131],{},[937,1240,1241],{"align":923},"Absolute, or a path from the site root; square and 112px or more",[907,1243,1245],{"id":1244},"navigation-and-links","Navigation and links",[890,1247,1248],{},"A section entry is a link plus one field of its own:",[912,1250,1251,1261],{},[915,1252,1253],{},[918,1254,1255,1257,1259],{},[921,1256,339],{"align":923},[921,1258,1114],{"align":923},[921,1260,1117],{"align":923},[932,1262,1263],{},[918,1264,1265,1269,1273],{},[937,1266,1267],{"align":923},[894,1268,1030],{},[937,1270,1271],{"align":923},[894,1272,1131],{},[937,1274,1275,1276,1279],{"align":923},"Icon for pages in this section that set none. Overrides ",[894,1277,1278],{},"duxt.pageIcon","; a page's own frontmatter still wins",[890,1281,1282,1283,1285,1286,1285,1289,1292,1293,1296],{},"Useful where pages cannot carry an icon at all — an ADR's frontmatter is fixed\nat ",[894,1284,941],{},", ",[894,1287,1288],{},"description",[894,1290,1291],{},"status"," and ",[894,1294,1295],{},"date",", so the decision log otherwise\nrenders without one.",[912,1298,1299,1309],{},[915,1300,1301],{},[918,1302,1303,1305,1307],{},[921,1304,924],{"align":923},[921,1306,927],{"align":923},[921,1308,930],{"align":923},[932,1310,1311,1328,1343,1357,1374,1393],{},[918,1312,1313,1318,1321],{},[937,1314,1315],{"align":923},[894,1316,1317],{},"navigation",[937,1319,1320],{"align":923},"one entry",[937,1322,1323,1324,1327],{"align":923},"Navbar links; an entry with ",[894,1325,1326],{},"children"," becomes a dropdown",[918,1329,1330,1335,1340],{},[937,1331,1332],{"align":923},[894,1333,1334],{},"sections",[937,1336,1337],{"align":923},[945,1338,1339],{},"empty",[937,1341,1342],{"align":923},"The second navbar row — the top-level parts of the docs",[918,1344,1345,1350,1354],{},[937,1346,1347],{"align":923},[894,1348,1349],{},"links",[937,1351,1352],{"align":923},[945,1353,1339],{},[937,1355,1356],{"align":923},"Icon links on the right of the navbar",[918,1358,1359,1364,1367],{},[937,1360,1361],{"align":923},[894,1362,1363],{},"aside",[937,1365,1366],{"align":923},"title only",[937,1368,1369,1292,1371,1373],{"align":923},[894,1370,941],{},[894,1372,1349],{}," under the table of contents",[918,1375,1376,1381,1385],{},[937,1377,1378],{"align":923},[894,1379,1380],{},"footer",[937,1382,1383],{"align":923},[945,1384,1339],{},[937,1386,1387,1292,1390],{"align":923},[894,1388,1389],{},"copyright",[894,1391,1392],{},"legal",[918,1394,1395,1400,1403],{},[937,1396,1397],{"align":923},[894,1398,1399],{},"landing",[937,1401,1402],{"align":923},"one action",[937,1404,1405,1406],{"align":923},"The page at ",[894,1407,828],{},[890,1409,1410,1411,1285,1413,1416,1417,1285,1420,1285,1422,1424,1425,1427,1428,1431],{},"Most of these ship empty, for two different reasons. ",[894,1412,1349],{},[894,1414,1415],{},"aside.links",",\n",[894,1418,1419],{},"footer.legal",[894,1421,941],{},[894,1423,971],{}," and the landing copy name a specific project —\na repository, a community, a name, a release, a sentence about what it does — and\nbelong to whoever runs the site. ",[894,1426,1334],{}," names the parts of a documentation\n",[945,1429,1430],{},"tree",", and the tree is yours: four tabs pointing at folder names the layer\nguessed would lead nowhere. Until you set it, the row does not render and the\nsidebar shows the whole tree, which is the right shape for docs that are not\nsplit into sections.",[890,1433,1434,1437,1438,1441,1442,1444,1445,1448],{},[945,1435,1436],{},"One row per source."," An entry belongs to the source whose URL prefix it lies\nunder, and the row shows the entries of the source the reader is in — so a site\nwith documentation at the root and something else at ",[894,1439,1440],{},"\u002Fdemo"," writes one\n",[894,1443,1334],{}," list and each area draws its own part of it. A generated section\nunder an area (",[894,1446,1447],{},"\u002Fdemo\u002Fapi",") belongs to that area rather than being one of its\nown. A site with a single source has one area, every entry is inside it, and the\nrow is exactly the list as written.",[1100,1450,1451],{"id":1399},"Landing",[890,1453,1405,1454,1456],{},[894,1455,828],{}," draws three bands, and each one is absent until its key is set.",[912,1458,1459,1470],{},[915,1460,1461],{},[918,1462,1463,1465,1467],{},[921,1464,924],{"align":923},[921,1466,927],{"align":923},[921,1468,1469],{"align":923},"What it draws",[932,1471,1472,1486,1505,1518,1535,1549,1563],{},[918,1473,1474,1479,1483],{},[937,1475,1476],{"align":923},[894,1477,1478],{},"badge",[937,1480,1481],{"align":923},[945,1482,947],{},[937,1484,1485],{"align":923},"The pill above the headline — text, or a badge object",[918,1487,1488,1493,1497],{},[937,1489,1490],{"align":923},[894,1491,1492],{},"headline",[937,1494,1495],{"align":923},[945,1496,947],{},[937,1498,1181,1499,1502,1503],{"align":923},[894,1500,1501],{},"h1","; falls back to ",[894,1504,941],{},[918,1506,1507,1511,1515],{},[937,1508,1509],{"align":923},[894,1510,1288],{},[937,1512,1513],{"align":923},[945,1514,947],{},[937,1516,1517],{"align":923},"The paragraph under it, and the page's meta description",[918,1519,1520,1525,1528],{},[937,1521,1522],{"align":923},[894,1523,1524],{},"actions",[937,1526,1527],{"align":923},"one, \"Read the docs\"",[937,1529,1530,1531,1534],{"align":923},"The hero buttons; an action with no ",[894,1532,1533],{},"to"," resolves to the first section",[918,1536,1537,1542,1546],{},[937,1538,1539],{"align":923},[894,1540,1541],{},"command",[937,1543,1544],{"align":923},[945,1545,947],{},[937,1547,1548],{"align":923},"A copyable install command under the buttons",[918,1550,1551,1556,1560],{},[937,1552,1553],{"align":923},[894,1554,1555],{},"preview",[937,1557,1558],{"align":923},[945,1559,947],{},[937,1561,1562],{"align":923},"A page of this site, embedded in a browser window",[918,1564,1565,1570,1574],{},[937,1566,1567],{"align":923},[894,1568,1569],{},"features",[937,1571,1572],{"align":923},[945,1573,1339],{},[937,1575,1576],{"align":923},"The card grid",[890,1578,1579,1581,1582,1584,1585,1587],{},[894,1580,1541],{}," is a plain ",[894,1583,1131],{},", not text: a shell command is the same in every\nlanguage, and one translated by mistake is one that does not run. The layer ships\nnone — it does not know what your project is called, the same reason ",[894,1586,1349],{}," is\nempty.",[890,1589,1590],{},"There is no closing call to action, deliberately. The hero's buttons are the\ncall; repeating them under a card grid asks a reader who has just arrived to decide\ntwice.",[890,1592,1593,1595,1596,1598],{},[894,1594,1478],{}," ships empty for the same reason as ",[894,1597,1349],{},": a pill above the headline\nsays something about the state of a project — \"beta\", \"v2 is out\" — and the layer\nknows nothing about the state of yours. A string is the short form; the object\nadds an icon, a colour and a destination.",[912,1600,1601,1614],{},[915,1602,1603],{},[918,1604,1605,1610,1612],{},[921,1606,1607,1609],{"align":923},[894,1608,1478],{}," field",[921,1611,1114],{"align":923},[921,1613,1117],{"align":923},[932,1615,1616,1634,1648,1676,1689],{},[918,1617,1618,1623,1625],{},[937,1619,1620],{"align":923},[894,1621,1622],{},"label",[937,1624,1164],{"align":923},[937,1626,1627,1628,1631,1632],{"align":923},"Required. ",[894,1629,1630],{},"{version}"," is replaced with the site's ",[894,1633,971],{},[918,1635,1636,1641,1645],{},[937,1637,1638],{"align":923},[894,1639,1640],{},"icon",[937,1642,1643],{"align":923},[894,1644,1131],{},[937,1646,1647],{"align":923},"Any Iconify name",[918,1649,1650,1655,1659],{},[937,1651,1652],{"align":923},[894,1653,1654],{},"variant",[937,1656,1657],{"align":923},[894,1658,1131],{},[937,1660,1661,1285,1664,1285,1667,1285,1670,1285,1673],{"align":923},[894,1662,1663],{},"default",[894,1665,1666],{},"secondary",[894,1668,1669],{},"outline",[894,1671,1672],{},"success",[894,1674,1675],{},"destructive",[918,1677,1678,1682,1686],{},[937,1679,1680],{"align":923},[894,1681,1533],{},[937,1683,1684],{"align":923},[894,1685,1131],{},[937,1687,1688],{"align":923},"Makes the whole pill a link",[918,1690,1691,1696,1701],{},[937,1692,1693],{"align":923},[894,1694,1695],{},"external",[937,1697,1698],{"align":923},[894,1699,1700],{},"boolean",[937,1702,1703],{"align":923},"The new tab",[1705,1706,1711],"pre",{"className":1707,"code":1708,"filename":900,"language":1709,"meta":1710,"style":1710},"language-ts shiki shiki-themes github-light github-dark","badge: {\n  label: '{version} released',\n  icon: 'lucide:rocket',\n  variant: 'success',\n  to: 'https:\u002F\u002Fgithub.com\u002Facme\u002Fsdk\u002Freleases\u002Flatest',\n  external: true\n}\n","ts","",[894,1712,1713,1725,1740,1753,1766,1779,1791],{"__ignoreMap":1710},[1714,1715,1718,1721],"span",{"class":1716,"line":1717},"line",1,[1714,1719,1478],{"class":1720},"sScJk",[1714,1722,1724],{"class":1723},"sVt8B",": {\n",[1714,1726,1728,1731,1734,1738],{"class":1716,"line":1727},2,[1714,1729,1730],{"class":1720},"  label",[1714,1732,1733],{"class":1723},": ",[1714,1735,1737],{"class":1736},"sZZnC","'{version} released'",[1714,1739,1416],{"class":1723},[1714,1741,1743,1746,1748,1751],{"class":1716,"line":1742},3,[1714,1744,1745],{"class":1720},"  icon",[1714,1747,1733],{"class":1723},[1714,1749,1750],{"class":1736},"'lucide:rocket'",[1714,1752,1416],{"class":1723},[1714,1754,1756,1759,1761,1764],{"class":1716,"line":1755},4,[1714,1757,1758],{"class":1720},"  variant",[1714,1760,1733],{"class":1723},[1714,1762,1763],{"class":1736},"'success'",[1714,1765,1416],{"class":1723},[1714,1767,1769,1772,1774,1777],{"class":1716,"line":1768},5,[1714,1770,1771],{"class":1720},"  to",[1714,1773,1733],{"class":1723},[1714,1775,1776],{"class":1736},"'https:\u002F\u002Fgithub.com\u002Facme\u002Fsdk\u002Freleases\u002Flatest'",[1714,1778,1416],{"class":1723},[1714,1780,1782,1785,1787],{"class":1716,"line":1781},6,[1714,1783,1784],{"class":1720},"  external",[1714,1786,1733],{"class":1723},[1714,1788,1790],{"class":1789},"sj4cs","true\n",[1714,1792,1794],{"class":1716,"line":1793},7,[1714,1795,1796],{"class":1723},"}\n",[890,1798,1799,1801,1802,1805],{},[894,1800,1555],{}," is a live window, not a picture. It embeds a page of ",[945,1803,1804],{},"this"," site in a\nbrowser frame the reader can scroll, navigate and switch the theme of without\nleaving the landing page. The frame mounts only once the band scrolls into view,\nand never during server rendering — an iframe in the initial HTML is a second\nfull page load competing with the first.",[912,1807,1808,1820],{},[915,1809,1810],{},[918,1811,1812,1816,1818],{},[921,1813,1814,1609],{"align":923},[894,1815,1555],{},[921,1817,1114],{"align":923},[921,1819,1117],{"align":923},[932,1821,1822,1835,1859,1872,1888],{},[918,1823,1824,1828,1832],{},[937,1825,1826],{"align":923},[894,1827,1533],{},[937,1829,1830],{"align":923},[894,1831,1131],{},[937,1833,1834],{"align":923},"The page to embed; defaults to the first section",[918,1836,1837,1842,1846],{},[937,1838,1839],{"align":923},[894,1840,1841],{},"height",[937,1843,1844],{"align":923},[894,1845,1131],{},[937,1847,1848,1849,1285,1852,1855,1856],{"align":923},"Any CSS length. Default ",[894,1850,1851],{},"32rem",[894,1853,1854],{},"24rem"," under ",[894,1857,1858],{},"sm",[918,1860,1861,1865,1869],{},[937,1862,1863],{"align":923},[894,1864,1126],{},[937,1866,1867],{"align":923},[894,1868,1131],{},[937,1870,1871],{"align":923},"A screenshot INSTEAD of the live page",[918,1873,1874,1878,1882],{},[937,1875,1876],{"align":923},[894,1877,1143],{},[937,1879,1880],{"align":923},[894,1881,1131],{},[937,1883,1884,1885,1887],{"align":923},"Serves dark mode; without it ",[894,1886,1126],{}," serves both",[918,1889,1890,1894,1896],{},[937,1891,1892],{"align":923},[894,1893,1161],{},[937,1895,1164],{"align":923},[937,1897,1898],{"align":923},"The image's alt text, and the frame's accessible name",[1900,1901,1904],"callout",{"title":1902,"type":1903},"A screenshot is the cheaper option","tip",[890,1905,1906,1907,1909],{},"The live frame loads the application a second time. A site that would rather not\npay for that sets ",[894,1908,1126],{}," and gets the same window around a still image.",[1100,1911,1913],{"id":1912},"link-shape","Link shape",[912,1915,1916,1926],{},[915,1917,1918],{},[918,1919,1920,1922,1924],{},[921,1921,339],{"align":923},[921,1923,1114],{"align":923},[921,1925,1117],{"align":923},[932,1927,1928,1939,1952,1967,1978,1991,2005],{},[918,1929,1930,1934,1936],{},[937,1931,1932],{"align":923},[894,1933,1622],{},[937,1935,1164],{"align":923},[937,1937,1938],{"align":923},"Required",[918,1940,1941,1945,1949],{},[937,1942,1943],{"align":923},[894,1944,1533],{},[937,1946,1947],{"align":923},[894,1948,1131],{},[937,1950,1951],{"align":923},"A documentation path is localised; a URL is not",[918,1953,1954,1958,1962],{},[937,1955,1956],{"align":923},[894,1957,1640],{},[937,1959,1960],{"align":923},[894,1961,1131],{},[937,1963,1964,1965],{"align":923},"Any Iconify name, e.g. ",[894,1966,11],{},[918,1968,1969,1973,1975],{},[937,1970,1971],{"align":923},[894,1972,1288],{},[937,1974,1164],{"align":923},[937,1976,1977],{"align":923},"Shown in a navbar dropdown",[918,1979,1980,1984,1988],{},[937,1981,1982],{"align":923},[894,1983,1695],{},[937,1985,1986],{"align":923},[894,1987,1700],{},[937,1989,1990],{"align":923},"The new tab and the arrow — never the routing",[918,1992,1993,1997,2002],{},[937,1994,1995],{"align":923},[894,1996,1326],{},[937,1998,1999],{"align":923},[894,2000,2001],{},"DuxtLink[]",[937,2003,2004],{"align":923},"Turns a navbar entry into a dropdown",[918,2006,2007,2011,2014],{},[937,2008,2009],{"align":923},[894,2010,1654],{},[937,2012,2013],{"align":923},"button variant",[937,2015,2016,2019],{"align":923},[894,2017,2018],{},"landing.actions"," only",[890,2021,2022,2023,2026,2027,905],{},"Every field marked ",[2024,2025,1164],"em",{}," takes a literal, an i18n key or a per-locale record —\nsee ",[903,2028,89],{"href":90},[907,2030,47],{"id":2031},"sources",[912,2033,2034,2045],{},[915,2035,2036],{},[918,2037,2038,2040,2043],{},[921,2039,924],{"align":923},[921,2041,2042],{"align":923},"Read at",[921,2044,930],{"align":923},[932,2046,2047,2059,2071],{},[918,2048,2049,2053,2056],{},[937,2050,2051],{"align":923},[894,2052,2031],{},[937,2054,2055],{"align":923},"build time",[937,2057,2058],{"align":923},"The documentation sources",[918,2060,2061,2066,2068],{},[937,2062,2063],{"align":923},[894,2064,2065],{},"sourceOptions",[937,2067,2055],{"align":923},[937,2069,2070],{"align":923},"How those sources become URL prefixes",[918,2072,2073,2078,2081],{},[937,2074,2075],{"align":923},[894,2076,2077],{},"versions",[937,2079,2080],{"align":923},"runtime",[937,2082,2083],{"align":923},"Overrides the derived versions, when they need labels or descriptions",[890,2085,2086,2087,2090,2091,2093],{},"Both source keys have ",[903,2088,2089],{"href":194},"their own page",". ",[894,2092,999],{}," is the third\nbuild-time key: changing any of the three needs a rebuild.",[907,2095,2097],{"id":2096},"the-feed","The feed",[890,2099,2100,2102,2103,2106],{},[894,2101,645],{}," is empty until ",[894,2104,2105],{},"feed.path"," names a section:",[1705,2108,2110],{"className":1707,"code":2109,"language":1709,"meta":1710,"style":1710},"feed: { path: '\u002Fchangelog', title: 'my project — releases' }\n",[894,2111,2112],{"__ignoreMap":1710},[1714,2113,2114,2117,2120,2123,2125,2128,2130,2132,2134,2137],{"class":1716,"line":1717},[1714,2115,2116],{"class":1720},"feed",[1714,2118,2119],{"class":1723},": { ",[1714,2121,2122],{"class":1720},"path",[1714,2124,1733],{"class":1723},[1714,2126,2127],{"class":1736},"'\u002Fchangelog'",[1714,2129,1285],{"class":1723},[1714,2131,941],{"class":1720},[1714,2133,1733],{"class":1723},[1714,2135,2136],{"class":1736},"'my project — releases'",[1714,2138,2139],{"class":1723}," }\n",[890,2141,2142,2143,2146,2147,2149],{},"Off by default on purpose. A feed is a list of things that ",[945,2144,2145],{},"happened",", and a\nreference page being edited is not an event — a site publishing every page edit\nas an item teaches its readers to unsubscribe. Items are ordered by a page's own\n",[894,2148,1295],{},", falling back to the last commit that touched it, and only the default\nversion of each source contributes, so a versioned changelog does not repeat\nevery entry once per version.",[890,2151,2152,2153,2156,2157,2159],{},"The section it is usually pointed at is a\n",[903,2154,2155],{"href":163},"release history",", whose pages carry a ",[894,2158,1295],{}," each.",[907,2161,2163],{"id":2162},"generated-not-written","Generated, not written",[912,2165,2166,2178],{},[915,2167,2168],{},[918,2169,2170,2172,2175],{},[921,2171,924],{"align":923},[921,2173,2174],{"align":923},"Written by",[921,2176,2177],{"align":923},"Holds",[932,2179,2180,2193,2205],{},[918,2181,2182,2187,2190],{},[937,2183,2184],{"align":923},[894,2185,2186],{},"resolvedSources",[937,2188,2189],{"align":923},"the build",[937,2191,2192],{"align":923},"The manifest: which collection serves which prefix",[918,2194,2195,2200,2202],{},[937,2196,2197],{"align":923},[894,2198,2199],{},"layerVersion",[937,2201,2189],{"align":923},[937,2203,2204],{"align":923},"duxt's own version, for the footer",[918,2206,2207,2212,2214],{},[937,2208,2209],{"align":923},[894,2210,2211],{},"layerRepository",[937,2213,2189],{"align":923},[937,2215,2216],{"align":923},"duxt's own repository, for the footer",[890,2218,2219],{},"Setting any of the three by hand is overwritten on the next build.",[2221,2222,2223],"style",{},"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 .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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);}",{"title":1710,"searchDepth":1727,"depth":1727,"links":2225},[2226,2230,2234,2235,2236],{"id":909,"depth":1727,"text":910,"children":2227},[2228,2229],{"id":957,"depth":1742,"text":957},{"id":985,"depth":1742,"text":985},{"id":1244,"depth":1727,"text":1245,"children":2231},[2232,2233],{"id":1399,"depth":1742,"text":1451},{"id":1912,"depth":1742,"text":1913},{"id":2031,"depth":1727,"text":47},{"id":2096,"depth":1727,"text":2097},{"id":2162,"depth":1727,"text":2163},[2238],{"name":2239,"commits":2240},"Titus Kirch",10,"md","2026-09-10T01:31:33+02:00",{},"---\ntitle: Configuration\ndescription: Every key under duxt in app.config.ts — what it controls, and when it is read.\nicon: lucide:settings\n---\n\nEverything below lives under `duxt` in your `app\u002Fapp.config.ts`. How the merge\nworks, and why arrays replace rather than append, is in\n[Configuration](\u002Fgetting-started\u002Fconfiguration).\n\n## Site\n\n| Key                | Default            | What it controls                                        |\n| :----------------- | :----------------- | :------------------------------------------------------ |\n| `title`            | **none**           | The name in the navbar and in the SEO title              |\n| `logo`              | **none**           | A wordmark replacing the icon-and-name pair — see below  |\n| `version`          | **none**           | The badge beside it                                      |\n| `organization`     | **none**           | Who publishes the site, for schema.org — see below       |\n| `locales`          | all seven          | Which of the layer's languages this site serves          |\n| `breadcrumb`       | `true`             | `false` drops the trail above the page title             |\n| `pageIcon`          | **none**           | Icon for any page whose frontmatter sets none — a section's own wins |\n| `packageManagers`  | pnpm, npm, yarn, bun | Which managers a command block offers, in that order   |\n| `requestSamples`   | seven of twelve    | Which code samples the try-it client offers — see [Request samples](\u002Freference\u002Fopenapi\u002Frequest-samples) |\n| `sampleLanguages`  | **none**           | Extra Shiki grammars, for `x-codeSamples` in a language no sample names |\n| `poweredBy`        | on                 | `false` drops the \"Powered by duxt\" line from the footer |\n\n### `logo`\n\n| Field     | Type     | Notes                                                       |\n| :-------- | :------- | :----------------------------------------------------------- |\n| `src`     | `string` | The mark. Unset leaves the generic icon beside `title`      |\n| `srcDark` | `string` | Swapped in by CSS under the `dark` class, not by script     |\n| `alt`     | text     | Falls back to `title`                                       |\n\nSetting one is [Brand your site](\u002Fguides\u002Fbrand-your-site).\n\n### `organization`\n\nThe `Organization` node search engines and AI summaries read to name a source.\nAbsent until you set it: duxt renders somebody else's documentation and does not\nguess whose.\n\n| Field  | Type     | Notes                                                          |\n| :----- | :------- | :--------------------------------------------------------------- |\n| `name` | text     | The publisher's name. Nothing is published without it          |\n| `url`  | `string` | Their site. Falls back to `site.url`                           |\n| `logo` | `string` | Absolute, or a path from the site root; square and 112px or more |\n\n\n## Navigation and links\n\nA section entry is a link plus one field of its own:\n\n| Field      | Type     | Notes                                                              |\n| :--------- | :------- | :------------------------------------------------------------------ |\n| `pageIcon` | `string` | Icon for pages in this section that set none. Overrides `duxt.pageIcon`; a page's own frontmatter still wins |\n\nUseful where pages cannot carry an icon at all — an ADR's frontmatter is fixed\nat `title`, `description`, `status` and `date`, so the decision log otherwise\nrenders without one.\n\n| Key          | Default | What it controls                                             |\n| :----------- | :------ | :----------------------------------------------------------- |\n| `navigation` | one entry | Navbar links; an entry with `children` becomes a dropdown |\n| `sections`   | **empty** | The second navbar row — the top-level parts of the docs    |\n| `links`      | **empty** | Icon links on the right of the navbar                      |\n| `aside`      | title only | `title` and `links` under the table of contents           |\n| `footer`     | **empty** | `copyright` and `legal`                                    |\n| `landing`    | one action | The page at `\u002F`   |\n\nMost of these ship empty, for two different reasons. `links`, `aside.links`,\n`footer.legal`, `title`, `version` and the landing copy name a specific project —\na repository, a community, a name, a release, a sentence about what it does — and\nbelong to whoever runs the site. `sections` names the parts of a documentation\n**tree**, and the tree is yours: four tabs pointing at folder names the layer\nguessed would lead nowhere. Until you set it, the row does not render and the\nsidebar shows the whole tree, which is the right shape for docs that are not\nsplit into sections.\n\n**One row per source.** An entry belongs to the source whose URL prefix it lies\nunder, and the row shows the entries of the source the reader is in — so a site\nwith documentation at the root and something else at `\u002Fdemo` writes one\n`sections` list and each area draws its own part of it. A generated section\nunder an area (`\u002Fdemo\u002Fapi`) belongs to that area rather than being one of its\nown. A site with a single source has one area, every entry is inside it, and the\nrow is exactly the list as written.\n\n### Landing\n\nThe page at `\u002F` draws three bands, and each one is absent until its key is set.\n\n| Key           | Default              | What it draws                                      |\n| :------------ | :------------------- | :-------------------------------------------------- |\n| `badge`       | **none**             | The pill above the headline — text, or a badge object |\n| `headline`    | **none**             | The `h1`; falls back to `title`                     |\n| `description` | **none**             | The paragraph under it, and the page's meta description |\n| `actions`     | one, \"Read the docs\" | The hero buttons; an action with no `to` resolves to the first section |\n| `command`     | **none**             | A copyable install command under the buttons        |\n| `preview`     | **none**             | A page of this site, embedded in a browser window   |\n| `features`    | **empty**            | The card grid                                       |\n\n`command` is a plain `string`, not text: a shell command is the same in every\nlanguage, and one translated by mistake is one that does not run. The layer ships\nnone — it does not know what your project is called, the same reason `links` is\nempty.\n\nThere is no closing call to action, deliberately. The hero's buttons are the\ncall; repeating them under a card grid asks a reader who has just arrived to decide\ntwice.\n\n`badge` ships empty for the same reason as `links`: a pill above the headline\nsays something about the state of a project — \"beta\", \"v2 is out\" — and the layer\nknows nothing about the state of yours. A string is the short form; the object\nadds an icon, a colour and a destination.\n\n| `badge` field | Type     | Notes                                                     |\n| :------------ | :------- | :--------------------------------------------------------- |\n| `label`       | text     | Required. `{version}` is replaced with the site's `version` |\n| `icon`        | `string` | Any Iconify name                                           |\n| `variant`     | `string` | `default`, `secondary`, `outline`, `success`, `destructive` |\n| `to`          | `string` | Makes the whole pill a link                                |\n| `external`    | `boolean`| The new tab                                                |\n\n```ts [app\u002Fapp.config.ts]\nbadge: {\n  label: '{version} released',\n  icon: 'lucide:rocket',\n  variant: 'success',\n  to: 'https:\u002F\u002Fgithub.com\u002Facme\u002Fsdk\u002Freleases\u002Flatest',\n  external: true\n}\n```\n\n`preview` is a live window, not a picture. It embeds a page of **this** site in a\nbrowser frame the reader can scroll, navigate and switch the theme of without\nleaving the landing page. The frame mounts only once the band scrolls into view,\nand never during server rendering — an iframe in the initial HTML is a second\nfull page load competing with the first.\n\n| `preview` field | Type     | Notes                                                    |\n| :-------------- | :------- | :-------------------------------------------------------- |\n| `to`            | `string` | The page to embed; defaults to the first section          |\n| `height`        | `string` | Any CSS length. Default `32rem`, `24rem` under `sm`       |\n| `src`           | `string` | A screenshot INSTEAD of the live page                     |\n| `srcDark`       | `string` | Serves dark mode; without it `src` serves both            |\n| `alt`           | text     | The image's alt text, and the frame's accessible name     |\n\n::callout{type=\"tip\" title=\"A screenshot is the cheaper option\"}\nThe live frame loads the application a second time. A site that would rather not\npay for that sets `src` and gets the same window around a still image.\n::\n\n### Link shape\n\n| Field         | Type                | Notes                                            |\n| :------------ | :------------------ | :----------------------------------------------- |\n| `label`       | text                | Required                                         |\n| `to`          | `string`            | A documentation path is localised; a URL is not  |\n| `icon`        | `string`            | Any Iconify name, e.g. `lucide:rocket`           |\n| `description` | text                | Shown in a navbar dropdown                       |\n| `external`    | `boolean`           | The new tab and the arrow — never the routing    |\n| `children`    | `DuxtLink[]`        | Turns a navbar entry into a dropdown             |\n| `variant`     | button variant      | `landing.actions` only                           |\n\nEvery field marked _text_ takes a literal, an i18n key or a per-locale record —\nsee [Localisation](\u002Fconcepts\u002Flocalisation).\n\n## Sources\n\n| Key             | Read at    | What it controls                          |\n| :-------------- | :--------- | :---------------------------------------- |\n| `sources`       | build time | The documentation sources                 |\n| `sourceOptions` | build time | How those sources become URL prefixes     |\n| `versions`      | runtime    | Overrides the derived versions, when they need labels or descriptions |\n\nBoth source keys have [their own page](\u002Freference\u002Fsources). `locales` is the third\nbuild-time key: changing any of the three needs a rebuild.\n\n## The feed\n\n`\u002Frss.xml` is empty until `feed.path` names a section:\n\n```ts\nfeed: { path: '\u002Fchangelog', title: 'my project — releases' }\n```\n\nOff by default on purpose. A feed is a list of things that **happened**, and a\nreference page being edited is not an event — a site publishing every page edit\nas an item teaches its readers to unsubscribe. Items are ordered by a page's own\n`date`, falling back to the last commit that touched it, and only the default\nversion of each source contributes, so a versioned changelog does not repeat\nevery entry once per version.\n\nThe section it is usually pointed at is a\n[release history](\u002Freference\u002Fchangelog), whose pages carry a `date` each.\n\n## Generated, not written\n\n| Key                | Written by       | Holds                                        |\n| :----------------- | :--------------- | :------------------------------------------- |\n| `resolvedSources`  | the build        | The manifest: which collection serves which prefix |\n| `layerVersion`     | the build        | duxt's own version, for the footer            |\n| `layerRepository`  | the build        | duxt's own repository, for the footer         |\n\nSetting any of the three by hand is overwritten on the next build.\n",{"title":20,"description":160},{"loc":158},"AKEdo_hATGC8OzxAaQK-Q1flbiPLl16jgoVbTt51vOE","en-GB","en-US",{"left":833,"top":833,"width":834,"height":834,"rotate":833,"vFlip":835,"hFlip":835,"body":2251},"\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":833,"top":833,"width":834,"height":834,"rotate":833,"vFlip":835,"hFlip":835,"body":2253},"\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":833,"top":833,"width":834,"height":834,"rotate":833,"vFlip":835,"hFlip":835,"body":2255},"\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":833,"top":833,"width":834,"height":834,"rotate":833,"vFlip":835,"hFlip":835,"body":2257},"\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":833,"top":833,"width":834,"height":834,"rotate":833,"vFlip":835,"hFlip":835,"body":2259},"\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":833,"top":833,"width":834,"height":834,"rotate":833,"vFlip":835,"hFlip":835,"body":2261},"\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":833,"top":833,"width":834,"height":834,"rotate":833,"vFlip":835,"hFlip":835,"body":2263},"\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":833,"top":833,"width":834,"height":834,"rotate":833,"vFlip":835,"hFlip":835,"body":2265},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M7 7h10v10M7 17L17 7\"\u002F>",{"left":833,"top":833,"width":834,"height":834,"rotate":833,"vFlip":835,"hFlip":835,"body":2267},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497zM15 5l4 4\"\u002F>",{"left":833,"top":833,"width":834,"height":834,"rotate":833,"vFlip":835,"hFlip":835,"body":2269},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M15 14c.2-1 .7-1.7 1.5-2.5c1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5c.7.7 1.3 1.5 1.5 2.5m0 4h6m-5 4h4\"\u002F>",{"left":833,"top":833,"width":834,"height":834,"rotate":833,"vFlip":835,"hFlip":835,"body":2271},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m12 19l-7-7l7-7m7 7H5\"\u002F>",{"left":833,"top":833,"width":834,"height":834,"rotate":833,"vFlip":835,"hFlip":835,"body":2273},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 12h14m-7-7l7 7l-7 7\"\u002F>",1789004671580]