[{"data":1,"prerenderedAt":1107},["ShallowReactive",2],{"navigation_docs_en":3,"-en-getting-started-project-structure":133,"-en-getting-started-project-structure-surround":1102},[4,41,82,108],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":40},"Getting Started","i-lucide-rocket","\u002Fen\u002Fgetting-started","en\u002F1.getting-started",[10,15,20,25,30,35],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fen\u002Fgetting-started\u002Fintroduction","en\u002F1.getting-started\u002F2.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Installation","\u002Fen\u002Fgetting-started\u002Finstallation","en\u002F1.getting-started\u002F3.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":24},"Project Structure","\u002Fen\u002Fgetting-started\u002Fproject-structure","en\u002F1.getting-started\u002F4.project-structure","i-lucide-folder-tree",{"title":26,"path":27,"stem":28,"icon":29},"Studio module","\u002Fen\u002Fgetting-started\u002Fstudio","en\u002F1.getting-started\u002F5.studio","i-lucide-mouse-pointer-2",{"title":31,"path":32,"stem":33,"icon":34},"Migration","\u002Fen\u002Fgetting-started\u002Fmigration","en\u002F1.getting-started\u002F6.migration","i-lucide-replace",{"title":36,"path":37,"stem":38,"icon":39},"Troubleshooting","\u002Fen\u002Fgetting-started\u002Ftroubleshooting","en\u002F1.getting-started\u002F7.troubleshooting","i-lucide-wrench",false,{"title":42,"icon":43,"path":44,"stem":45,"children":46,"page":40},"Core Concepts","i-lucide-brain","\u002Fen\u002Fconcepts","en\u002F2.concepts",[47,52,57,62,67,72,77],{"title":48,"path":49,"stem":50,"icon":51},"Edition","\u002Fen\u002Fconcepts\u002Fedition","en\u002F2.concepts\u002F2.edition","i-lucide-pencil",{"title":53,"path":54,"stem":55,"icon":56},"Configuration","\u002Fen\u002Fconcepts\u002Fconfiguration","en\u002F2.concepts\u002F3.configuration","i-lucide-settings",{"title":58,"path":59,"stem":60,"icon":61},"Theme","\u002Fen\u002Fconcepts\u002Ftheme","en\u002F2.concepts\u002F4.theme","i-lucide-paint-roller",{"title":63,"path":64,"stem":65,"icon":66},"Customization","\u002Fen\u002Fconcepts\u002Fcustomization","en\u002F2.concepts\u002F5.customization","i-lucide-pen-tool",{"title":68,"path":69,"stem":70,"icon":71},"Internationalization","\u002Fen\u002Fconcepts\u002Finternationalization","en\u002F2.concepts\u002F6.internationalization","i-lucide-globe",{"title":73,"path":74,"stem":75,"icon":76},"Observability","\u002Fen\u002Fconcepts\u002Fobservability","en\u002F2.concepts\u002F7.observability","i-lucide-activity",{"title":78,"path":79,"stem":80,"icon":81},"Nuxt","\u002Fen\u002Fconcepts\u002Fnuxt","en\u002F2.concepts\u002F8.nuxt","i-simple-icons-nuxt",{"title":83,"icon":84,"path":85,"stem":86,"children":87,"page":40},"Essentials","i-lucide-book-open","\u002Fen\u002Fessentials","en\u002F3.essentials",[88,93,98,103],{"title":89,"path":90,"stem":91,"icon":92},"Markdown Syntax","\u002Fen\u002Fessentials\u002Fmarkdown-syntax","en\u002F3.essentials\u002F1.markdown-syntax","i-lucide-heading-1",{"title":94,"path":95,"stem":96,"icon":97},"Code Blocks","\u002Fen\u002Fessentials\u002Fcode-blocks","en\u002F3.essentials\u002F2.code-blocks","i-lucide-code-xml",{"title":99,"path":100,"stem":101,"icon":102},"Components","\u002Fen\u002Fessentials\u002Fcomponents","en\u002F3.essentials\u002F3.components","i-lucide-component",{"title":104,"path":105,"stem":106,"icon":107},"Images and Embeds","\u002Fen\u002Fessentials\u002Fimages-embeds","en\u002F3.essentials\u002F4.images-embeds","i-lucide-image",{"title":109,"icon":110,"path":111,"stem":112,"children":113,"page":40},"AI","i-lucide-sparkles","\u002Fen\u002Fai","en\u002F4.ai",[114,118,123,128],{"title":115,"path":116,"stem":117,"icon":110},"Assistant","\u002Fen\u002Fai\u002Fassistant","en\u002F4.ai\u002F1.assistant",{"title":119,"path":120,"stem":121,"icon":122},"MCP Server","\u002Fen\u002Fai\u002Fmcp","en\u002F4.ai\u002F2.mcp","i-lucide-cpu",{"title":124,"path":125,"stem":126,"icon":127},"Agent Skills","\u002Fen\u002Fai\u002Fskills","en\u002F4.ai\u002F3.skills","i-lucide-wand-sparkles",{"title":129,"path":130,"stem":131,"icon":132},"LLMs Integration","\u002Fen\u002Fai\u002Fllms","en\u002F4.ai\u002F4.llms","i-lucide-message-circle-code",{"id":134,"title":21,"body":135,"description":1095,"extension":1096,"links":1097,"meta":1098,"navigation":1099,"path":22,"seo":1100,"stem":23,"__hash__":1101},"docs_en\u002Fen\u002F1.getting-started\u002F4.project-structure.md",{"type":136,"value":137,"toc":1083},"minimark",[138,143,152,160,244,247,335,343,351,356,413,425,430,510,513,519,525,531,537,721,727,733,736,792,798,802,809,816,926,930,937,942,1076,1079],[139,140,142],"h2",{"id":141},"global-structure","Global structure",[144,145,146,147,151],"p",{},"Docus is a ",[148,149,150],"strong",{},"Nuxt layer"," that extends your standard Nuxt application with documentation features. This gives you the flexibility of a full Nuxt project.",[144,153,154,155,159],{},"When you create a new Docus project with ",[156,157,158],"code",{},"npx create-docus my-docs",", you get:",[161,162,167],"pre",{"className":163,"code":164,"language":165,"meta":166,"style":166},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","my-docs\u002F\n├── content\u002F             # Your markdown content\n│   ├── index.md         # Homepage\n│   └── docs\u002F            # Documentation pages\n├── public\u002F              # Static assets\n└── package.json         # Dependencies and scripts\n","bash","",[156,168,169,178,192,207,221,232],{"__ignoreMap":166},[170,171,174],"span",{"class":172,"line":173},"line",1,[170,175,177],{"class":176},"sBMFI","my-docs\u002F\n",[170,179,181,184,188],{"class":172,"line":180},2,[170,182,183],{"class":176},"├──",[170,185,187],{"class":186},"sfazB"," content\u002F",[170,189,191],{"class":190},"sHwdD","             # Your markdown content\n",[170,193,195,198,201,204],{"class":172,"line":194},3,[170,196,197],{"class":176},"│",[170,199,200],{"class":186},"   ├──",[170,202,203],{"class":186}," index.md",[170,205,206],{"class":190},"         # Homepage\n",[170,208,210,212,215,218],{"class":172,"line":209},4,[170,211,197],{"class":176},[170,213,214],{"class":186},"   └──",[170,216,217],{"class":186}," docs\u002F",[170,219,220],{"class":190},"            # Documentation pages\n",[170,222,224,226,229],{"class":172,"line":223},5,[170,225,183],{"class":176},[170,227,228],{"class":186}," public\u002F",[170,230,231],{"class":190},"              # Static assets\n",[170,233,235,238,241],{"class":172,"line":234},6,[170,236,237],{"class":176},"└──",[170,239,240],{"class":186}," package.json",[170,242,243],{"class":190},"         # Dependencies and scripts\n",[144,245,246],{},"You can still use any feature or file of a classical Nuxt project:",[161,248,250],{"className":163,"code":249,"language":165,"meta":166,"style":166},"my-docs\u002F\n├── nuxt.config.ts       # Nuxt configuration (add extra modules, components, etc.)\n├── app\u002F                 # App directory\n    ├── app.config.ts    # App configuration\n│   ├── components\u002F      # Components (add your own components)\n│   ├── layouts\u002F         # Layouts (add your own layouts)\n│   └── pages\u002F           # Pages (add your own pages)\n└── server\u002F              # Server-side code (add your own server-side code)\n",[156,251,252,256,266,276,287,299,311,324],{"__ignoreMap":166},[170,253,254],{"class":172,"line":173},[170,255,177],{"class":176},[170,257,258,260,263],{"class":172,"line":180},[170,259,183],{"class":176},[170,261,262],{"class":186}," nuxt.config.ts",[170,264,265],{"class":190},"       # Nuxt configuration (add extra modules, components, etc.)\n",[170,267,268,270,273],{"class":172,"line":194},[170,269,183],{"class":176},[170,271,272],{"class":186}," app\u002F",[170,274,275],{"class":190},"                 # App directory\n",[170,277,278,281,284],{"class":172,"line":209},[170,279,280],{"class":176},"    ├──",[170,282,283],{"class":186}," app.config.ts",[170,285,286],{"class":190},"    # App configuration\n",[170,288,289,291,293,296],{"class":172,"line":223},[170,290,197],{"class":176},[170,292,200],{"class":186},[170,294,295],{"class":186}," components\u002F",[170,297,298],{"class":190},"      # Components (add your own components)\n",[170,300,301,303,305,308],{"class":172,"line":234},[170,302,197],{"class":176},[170,304,200],{"class":186},[170,306,307],{"class":186}," layouts\u002F",[170,309,310],{"class":190},"         # Layouts (add your own layouts)\n",[170,312,314,316,318,321],{"class":172,"line":313},7,[170,315,197],{"class":176},[170,317,214],{"class":186},[170,319,320],{"class":186}," pages\u002F",[170,322,323],{"class":190},"           # Pages (add your own pages)\n",[170,325,327,329,332],{"class":172,"line":326},8,[170,328,237],{"class":176},[170,330,331],{"class":186}," server\u002F",[170,333,334],{"class":190},"              # Server-side code (add your own server-side code)\n",[336,337,339,342],"h3",{"id":338},"content-directory",[156,340,341],{},"content\u002F"," directory",[144,344,345,346,350],{},"This is where you ",[347,348,349],"a",{"href":49},"write pages"," in Markdown. Docus automatically generates routes based on your file structure.",[144,352,353],{},[148,354,355],{},"Single language structure:",[161,357,359],{"className":163,"code":358,"language":165,"meta":166,"style":166},"content\u002F\n├── index.md              # Landing page (\u002F)\n├── getting-started.md    # Documentation page (\u002Fgetting-started)\n└── guide\u002F\n    ├── introduction.md   # Documentation page (\u002Fguide\u002Fintroduction)\n    └── configuration.md  # Documentation page (\u002Fguide\u002Fconfiguration)\n",[156,360,361,366,375,385,392,402],{"__ignoreMap":166},[170,362,363],{"class":172,"line":173},[170,364,365],{"class":176},"content\u002F\n",[170,367,368,370,372],{"class":172,"line":180},[170,369,183],{"class":176},[170,371,203],{"class":186},[170,373,374],{"class":190},"              # Landing page (\u002F)\n",[170,376,377,379,382],{"class":172,"line":194},[170,378,183],{"class":176},[170,380,381],{"class":186}," getting-started.md",[170,383,384],{"class":190},"    # Documentation page (\u002Fgetting-started)\n",[170,386,387,389],{"class":172,"line":209},[170,388,237],{"class":176},[170,390,391],{"class":186}," guide\u002F\n",[170,393,394,396,399],{"class":172,"line":223},[170,395,280],{"class":176},[170,397,398],{"class":186}," introduction.md",[170,400,401],{"class":190},"   # Documentation page (\u002Fguide\u002Fintroduction)\n",[170,403,404,407,410],{"class":172,"line":234},[170,405,406],{"class":176},"    └──",[170,408,409],{"class":186}," configuration.md",[170,411,412],{"class":190},"  # Documentation page (\u002Fguide\u002Fconfiguration)\n",[414,415,416,417,420,421,424],"tip",{"to":49},"You can separate your documentation files within a ",[156,418,419],{},"docs\u002F"," subfolder to make them accessible at the ",[156,422,423],{},"\u002Fdocs"," route. Additionally, you have the flexibility to override your landing page using custom Vue pages if desired.",[144,426,427],{},[148,428,429],{},"Multi-language structure (with i18n):",[161,431,433],{"className":163,"code":432,"language":165,"meta":166,"style":166},"content\u002F\n├── en\u002F\n│   ├── index.md             # English landing page (\u002Fen)\n│   └── guide\u002F\n│       └── introduction.md  # Documentation page (\u002Fen\u002Fguide\u002Fintroduction)\n└── fr\u002F\n    ├── index.md             # French landing page (\u002Ffr)\n    └── guide\u002F\n        └── introduction.md  # Documentation page (\u002Ffr\u002Fguide\u002Fintroduction)\n",[156,434,435,439,446,457,465,477,484,493,499],{"__ignoreMap":166},[170,436,437],{"class":172,"line":173},[170,438,365],{"class":176},[170,440,441,443],{"class":172,"line":180},[170,442,183],{"class":176},[170,444,445],{"class":186}," en\u002F\n",[170,447,448,450,452,454],{"class":172,"line":194},[170,449,197],{"class":176},[170,451,200],{"class":186},[170,453,203],{"class":186},[170,455,456],{"class":190},"             # English landing page (\u002Fen)\n",[170,458,459,461,463],{"class":172,"line":209},[170,460,197],{"class":176},[170,462,214],{"class":186},[170,464,391],{"class":186},[170,466,467,469,472,474],{"class":172,"line":223},[170,468,197],{"class":176},[170,470,471],{"class":186},"       └──",[170,473,398],{"class":186},[170,475,476],{"class":190},"  # Documentation page (\u002Fen\u002Fguide\u002Fintroduction)\n",[170,478,479,481],{"class":172,"line":234},[170,480,237],{"class":176},[170,482,483],{"class":186}," fr\u002F\n",[170,485,486,488,490],{"class":172,"line":313},[170,487,280],{"class":176},[170,489,203],{"class":186},[170,491,492],{"class":190},"             # French landing page (\u002Ffr)\n",[170,494,495,497],{"class":172,"line":326},[170,496,406],{"class":176},[170,498,391],{"class":186},[170,500,502,505,507],{"class":172,"line":501},9,[170,503,504],{"class":176},"        └──",[170,506,398],{"class":186},[170,508,509],{"class":190},"  # Documentation page (\u002Ffr\u002Fguide\u002Fintroduction)\n",[414,511,512],{"to":69},"More information about i18n is available in the internationalization section.",[336,514,516,342],{"id":515},"public-directory",[156,517,518],{},"public\u002F",[144,520,521,522,524],{},"Files contained within the ",[156,523,518],{}," directory are served at the root and are not modified by the build process. This is where you can locate your images, icons, and other static assets.",[336,526,528],{"id":527},"packagejson",[156,529,530],{},"package.json",[144,532,533,534,536],{},"This file contains all the dependencies and scripts for your application. The ",[156,535,530],{}," of\na Docus application is really minimal and looks like:",[161,538,542],{"className":539,"code":540,"filename":530,"language":541,"meta":166,"style":166},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"name\": \"my-docs\",\n  \"scripts\": {\n    \"build\": \"nuxt build --extends docus\",\n    \"dev\": \"nuxt dev --extends docus\",\n  },\n  \"dependencies\": {\n    \"docus\": \"latest\",\n    \"better-sqlite3\": \"^12.2.0\",\n    \"nuxt\": \"^4.0.0\"\n  }\n}\n","json",[156,543,544,550,576,590,611,631,636,649,669,689,709,715],{"__ignoreMap":166},[170,545,546],{"class":172,"line":173},[170,547,549],{"class":548},"sMK4o","{\n",[170,551,552,555,559,562,565,568,571,573],{"class":172,"line":180},[170,553,554],{"class":548},"  \"",[170,556,558],{"class":557},"spNyl","name",[170,560,561],{"class":548},"\"",[170,563,564],{"class":548},":",[170,566,567],{"class":548}," \"",[170,569,570],{"class":186},"my-docs",[170,572,561],{"class":548},[170,574,575],{"class":548},",\n",[170,577,578,580,583,585,587],{"class":172,"line":194},[170,579,554],{"class":548},[170,581,582],{"class":557},"scripts",[170,584,561],{"class":548},[170,586,564],{"class":548},[170,588,589],{"class":548}," {\n",[170,591,592,595,598,600,602,604,607,609],{"class":172,"line":209},[170,593,594],{"class":548},"    \"",[170,596,597],{"class":176},"build",[170,599,561],{"class":548},[170,601,564],{"class":548},[170,603,567],{"class":548},[170,605,606],{"class":186},"nuxt build --extends docus",[170,608,561],{"class":548},[170,610,575],{"class":548},[170,612,613,615,618,620,622,624,627,629],{"class":172,"line":223},[170,614,594],{"class":548},[170,616,617],{"class":176},"dev",[170,619,561],{"class":548},[170,621,564],{"class":548},[170,623,567],{"class":548},[170,625,626],{"class":186},"nuxt dev --extends docus",[170,628,561],{"class":548},[170,630,575],{"class":548},[170,632,633],{"class":172,"line":234},[170,634,635],{"class":548},"  },\n",[170,637,638,640,643,645,647],{"class":172,"line":313},[170,639,554],{"class":548},[170,641,642],{"class":557},"dependencies",[170,644,561],{"class":548},[170,646,564],{"class":548},[170,648,589],{"class":548},[170,650,651,653,656,658,660,662,665,667],{"class":172,"line":326},[170,652,594],{"class":548},[170,654,655],{"class":176},"docus",[170,657,561],{"class":548},[170,659,564],{"class":548},[170,661,567],{"class":548},[170,663,664],{"class":186},"latest",[170,666,561],{"class":548},[170,668,575],{"class":548},[170,670,671,673,676,678,680,682,685,687],{"class":172,"line":501},[170,672,594],{"class":548},[170,674,675],{"class":176},"better-sqlite3",[170,677,561],{"class":548},[170,679,564],{"class":548},[170,681,567],{"class":548},[170,683,684],{"class":186},"^12.2.0",[170,686,561],{"class":548},[170,688,575],{"class":548},[170,690,692,694,697,699,701,703,706],{"class":172,"line":691},10,[170,693,594],{"class":548},[170,695,696],{"class":176},"nuxt",[170,698,561],{"class":548},[170,700,564],{"class":548},[170,702,567],{"class":548},[170,704,705],{"class":186},"^4.0.0",[170,707,708],{"class":548},"\"\n",[170,710,712],{"class":172,"line":711},11,[170,713,714],{"class":548},"  }\n",[170,716,718],{"class":172,"line":717},12,[170,719,720],{"class":548},"}\n",[336,722,724],{"id":723},"nuxtconfigts",[156,725,726],{},"nuxt.config.ts",[144,728,729],{},[730,731,732],"em",{},"This file is not mandatory to start a Docus application.",[144,734,735],{},"You can add extra modules to your Nuxt configuration file:",[161,737,741],{"className":738,"code":739,"filename":726,"language":740,"meta":166,"style":166},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export default defineNuxtConfig({\n  extends: ['@vercel\u002Fanalytics\u002Fnuxt\u002Fmodule']\n})\n","typescript",[156,742,743,762,784],{"__ignoreMap":166},[170,744,745,749,752,756,760],{"class":172,"line":173},[170,746,748],{"class":747},"s7zQu","export",[170,750,751],{"class":747}," default",[170,753,755],{"class":754},"s2Zo4"," defineNuxtConfig",[170,757,759],{"class":758},"sTEyZ","(",[170,761,549],{"class":548},[170,763,764,768,770,773,776,779,781],{"class":172,"line":180},[170,765,767],{"class":766},"swJcz","  extends",[170,769,564],{"class":548},[170,771,772],{"class":758}," [",[170,774,775],{"class":548},"'",[170,777,778],{"class":186},"@vercel\u002Fanalytics\u002Fnuxt\u002Fmodule",[170,780,775],{"class":548},[170,782,783],{"class":758},"]\n",[170,785,786,789],{"class":172,"line":194},[170,787,788],{"class":548},"}",[170,790,791],{"class":758},")\n",[336,793,795],{"id":794},"appconfigts",[156,796,797],{},"app.config.ts",[144,799,800],{},[730,801,732],{},[803,804,805,806,808],"warning",{},"You need a ",[156,807,726],{}," to be set if you want to override app configuration.",[144,810,811,812,815],{},"This is where you can ",[347,813,814],{"href":54},"configure Docus"," to fit your branding, handle SEO, set your locale, and adapt links and socials.",[161,817,821],{"className":818,"code":819,"filename":797,"language":820,"meta":166,"style":166},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export default defineAppConfig({\n  docus: {\n    locale: 'en', \u002F\u002F Set your single-language locale\n  },\n  seo: {\n    title: 'My Docs',\n    description: 'My awesome documentation',\n  },\n  \u002F\u002F ... other configurations\n})\n","ts",[156,822,823,836,845,866,870,879,895,911,915,920],{"__ignoreMap":166},[170,824,825,827,829,832,834],{"class":172,"line":173},[170,826,748],{"class":747},[170,828,751],{"class":747},[170,830,831],{"class":754}," defineAppConfig",[170,833,759],{"class":758},[170,835,549],{"class":548},[170,837,838,841,843],{"class":172,"line":180},[170,839,840],{"class":766},"  docus",[170,842,564],{"class":548},[170,844,589],{"class":548},[170,846,847,850,852,855,858,860,863],{"class":172,"line":194},[170,848,849],{"class":766},"    locale",[170,851,564],{"class":548},[170,853,854],{"class":548}," '",[170,856,857],{"class":186},"en",[170,859,775],{"class":548},[170,861,862],{"class":548},",",[170,864,865],{"class":190}," \u002F\u002F Set your single-language locale\n",[170,867,868],{"class":172,"line":209},[170,869,635],{"class":548},[170,871,872,875,877],{"class":172,"line":223},[170,873,874],{"class":766},"  seo",[170,876,564],{"class":548},[170,878,589],{"class":548},[170,880,881,884,886,888,891,893],{"class":172,"line":234},[170,882,883],{"class":766},"    title",[170,885,564],{"class":548},[170,887,854],{"class":548},[170,889,890],{"class":186},"My Docs",[170,892,775],{"class":548},[170,894,575],{"class":548},[170,896,897,900,902,904,907,909],{"class":172,"line":313},[170,898,899],{"class":766},"    description",[170,901,564],{"class":548},[170,903,854],{"class":548},[170,905,906],{"class":186},"My awesome documentation",[170,908,775],{"class":548},[170,910,575],{"class":548},[170,912,913],{"class":172,"line":326},[170,914,635],{"class":548},[170,916,917],{"class":172,"line":501},[170,918,919],{"class":190},"  \u002F\u002F ... other configurations\n",[170,921,922,924],{"class":172,"line":691},[170,923,788],{"class":548},[170,925,791],{"class":758},[139,927,929],{"id":928},"full-nuxt-project-capabilities","Full Nuxt Project Capabilities",[144,931,932,933,936],{},"Since Docus is a Nuxt layer, you can use ",[148,934,935],{},"any feature"," of a standard Nuxt project:",[803,938,805,939,941],{},[156,940,726],{}," to be set if you want to override your app with Nuxt files. If no Nuxt config is created, changes will not be applied.",[161,943,945],{"className":163,"code":944,"language":165,"meta":166,"style":166},"my-docs\u002F\n├── app\u002F                 # App directory (optional)\n    ├── app.config.ts    # App configuration\n│   ├── components\u002F      # Custom Vue components\n│   ├── layouts\u002F         # Custom layouts\n│   ├── pages\u002F           # Custom Vue pages (outside of content)\n│   ├── composables\u002F     # Vue composables\n│   └── middleware\u002F      # Route middleware\n├── server\u002F              # Server-side code\n│   └── api\u002F             # API routes\n├── plugins\u002F             # Nuxt plugins\n├── middleware\u002F          # Global middleware\n└── modules\u002F             # Custom Nuxt modules\n",[156,946,947,951,960,968,979,990,1001,1013,1025,1034,1046,1056,1065],{"__ignoreMap":166},[170,948,949],{"class":172,"line":173},[170,950,177],{"class":176},[170,952,953,955,957],{"class":172,"line":180},[170,954,183],{"class":176},[170,956,272],{"class":186},[170,958,959],{"class":190},"                 # App directory (optional)\n",[170,961,962,964,966],{"class":172,"line":194},[170,963,280],{"class":176},[170,965,283],{"class":186},[170,967,286],{"class":190},[170,969,970,972,974,976],{"class":172,"line":209},[170,971,197],{"class":176},[170,973,200],{"class":186},[170,975,295],{"class":186},[170,977,978],{"class":190},"      # Custom Vue components\n",[170,980,981,983,985,987],{"class":172,"line":223},[170,982,197],{"class":176},[170,984,200],{"class":186},[170,986,307],{"class":186},[170,988,989],{"class":190},"         # Custom layouts\n",[170,991,992,994,996,998],{"class":172,"line":234},[170,993,197],{"class":176},[170,995,200],{"class":186},[170,997,320],{"class":186},[170,999,1000],{"class":190},"           # Custom Vue pages (outside of content)\n",[170,1002,1003,1005,1007,1010],{"class":172,"line":313},[170,1004,197],{"class":176},[170,1006,200],{"class":186},[170,1008,1009],{"class":186}," composables\u002F",[170,1011,1012],{"class":190},"     # Vue composables\n",[170,1014,1015,1017,1019,1022],{"class":172,"line":326},[170,1016,197],{"class":176},[170,1018,214],{"class":186},[170,1020,1021],{"class":186}," middleware\u002F",[170,1023,1024],{"class":190},"      # Route middleware\n",[170,1026,1027,1029,1031],{"class":172,"line":501},[170,1028,183],{"class":176},[170,1030,331],{"class":186},[170,1032,1033],{"class":190},"              # Server-side code\n",[170,1035,1036,1038,1040,1043],{"class":172,"line":691},[170,1037,197],{"class":176},[170,1039,214],{"class":186},[170,1041,1042],{"class":186}," api\u002F",[170,1044,1045],{"class":190},"             # API routes\n",[170,1047,1048,1050,1053],{"class":172,"line":711},[170,1049,183],{"class":176},[170,1051,1052],{"class":186}," plugins\u002F",[170,1054,1055],{"class":190},"             # Nuxt plugins\n",[170,1057,1058,1060,1062],{"class":172,"line":717},[170,1059,183],{"class":176},[170,1061,1021],{"class":186},[170,1063,1064],{"class":190},"          # Global middleware\n",[170,1066,1068,1070,1073],{"class":172,"line":1067},13,[170,1069,237],{"class":176},[170,1071,1072],{"class":186}," modules\u002F",[170,1074,1075],{"class":190},"             # Custom Nuxt modules\n",[414,1077,1078],{"to":79},"This layer-based approach gives you the power of the entire Nuxt ecosystem while keeping documentation as the primary focus.",[1080,1081,1082],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}",{"title":166,"searchDepth":180,"depth":180,"links":1084},[1085,1094],{"id":141,"depth":180,"text":142,"children":1086},[1087,1089,1091,1092,1093],{"id":338,"depth":194,"text":1088},"content\u002F directory",{"id":515,"depth":194,"text":1090},"public\u002F directory",{"id":527,"depth":194,"text":530},{"id":723,"depth":194,"text":726},{"id":794,"depth":194,"text":797},{"id":928,"depth":180,"text":929},"Learn about the project structure of Docus.","md",null,{},{"icon":24},{"title":21,"description":1095},"zw4ns0j5AANDYE8y97zRZQaMq33Ut9yqpML3a47ytCQ",[1103,1105],{"title":16,"path":17,"stem":18,"description":1104,"icon":19,"children":-1},"Get started with Docus.",{"title":26,"path":27,"stem":28,"description":1106,"icon":29,"children":-1},"Edit your Nuxt Content website directly in production with the self-hosted Studio web editor.",1777986766008]