[{"data":1,"prerenderedAt":516},["ShallowReactive",2],{"docs-navigation:en":3,"content-page-surround:blog:grxMht3I6jtFIKcZ7dtSbY4tCPfoa_RZdwBfcHQ6-r8":242,"content-page:blog:aCh35ZoD6FR_5IYiXJ5Drd0iytdm27pqnjoFS1naw4s":251,"i-lucide:terminal":510,"i-lucide:clipboard":514},[4,23,44,78,119,152,172,198,222],{"title":5,"id":6,"canonicalKey":7,"locale":8,"draft":9,"navigation":10,"icon":12,"sidebar":13,"path":14,"children":15},"Documentation","content:en:1.docs:1.getting-started:.navigation.yml","1","en",false,{"icon":11},"lucide:rocket","lucide:book-open","section","\u002Fdocs\u002Fgetting-started",[16],{"title":17,"id":18,"canonicalKey":19,"locale":8,"draft":9,"navigation":20,"icon":21,"path":22},"Installation","content:en:1.docs:1.getting-started:2.installation.md","1\u002F2",{"title":17,"icon":21},"lucide:download","\u002Fdocs\u002Fgetting-started\u002Finstallation",{"title":24,"page":9,"canonicalKey":25,"locale":8,"id":26,"draft":9,"icon":27,"sidebar":28,"children":29},"Concepts","2","content:en:1.docs:2.concepts:.navigation.yml","lucide:boxes","group",[30,37],{"title":31,"id":32,"canonicalKey":33,"locale":8,"draft":9,"navigation":34,"icon":35,"path":36},"How it works","content:en:1.docs:2.concepts:1.how-ginko-docs-works.md","2\u002F1",{"title":31,"icon":35},"lucide:workflow","\u002Fdocs\u002Fconcepts\u002Fhow-ginko-docs-works",{"title":38,"id":39,"canonicalKey":40,"locale":8,"draft":9,"navigation":41,"icon":42,"path":43},"Content and routes","content:en:1.docs:2.concepts:2.content-and-routes.md","2\u002F2",{"icon":42},"lucide:route","\u002Fdocs\u002Fconcepts\u002Fcontent-and-routes",{"title":45,"page":9,"canonicalKey":46,"locale":8,"id":47,"draft":9,"icon":48,"sidebar":28,"children":49},"Authoring","3","content:en:1.docs:3.authoring:.navigation.yml","lucide:pen-line",[50,57,64,71],{"title":51,"id":52,"canonicalKey":53,"locale":8,"draft":9,"navigation":54,"icon":55,"path":56},"Write content","content:en:1.docs:3.authoring:1.write-content.md","3\u002F1",{"title":51,"icon":55},"lucide:file-pen-line","\u002Fdocs\u002Fauthoring\u002Fwrite-content",{"title":58,"id":59,"canonicalKey":60,"locale":8,"draft":9,"navigation":61,"icon":62,"path":63},"Navigation","content:en:1.docs:3.authoring:2.navigation.md","3\u002F2",{"title":58,"icon":62},"lucide:panel-left","\u002Fdocs\u002Fauthoring\u002Fnavigation",{"title":65,"id":66,"canonicalKey":67,"locale":8,"draft":9,"navigation":68,"icon":69,"path":70},"Links","content:en:1.docs:3.authoring:3.links.md","3\u002F3",{"title":65,"icon":69},"lucide:link","\u002Fdocs\u002Fauthoring\u002Flinks",{"title":72,"id":73,"canonicalKey":74,"locale":8,"draft":9,"navigation":75,"icon":76,"path":77},"Use components","content:en:1.docs:3.authoring:4.use-components.md","3\u002F4",{"title":72,"icon":76},"lucide:blocks","\u002Fdocs\u002Fauthoring\u002Fuse-components",{"title":79,"page":9,"canonicalKey":80,"locale":8,"id":81,"draft":9,"icon":82,"sidebar":28,"children":83},"Features","4","content:en:1.docs:4.features:.navigation.yml","lucide:sparkles",[84,91,98,105,112],{"title":85,"id":86,"canonicalKey":87,"locale":8,"draft":9,"navigation":88,"icon":89,"path":90},"Localization","content:en:1.docs:4.features:1.localization.md","4\u002F1",{"title":85},"lucide:languages","\u002Fdocs\u002Ffeatures\u002Flocalization",{"title":92,"id":93,"canonicalKey":94,"locale":8,"draft":9,"navigation":95,"icon":96,"path":97},"Search","content:en:1.docs:4.features:2.search.md","4\u002F2",{"title":92},"lucide:search","\u002Fdocs\u002Ffeatures\u002Fsearch",{"title":99,"id":100,"canonicalKey":101,"locale":8,"draft":9,"navigation":102,"icon":103,"path":104},"Blog","content:en:1.docs:4.features:3.blog.md","4\u002F3",{"title":99},"lucide:newspaper","\u002Fdocs\u002Ffeatures\u002Fblog",{"title":106,"id":107,"canonicalKey":108,"locale":8,"draft":9,"navigation":109,"icon":110,"path":111},"SEO and social cards","content:en:1.docs:4.features:4.seo-and-social-cards.md","4\u002F4",{"title":106},"lucide:globe-2","\u002Fdocs\u002Ffeatures\u002Fseo-and-social-cards",{"title":113,"id":114,"canonicalKey":115,"locale":8,"draft":9,"navigation":116,"icon":117,"path":118},"Agent-readable output","content:en:1.docs:4.features:5.agent-readable-output.md","4\u002F5",{"title":113},"lucide:bot","\u002Fdocs\u002Ffeatures\u002Fagent-readable-output",{"title":120,"page":9,"canonicalKey":121,"locale":8,"id":122,"draft":9,"icon":123,"sidebar":28,"children":124},"Customization","5","content:en:1.docs:5.customization:.navigation.yml","lucide:paintbrush",[125,132,139,146],{"title":126,"id":127,"canonicalKey":128,"locale":8,"draft":9,"navigation":129,"icon":130,"path":131},"Site configuration","content:en:1.docs:5.customization:1.site-configuration.md","5\u002F1",{"title":126},"lucide:settings-2","\u002Fdocs\u002Fcustomization\u002Fsite-configuration",{"title":133,"id":134,"canonicalKey":135,"locale":8,"draft":9,"navigation":136,"icon":137,"path":138},"Landing page","content:en:1.docs:5.customization:2.landing-page.md","5\u002F2",{"title":133},"lucide:layout-template","\u002Fdocs\u002Fcustomization\u002Flanding-page",{"title":140,"id":141,"canonicalKey":142,"locale":8,"draft":9,"navigation":143,"icon":144,"path":145},"Theming and overrides","content:en:1.docs:5.customization:3.theming-and-overrides.md","5\u002F3",{"title":140},"lucide:palette","\u002Fdocs\u002Fcustomization\u002Ftheming-and-overrides",{"title":147,"id":148,"canonicalKey":149,"locale":8,"draft":9,"navigation":150,"icon":76,"path":151},"Custom components","content:en:1.docs:5.customization:4.custom-components.md","5\u002F4",{"title":147},"\u002Fdocs\u002Fcustomization\u002Fcustom-components",{"title":153,"page":9,"canonicalKey":154,"locale":8,"id":155,"draft":9,"icon":156,"sidebar":28,"children":157},"Operations","6","content:en:1.docs:6.operations:.navigation.yml","lucide:cloud-cog",[158,165],{"title":159,"id":160,"canonicalKey":161,"locale":8,"draft":9,"navigation":162,"icon":163,"path":164},"Deployment","content:en:1.docs:6.operations:1.deployment.md","6\u002F1",{"title":159,"icon":163},"lucide:cloud-upload","\u002Fdocs\u002Foperations\u002Fdeployment",{"title":166,"id":167,"canonicalKey":168,"locale":8,"draft":9,"navigation":169,"icon":170,"path":171},"Troubleshooting","content:en:1.docs:6.operations:2.troubleshooting.md","6\u002F2",{"title":166,"icon":170},"lucide:wrench","\u002Fdocs\u002Foperations\u002Ftroubleshooting",{"title":173,"page":9,"canonicalKey":174,"locale":8,"id":175,"draft":9,"icon":176,"sidebar":13,"children":177},"Reference","7","content:en:1.docs:7.reference:.navigation.yml","lucide:braces",[178,185,191],{"title":179,"id":180,"canonicalKey":181,"locale":8,"draft":9,"navigation":182,"icon":183,"path":184},"Content configuration","content:en:1.docs:7.reference:1.content-config.md","7\u002F1",{"title":179,"icon":183},"lucide:database","\u002Fdocs\u002Freference\u002Fcontent-config",{"title":186,"id":187,"canonicalKey":188,"locale":8,"draft":9,"navigation":189,"icon":130,"path":190},"App configuration","content:en:1.docs:7.reference:2.app-config.md","7\u002F2",{"title":186,"icon":130},"\u002Fdocs\u002Freference\u002Fapp-config",{"title":192,"id":193,"canonicalKey":194,"locale":8,"draft":9,"navigation":195,"icon":196,"path":197},"Frontmatter and schemas","content:en:1.docs:7.reference:3.frontmatter.md","7\u002F3",{"title":192,"icon":196},"lucide:file-json-2","\u002Fdocs\u002Freference\u002Ffrontmatter",{"title":199,"page":9,"canonicalKey":200,"locale":8,"id":201,"draft":9,"icon":76,"sidebar":28,"children":202},"Components","8","content:en:1.docs:8.components:.navigation.yml",[203,209,216],{"title":204,"id":205,"canonicalKey":206,"locale":8,"draft":9,"navigation":207,"icon":76,"path":208},"MDC components","content:en:1.docs:8.components:1.mdc-components.md","8\u002F1",{"title":204,"icon":76},"\u002Fdocs\u002Fcomponents\u002Fmdc-components",{"title":210,"id":211,"canonicalKey":212,"locale":8,"draft":9,"navigation":213,"icon":214,"path":215},"API reference panels","content:en:1.docs:8.components:2.api-reference.md","8\u002F2",{"title":210,"icon":214},"lucide:table-properties","\u002Fdocs\u002Fcomponents\u002Fapi-reference",{"title":217,"id":218,"canonicalKey":219,"locale":8,"draft":9,"navigation":220,"icon":76,"path":221},"Component showcase","content:en:1.docs:8.components:3.component-showcase.md","8\u002F3",{"title":217,"icon":76},"\u002Fdocs\u002Fcomponents\u002Fcomponent-showcase",{"title":223,"page":9,"canonicalKey":224,"locale":8,"id":225,"draft":9,"icon":226,"sidebar":28,"children":227},"Resources","9","content:en:1.docs:9.resources:.navigation.yml","lucide:library",[228,235],{"title":229,"id":230,"canonicalKey":231,"locale":8,"draft":9,"navigation":232,"icon":233,"path":234},"Public exports","content:en:1.docs:9.resources:1.public-exports.md","9\u002F1",{"title":229,"icon":233},"lucide:package-open","\u002Fdocs\u002Fresources\u002Fpublic-exports",{"title":236,"id":237,"canonicalKey":238,"locale":8,"draft":9,"navigation":239,"icon":240,"path":241},"Requirements and upgrades","content:en:1.docs:9.resources:2.requirements-and-upgrades.md","9\u002F2",{"title":236,"icon":240},"lucide:refresh-cw","\u002Fdocs\u002Fresources\u002Frequirements-and-upgrades",{"previous":243,"next":247},{"title":244,"id":245,"canonicalKey":25,"locale":8,"draft":9,"path":246},"Design documentation navigation that scales","content:en:2.blog:2.navigation-quality.md","\u002Fblog\u002Fnavigation-quality",{"title":248,"id":249,"canonicalKey":80,"locale":8,"draft":9,"path":250},"Use images without breaking the reading flow","content:en:2.blog:4.editorial-image-systems.md","\u002Fblog\u002Feditorial-image-systems",{"title":252,"description":253,"badge":254,"date":255,"readingTime":256,"author":257,"body":283,"type":491,"id":492,"canonicalKey":46,"draft":9,"partial":9,"locale":8,"collection":493,"navigationFile":9,"file":494,"sitemap":498,"resolvedRefs":500,"route":501,"resolution":507},"Publish documentation for humans and agents","Serve rendered pages and machine-readable Markdown from one canonical content source.","Agents","2026-05-27","6 min read",{"slug":258,"name":259,"role":260,"bio":261,"avatar":262,"id":263,"type":264,"title":259,"canonicalKey":265,"draft":9,"partial":9,"locale":8,"collection":266,"navigationFile":9,"file":267,"body":271,"route":272,"resolution":280},"ginko-docs-team","Ginko Docs Team","Documentation engineering","Maintainers of the Ginko Docs Nuxt layer and its bilingual reference site.","\u002Ffavicon.svg","content:en:authors:ginko-docs-team.json","json","authors\u002Fginko-docs-team","authors",{"source":268,"path":269,"stem":270,"dir":266,"extension":264},"content","en\u002Fauthors\u002Fginko-docs-team.json","en\u002Fauthors\u002Fginko-docs-team",null,{"resolvedPath":273,"alternates":274},"\u002Fauthors\u002Fginko-docs-team",[275,277],{"locale":8,"path":273,"source":276},"variant",{"locale":278,"path":279,"source":276},"de","\u002Fde\u002Fauthors\u002Fginko-docs-team",{"requested":281,"resolved":282,"usedFallback":9},{"locale":8},{"locale":8},{"type":284,"children":285,"toc":482},"root",[286,294,299,306,340,368,373,379,396,401,407,440,445,451,456,468],{"type":287,"tag":288,"props":289,"children":290},"element","p",{},[291],{"type":292,"value":293},"text","Agent-readable documentation should not be a second, shortened copy of the site. Separate content pipelines drift: a corrected example reaches the rendered page while an old answer remains in a generated prompt file or private index.",{"type":287,"tag":288,"props":295,"children":296},{},[297],{"type":292,"value":298},"Ginko Docs starts from one document model and projects it into several representations. Readers get the full Nuxt page. Search gets normalized records. Static deployments receive raw Markdown and catalogs. Server deployments can add request-time negotiation and MCP tools.",{"type":287,"tag":300,"props":301,"children":303},"h2",{"id":302},"keep-explicit-markdown-urls",[304],{"type":292,"value":305},"Keep explicit Markdown URLs",{"type":287,"tag":288,"props":307,"children":308},{},[309,311,317,319,324,326,331,333,338],{"type":292,"value":310},"Every public content route has an explicit raw counterpart under ",{"type":287,"tag":312,"props":313,"children":314},"code",{},[315],{"type":292,"value":316},"\u002Fraw",{"type":292,"value":318}," with a ",{"type":287,"tag":312,"props":320,"children":321},{},[322],{"type":292,"value":323},".md",{"type":292,"value":325}," suffix. A link to that file works on a static host, in ",{"type":287,"tag":312,"props":327,"children":328},{},[329],{"type":292,"value":330},"curl",{"type":292,"value":332},", and in tools that cannot send custom ",{"type":287,"tag":312,"props":334,"children":335},{},[336],{"type":292,"value":337},"Accept",{"type":292,"value":339}," headers.",{"type":287,"tag":341,"props":342,"children":346},"pre",{"language":343,"filename":344,"class":345},"bash","Terminal","shiki shiki-themes light-plus dark-plus dark:dark-plus",[347],{"type":287,"tag":312,"props":348,"children":350},{"class":349},"language-bash",[351],{"type":287,"tag":352,"props":353,"children":356},"span",{"class":354,"style":355},"line","display: inline",[357,362],{"type":287,"tag":352,"props":358,"children":360},{"style":359},"color:#795E26;--shiki-dark:#DCDCAA",[361],{"type":292,"value":330},{"type":287,"tag":352,"props":363,"children":365},{"style":364},"color:#A31515;--shiki-dark:#CE9178",[366],{"type":292,"value":367}," https:\u002F\u002Fdocs.example.com\u002Fraw\u002Fdocs\u002Fgetting-started.md",{"type":287,"tag":288,"props":369,"children":370},{},[371],{"type":292,"value":372},"This is the most portable agent interface because it behaves like an ordinary generated file.",{"type":287,"tag":300,"props":374,"children":376},{"id":375},"use-catalogs-for-discovery",[377],{"type":292,"value":378},"Use catalogs for discovery",{"type":287,"tag":288,"props":380,"children":381},{},[382,387,389,394],{"type":287,"tag":312,"props":383,"children":384},{},[385],{"type":292,"value":386},"\u002Fllms.txt",{"type":292,"value":388}," provides a compact list of available pages. ",{"type":287,"tag":312,"props":390,"children":391},{},[392],{"type":292,"value":393},"\u002Fllms-full.txt",{"type":292,"value":395}," combines the public corpus for clients that prefer one larger context. Localized sites also generate locale-specific catalogs.",{"type":287,"tag":288,"props":397,"children":398},{},[399],{"type":292,"value":400},"Catalogs solve discovery, not ranking or authorization. Keep private documentation out of the public collection instead of expecting an LLM catalog to enforce access control.",{"type":287,"tag":300,"props":402,"children":404},{"id":403},"add-runtime-interfaces-deliberately",[405],{"type":292,"value":406},"Add runtime interfaces deliberately",{"type":287,"tag":288,"props":408,"children":409},{},[410,412,417,419,424,426,431,433,438],{"type":292,"value":411},"A Nitro server can return Markdown from a normal page URL when the request sends ",{"type":287,"tag":312,"props":413,"children":414},{},[415],{"type":292,"value":416},"Accept: text\u002Fmarkdown",{"type":292,"value":418},". It can also expose ",{"type":287,"tag":312,"props":420,"children":421},{},[422],{"type":292,"value":423},"\u002Fmcp",{"type":292,"value":425},", where ",{"type":287,"tag":312,"props":427,"children":428},{},[429],{"type":292,"value":430},"list-pages",{"type":292,"value":432}," returns the default catalog and ",{"type":287,"tag":312,"props":434,"children":435},{},[436],{"type":292,"value":437},"get-page",{"type":292,"value":439}," reads the raw Markdown for an explicit public path.",{"type":287,"tag":288,"props":441,"children":442},{},[443],{"type":292,"value":444},"These features require server code. A static host still has the explicit raw routes and catalogs but cannot negotiate responses or execute MCP tools.",{"type":287,"tag":300,"props":446,"children":448},{"id":447},"preserve-meaning-in-custom-components",[449],{"type":292,"value":450},"Preserve meaning in custom components",{"type":287,"tag":288,"props":452,"children":453},{},[454],{"type":292,"value":455},"Standard Markdown converts naturally. A custom component may need more care. Ginko Docs registers safe default serializers for its built-in tags, producing an XML-style component representation with static props and rendered children.",{"type":287,"tag":288,"props":457,"children":458},{},[459,461,466],{"type":292,"value":460},"When a component represents something semantic that should read differently—an API explorer, benchmark, or product state—register a serializer through ",{"type":287,"tag":312,"props":462,"children":463},{},[464],{"type":292,"value":465},"@lupinum\u002Fginko-content\u002Fagent-registry",{"type":292,"value":467},". Keep the serializer beside the component contract so visual and machine-readable changes are reviewed together.",{"type":287,"tag":288,"props":469,"children":470},{},[471,473,480],{"type":292,"value":472},"The ",{"type":287,"tag":474,"props":475,"children":477},"a",{"href":476},"$docs\u002Ffeatures\u002Fagent-readable-output",[478],{"type":292,"value":479},"agent-readable output guide",{"type":292,"value":481}," includes the deployment matrix and configuration boundaries. Check the rendered page, raw route, and catalog entry after changing a component that carries meaning; all three should describe the same fact.",{"title":483,"searchDepth":484,"depth":484,"links":485},"",4,[486,488,489,490],{"id":302,"depth":487,"text":305},2,{"id":375,"depth":487,"text":378},{"id":403,"depth":487,"text":406},{"id":447,"depth":487,"text":450},"markdown","content:en:2.blog:3.prerender-seo-search.md","blog",{"source":268,"path":495,"stem":496,"dir":493,"extension":497},"en\u002F2.blog\u002F3.prerender-seo-search.md","en\u002F2.blog\u002F3.prerender-seo-search","md",{"lastmod":499},"2026-05-27T00:00:00.000Z",{"$docs\u002Ffeatures\u002Fagent-readable-output":118},{"requestedPath":502,"resolvedPath":502,"alternates":503},"\u002Fblog\u002Fprerender-seo-search",[504,505],{"locale":8,"path":502,"source":276},{"locale":278,"path":506,"source":276},"\u002Fde\u002Fblog\u002Fprerender-seo-suche",{"requested":508,"resolved":509,"usedFallback":9},{"locale":8},{"locale":8},{"left":511,"top":511,"width":512,"height":512,"rotate":511,"vFlip":9,"hFlip":9,"body":513},0,24,"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 19h8M4 17l6-6l-6-6\"\u002F>",{"left":511,"top":511,"width":512,"height":512,"rotate":511,"vFlip":9,"hFlip":9,"body":515},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"8\" height=\"4\" x=\"8\" y=\"2\" rx=\"1\" ry=\"1\"\u002F>\u003Cpath d=\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\"\u002F>\u003C\u002Fg>",1786530424346]