[{"data":1,"prerenderedAt":1600},["ShallowReactive",2],{"navigation_docs":3,"-docs-collections-validators":209,"-docs-collections-validators-surround":1595},[4,24,51,73,99,116,162,175],{"title":5,"path":6,"stem":7,"children":8,"icon":23},"Getting Started","\u002Fdocs\u002Fgetting-started","docs\u002F1.getting-started\u002F1.index",[9,11,15,19],{"title":10,"path":6,"stem":7},"Introduction",{"title":12,"path":13,"stem":14},"Installation","\u002Fdocs\u002Fgetting-started\u002Finstallation","docs\u002F1.getting-started\u002F2.installation",{"title":16,"path":17,"stem":18},"Configuration","\u002Fdocs\u002Fgetting-started\u002Fconfiguration","docs\u002F1.getting-started\u002F3.configuration",{"title":20,"path":21,"stem":22},"Migration","\u002Fdocs\u002Fgetting-started\u002Fmigration","docs\u002F1.getting-started\u002F4.migration","i-lucide-square-play",{"title":25,"icon":26,"path":27,"stem":28,"children":29,"page":50},"Collections","i-lucide-database","\u002Fdocs\u002Fcollections","docs\u002F2.collections",[30,34,38,42,46],{"title":31,"path":32,"stem":33},"Define","\u002Fdocs\u002Fcollections\u002Fdefine","docs\u002F2.collections\u002F1.define",{"title":35,"path":36,"stem":37},"Types","\u002Fdocs\u002Fcollections\u002Ftypes","docs\u002F2.collections\u002F2.types",{"title":39,"path":40,"stem":41},"Sources","\u002Fdocs\u002Fcollections\u002Fsources","docs\u002F2.collections\u002F3.sources",{"title":43,"path":44,"stem":45},"Validators","\u002Fdocs\u002Fcollections\u002Fvalidators","docs\u002F2.collections\u002F4.validators",{"title":47,"path":48,"stem":49},"Components","\u002Fdocs\u002Fcollections\u002Finherit-schema-from-component","docs\u002F2.collections\u002F5.inherit-schema-from-component",false,{"title":52,"icon":53,"path":54,"stem":55,"children":56,"page":50},"Files","i-lucide-file","\u002Fdocs\u002Ffiles","docs\u002F3.files",[57,61,65,69],{"title":58,"path":59,"stem":60},"Markdown","\u002Fdocs\u002Ffiles\u002Fmarkdown","docs\u002F3.files\u002F1.markdown",{"title":62,"path":63,"stem":64},"YAML","\u002Fdocs\u002Ffiles\u002Fyaml","docs\u002F3.files\u002F2.yaml",{"title":66,"path":67,"stem":68},"JSON","\u002Fdocs\u002Ffiles\u002Fjson","docs\u002F3.files\u002F3.json",{"title":70,"path":71,"stem":72},"CSV","\u002Fdocs\u002Ffiles\u002Fcsv","docs\u002F3.files\u002F4.csv",{"title":74,"icon":75,"path":76,"stem":77,"children":78,"page":50},"Query Utils","i-lucide-square-function","\u002Fdocs\u002Futils","docs\u002F4.utils",[79,83,87,91,95],{"title":80,"path":81,"stem":82},"queryCollection","\u002Fdocs\u002Futils\u002Fquery-collection","docs\u002F4.utils\u002F1.query-collection",{"title":84,"path":85,"stem":86},"queryCollectionNavigation","\u002Fdocs\u002Futils\u002Fquery-collection-navigation","docs\u002F4.utils\u002F2.query-collection-navigation",{"title":88,"path":89,"stem":90},"queryCollectionItemSurroundings","\u002Fdocs\u002Futils\u002Fquery-collection-item-surroundings","docs\u002F4.utils\u002F3.query-collection-item-surroundings",{"title":92,"path":93,"stem":94},"queryCollectionSearchSections","\u002Fdocs\u002Futils\u002Fquery-collection-search-sections","docs\u002F4.utils\u002F4.query-collection-search-sections",{"title":96,"path":97,"stem":98},"useSearchCollection","\u002Fdocs\u002Futils\u002Fuse-search-collection","docs\u002F4.utils\u002F5.use-search-collection",{"title":47,"icon":100,"path":101,"stem":102,"children":103,"page":50},"i-lucide-square-code","\u002Fdocs\u002Fcomponents","docs\u002F5.components",[104,108,112],{"title":105,"path":106,"stem":107},"ContentRenderer","\u002Fdocs\u002Fcomponents\u002Fcontent-renderer","docs\u002F5.components\u002F0.content-renderer",{"title":109,"path":110,"stem":111},"Slot","\u002Fdocs\u002Fcomponents\u002Fslot","docs\u002F5.components\u002F1.slot",{"title":113,"path":114,"stem":115},"Prose Components","\u002Fdocs\u002Fcomponents\u002Fprose","docs\u002F5.components\u002F2.prose",{"title":117,"icon":118,"path":119,"stem":120,"children":121,"page":50},"Deploy","i-lucide-cloud-upload","\u002Fdocs\u002Fdeploy","docs\u002F6.deploy",[122,126,130,134,138,142,146,150,154,158],{"title":123,"path":124,"stem":125},"Server","\u002Fdocs\u002Fdeploy\u002Fserver","docs\u002F6.deploy\u002F1.server",{"title":127,"path":128,"stem":129},"Static","\u002Fdocs\u002Fdeploy\u002Fstatic","docs\u002F6.deploy\u002F10.static",{"title":131,"path":132,"stem":133},"Serverless","\u002Fdocs\u002Fdeploy\u002Fserverless","docs\u002F6.deploy\u002F2.serverless",{"title":135,"path":136,"stem":137},"NuxtHub","\u002Fdocs\u002Fdeploy\u002Fnuxthub","docs\u002F6.deploy\u002F3.nuxthub",{"title":139,"path":140,"stem":141},"Cloudflare Pages","\u002Fdocs\u002Fdeploy\u002Fcloudflare-pages","docs\u002F6.deploy\u002F4.cloudflare-pages",{"title":143,"path":144,"stem":145},"Cloudflare Workers","\u002Fdocs\u002Fdeploy\u002Fcloudflare-workers","docs\u002F6.deploy\u002F5.cloudflare-workers",{"title":147,"path":148,"stem":149},"Vercel","\u002Fdocs\u002Fdeploy\u002Fvercel","docs\u002F6.deploy\u002F6.vercel",{"title":151,"path":152,"stem":153},"Netlify","\u002Fdocs\u002Fdeploy\u002Fnetlify","docs\u002F6.deploy\u002F7.netlify",{"title":155,"path":156,"stem":157},"AWS Amplify","\u002Fdocs\u002Fdeploy\u002Faws-amplify","docs\u002F6.deploy\u002F8.aws-amplify",{"title":159,"path":160,"stem":161},"Docker","\u002Fdocs\u002Fdeploy\u002Fdocker","docs\u002F6.deploy\u002F9.docker",{"title":163,"icon":118,"path":164,"stem":165,"children":166,"page":50},"Integrations","\u002Fdocs\u002Fintegrations","docs\u002F7.integrations",[167,171],{"title":168,"path":169,"stem":170},"Nuxt i18n","\u002Fdocs\u002Fintegrations\u002Fi18n","docs\u002F7.integrations\u002F01.i18n",{"title":172,"path":173,"stem":174},"Nuxt LLMs","\u002Fdocs\u002Fintegrations\u002Fllms","docs\u002F7.integrations\u002F02.llms",{"title":176,"icon":177,"path":178,"stem":179,"children":180,"page":50},"Advanced","i-lucide-code-xml","\u002Fdocs\u002Fadvanced","docs\u002F8.advanced",[181,185,189,193,197,201,205],{"title":182,"path":183,"stem":184},"Full-Text Search","\u002Fdocs\u002Fadvanced\u002Ffulltext-search","docs\u002F8.advanced\u002F1.fulltext-search",{"title":186,"path":187,"stem":188},"Raw Content","\u002Fdocs\u002Fadvanced\u002Fraw-content","docs\u002F8.advanced\u002F2.raw-content",{"title":190,"path":191,"stem":192},"SQL Storage","\u002Fdocs\u002Fadvanced\u002Fdatabase","docs\u002F8.advanced\u002F3.database",{"title":194,"path":195,"stem":196},"Debugging tools","\u002Fdocs\u002Fadvanced\u002Ftools","docs\u002F8.advanced\u002F4.tools",{"title":198,"path":199,"stem":200},"Hooks","\u002Fdocs\u002Fadvanced\u002Fhooks","docs\u002F8.advanced\u002F5.hooks",{"title":202,"path":203,"stem":204},"Custom Source","\u002Fdocs\u002Fadvanced\u002Fcustom-source","docs\u002F8.advanced\u002F6.custom-source",{"title":206,"path":207,"stem":208},"Transformers","\u002Fdocs\u002Fadvanced\u002Ftransformers","docs\u002F8.advanced\u002F8.transformers",{"id":210,"title":211,"body":212,"description":1588,"extension":1589,"links":1590,"meta":1591,"navigation":1592,"path":44,"seo":1593,"stem":45,"__hash__":1594},"docs\u002Fdocs\u002F2.collections\u002F4.validators.md","Schema Validators",{"type":213,"value":214,"toc":1574},"minimark",[215,228,233,238,292,303,729,737,757,761,768,772,802,1146,1150,1153,1157,1192,1514,1518,1537,1540,1544,1554,1558,1565,1570],[216,217,218,219,223,224,227],"p",{},"Nuxt Content supports defining collection schemas with multiple validators. Out of the box, this includes popular libraries like ",[220,221,222],"strong",{},"Zod v3 \u002F v4"," and ",[220,225,226],{},"Valibot"," (examples below). The system is extensible and can support other validators via JSON Schema adapters. Schemas enforce data consistency and drive generated types and Studio forms.",[229,230,232],"h2",{"id":231},"using-zod-v3","Using Zod v3",[234,235,237],"h3",{"id":236},"install","Install",[239,240,245],"pre",{"className":241,"code":242,"language":243,"meta":244,"style":244},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm add -D zod zod-to-json-schema\n# or\nnpm i -D zod zod-to-json-schema\n","bash","",[246,247,248,270,277],"code",{"__ignoreMap":244},[249,250,253,257,261,264,267],"span",{"class":251,"line":252},"line",1,[249,254,256],{"class":255},"sBMFI","pnpm",[249,258,260],{"class":259},"sfazB"," add",[249,262,263],{"class":259}," -D",[249,265,266],{"class":259}," zod",[249,268,269],{"class":259}," zod-to-json-schema\n",[249,271,273],{"class":251,"line":272},2,[249,274,276],{"class":275},"sHwdD","# or\n",[249,278,280,283,286,288,290],{"class":251,"line":279},3,[249,281,282],{"class":255},"npm",[249,284,285],{"class":259}," i",[249,287,263],{"class":259},[249,289,266],{"class":259},[249,291,269],{"class":259},[216,293,294,295,298,299,302],{},"Prefer importing ",[246,296,297],{},"z"," directly from ",[246,300,301],{},"zod",".",[239,304,309],{"className":305,"code":306,"filename":307,"language":308,"meta":244,"style":244},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { defineContentConfig, defineCollection, property } from '@nuxt\u002Fcontent'\nimport { z } from 'zod' \u002F\u002F or 'zod\u002Fv3' if your setup exposes this subpath\n\nexport default defineContentConfig({\n  collections: {\n    blog: defineCollection({\n      type: 'page',\n      source: 'blog\u002F*.md',\n      schema: z.object({\n        title: z.string(),\n        description: z.string().optional(),\n        date: z.date(),\n        draft: z.boolean().default(false),\n        tags: z.array(z.string()).optional(),\n        image: z.object({\n          src: property(z.string()).editor({ input: 'media' }),\n          alt: z.string()\n        })\n      })\n    })\n  }\n})\n","content.config.ts","ts",[246,310,311,351,374,380,398,411,425,443,460,479,499,524,543,576,609,627,673,690,699,707,715,721],{"__ignoreMap":244},[249,312,313,317,321,325,328,331,333,336,339,342,345,348],{"class":251,"line":252},[249,314,316],{"class":315},"s7zQu","import",[249,318,320],{"class":319},"sMK4o"," {",[249,322,324],{"class":323},"sTEyZ"," defineContentConfig",[249,326,327],{"class":319},",",[249,329,330],{"class":323}," defineCollection",[249,332,327],{"class":319},[249,334,335],{"class":323}," property",[249,337,338],{"class":319}," }",[249,340,341],{"class":315}," from",[249,343,344],{"class":319}," '",[249,346,347],{"class":259},"@nuxt\u002Fcontent",[249,349,350],{"class":319},"'\n",[249,352,353,355,357,360,362,364,366,368,371],{"class":251,"line":272},[249,354,316],{"class":315},[249,356,320],{"class":319},[249,358,359],{"class":323}," z",[249,361,338],{"class":319},[249,363,341],{"class":315},[249,365,344],{"class":319},[249,367,301],{"class":259},[249,369,370],{"class":319},"'",[249,372,373],{"class":275}," \u002F\u002F or 'zod\u002Fv3' if your setup exposes this subpath\n",[249,375,376],{"class":251,"line":279},[249,377,379],{"emptyLinePlaceholder":378},true,"\n",[249,381,383,386,389,392,395],{"class":251,"line":382},4,[249,384,385],{"class":315},"export",[249,387,388],{"class":315}," default",[249,390,324],{"class":391},"s2Zo4",[249,393,394],{"class":323},"(",[249,396,397],{"class":319},"{\n",[249,399,401,405,408],{"class":251,"line":400},5,[249,402,404],{"class":403},"swJcz","  collections",[249,406,407],{"class":319},":",[249,409,410],{"class":319}," {\n",[249,412,414,417,419,421,423],{"class":251,"line":413},6,[249,415,416],{"class":403},"    blog",[249,418,407],{"class":319},[249,420,330],{"class":391},[249,422,394],{"class":323},[249,424,397],{"class":319},[249,426,428,431,433,435,438,440],{"class":251,"line":427},7,[249,429,430],{"class":403},"      type",[249,432,407],{"class":319},[249,434,344],{"class":319},[249,436,437],{"class":259},"page",[249,439,370],{"class":319},[249,441,442],{"class":319},",\n",[249,444,446,449,451,453,456,458],{"class":251,"line":445},8,[249,447,448],{"class":403},"      source",[249,450,407],{"class":319},[249,452,344],{"class":319},[249,454,455],{"class":259},"blog\u002F*.md",[249,457,370],{"class":319},[249,459,442],{"class":319},[249,461,463,466,468,470,472,475,477],{"class":251,"line":462},9,[249,464,465],{"class":403},"      schema",[249,467,407],{"class":319},[249,469,359],{"class":323},[249,471,302],{"class":319},[249,473,474],{"class":391},"object",[249,476,394],{"class":323},[249,478,397],{"class":319},[249,480,482,485,487,489,491,494,497],{"class":251,"line":481},10,[249,483,484],{"class":403},"        title",[249,486,407],{"class":319},[249,488,359],{"class":323},[249,490,302],{"class":319},[249,492,493],{"class":391},"string",[249,495,496],{"class":323},"()",[249,498,442],{"class":319},[249,500,502,505,507,509,511,513,515,517,520,522],{"class":251,"line":501},11,[249,503,504],{"class":403},"        description",[249,506,407],{"class":319},[249,508,359],{"class":323},[249,510,302],{"class":319},[249,512,493],{"class":391},[249,514,496],{"class":323},[249,516,302],{"class":319},[249,518,519],{"class":391},"optional",[249,521,496],{"class":323},[249,523,442],{"class":319},[249,525,527,530,532,534,536,539,541],{"class":251,"line":526},12,[249,528,529],{"class":403},"        date",[249,531,407],{"class":319},[249,533,359],{"class":323},[249,535,302],{"class":319},[249,537,538],{"class":391},"date",[249,540,496],{"class":323},[249,542,442],{"class":319},[249,544,546,549,551,553,555,558,560,562,565,567,571,574],{"class":251,"line":545},13,[249,547,548],{"class":403},"        draft",[249,550,407],{"class":319},[249,552,359],{"class":323},[249,554,302],{"class":319},[249,556,557],{"class":391},"boolean",[249,559,496],{"class":323},[249,561,302],{"class":319},[249,563,564],{"class":391},"default",[249,566,394],{"class":323},[249,568,570],{"class":569},"sfNiH","false",[249,572,573],{"class":323},")",[249,575,442],{"class":319},[249,577,579,582,584,586,588,591,594,596,598,601,603,605,607],{"class":251,"line":578},14,[249,580,581],{"class":403},"        tags",[249,583,407],{"class":319},[249,585,359],{"class":323},[249,587,302],{"class":319},[249,589,590],{"class":391},"array",[249,592,593],{"class":323},"(z",[249,595,302],{"class":319},[249,597,493],{"class":391},[249,599,600],{"class":323},"())",[249,602,302],{"class":319},[249,604,519],{"class":391},[249,606,496],{"class":323},[249,608,442],{"class":319},[249,610,612,615,617,619,621,623,625],{"class":251,"line":611},15,[249,613,614],{"class":403},"        image",[249,616,407],{"class":319},[249,618,359],{"class":323},[249,620,302],{"class":319},[249,622,474],{"class":391},[249,624,394],{"class":323},[249,626,397],{"class":319},[249,628,630,633,635,637,639,641,643,645,647,650,652,655,658,660,662,665,667,669,671],{"class":251,"line":629},16,[249,631,632],{"class":403},"          src",[249,634,407],{"class":319},[249,636,335],{"class":391},[249,638,593],{"class":323},[249,640,302],{"class":319},[249,642,493],{"class":391},[249,644,600],{"class":323},[249,646,302],{"class":319},[249,648,649],{"class":391},"editor",[249,651,394],{"class":323},[249,653,654],{"class":319},"{",[249,656,657],{"class":403}," input",[249,659,407],{"class":319},[249,661,344],{"class":319},[249,663,664],{"class":259},"media",[249,666,370],{"class":319},[249,668,338],{"class":319},[249,670,573],{"class":323},[249,672,442],{"class":319},[249,674,676,679,681,683,685,687],{"class":251,"line":675},17,[249,677,678],{"class":403},"          alt",[249,680,407],{"class":319},[249,682,359],{"class":323},[249,684,302],{"class":319},[249,686,493],{"class":391},[249,688,689],{"class":323},"()\n",[249,691,693,696],{"class":251,"line":692},18,[249,694,695],{"class":319},"        }",[249,697,698],{"class":323},")\n",[249,700,702,705],{"class":251,"line":701},19,[249,703,704],{"class":319},"      }",[249,706,698],{"class":323},[249,708,710,713],{"class":251,"line":709},20,[249,711,712],{"class":319},"    }",[249,714,698],{"class":323},[249,716,718],{"class":251,"line":717},21,[249,719,720],{"class":319},"  }\n",[249,722,724,727],{"class":251,"line":723},22,[249,725,726],{"class":319},"}",[249,728,698],{"class":323},[730,731,732,733,736],"note",{},"Dates are serialised as ISO strings under the hood (JSON Schema ",[246,734,735],{},"format: date-time",").",[738,739,740,741,743,744,746,747,749,750,752,753,756],"warning",{},"The ",[246,742,297],{}," re-export from ",[246,745,347],{}," is deprecated and will be removed in a future release. Import ",[246,748,297],{}," from ",[246,751,301],{}," (or ",[246,754,755],{},"zod\u002Fv3",") instead.",[229,758,760],{"id":759},"using-zod-v4","Using Zod v4",[216,762,763,764,767],{},"Zod v4 provides a native JSON Schema export. No ",[246,765,766],{},"zod-to-json-schema"," dependency is required.",[234,769,771],{"id":770},"install-zod","Install Zod",[239,773,775],{"className":241,"code":774,"language":243,"meta":244,"style":244},"pnpm add -D zod\n# or\nnpm i -D zod\n",[246,776,777,788,792],{"__ignoreMap":244},[249,778,779,781,783,785],{"class":251,"line":252},[249,780,256],{"class":255},[249,782,260],{"class":259},[249,784,263],{"class":259},[249,786,787],{"class":259}," zod\n",[249,789,790],{"class":251,"line":272},[249,791,276],{"class":275},[249,793,794,796,798,800],{"class":251,"line":279},[249,795,282],{"class":255},[249,797,285],{"class":259},[249,799,263],{"class":259},[249,801,787],{"class":259},[239,803,805],{"className":305,"code":804,"filename":307,"language":308,"meta":244,"style":244},"import { defineContentConfig, defineCollection, property } from '@nuxt\u002Fcontent'\nimport { z } from 'zod\u002Fv4'\n\nexport default defineContentConfig({\n  collections: {\n    docs: defineCollection({\n      type: 'page',\n      source: 'docs\u002F**\u002F*.md',\n      schema: z.object({\n        title: z.string(),\n        description: z.string().optional(),\n        updatedAt: z.date(),\n        draft: z.boolean().optional(),\n        tags: z.array(z.string()).optional(),\n        hero: z.object({\n          image: property(z.string()).editor({ input: 'media' }),\n          caption: z.string().optional()\n        })\n      })\n    })\n  }\n})\n",[246,806,807,833,852,856,868,876,889,903,918,934,950,972,989,1011,1039,1056,1097,1118,1124,1130,1136,1140],{"__ignoreMap":244},[249,808,809,811,813,815,817,819,821,823,825,827,829,831],{"class":251,"line":252},[249,810,316],{"class":315},[249,812,320],{"class":319},[249,814,324],{"class":323},[249,816,327],{"class":319},[249,818,330],{"class":323},[249,820,327],{"class":319},[249,822,335],{"class":323},[249,824,338],{"class":319},[249,826,341],{"class":315},[249,828,344],{"class":319},[249,830,347],{"class":259},[249,832,350],{"class":319},[249,834,835,837,839,841,843,845,847,850],{"class":251,"line":272},[249,836,316],{"class":315},[249,838,320],{"class":319},[249,840,359],{"class":323},[249,842,338],{"class":319},[249,844,341],{"class":315},[249,846,344],{"class":319},[249,848,849],{"class":259},"zod\u002Fv4",[249,851,350],{"class":319},[249,853,854],{"class":251,"line":279},[249,855,379],{"emptyLinePlaceholder":378},[249,857,858,860,862,864,866],{"class":251,"line":382},[249,859,385],{"class":315},[249,861,388],{"class":315},[249,863,324],{"class":391},[249,865,394],{"class":323},[249,867,397],{"class":319},[249,869,870,872,874],{"class":251,"line":400},[249,871,404],{"class":403},[249,873,407],{"class":319},[249,875,410],{"class":319},[249,877,878,881,883,885,887],{"class":251,"line":413},[249,879,880],{"class":403},"    docs",[249,882,407],{"class":319},[249,884,330],{"class":391},[249,886,394],{"class":323},[249,888,397],{"class":319},[249,890,891,893,895,897,899,901],{"class":251,"line":427},[249,892,430],{"class":403},[249,894,407],{"class":319},[249,896,344],{"class":319},[249,898,437],{"class":259},[249,900,370],{"class":319},[249,902,442],{"class":319},[249,904,905,907,909,911,914,916],{"class":251,"line":445},[249,906,448],{"class":403},[249,908,407],{"class":319},[249,910,344],{"class":319},[249,912,913],{"class":259},"docs\u002F**\u002F*.md",[249,915,370],{"class":319},[249,917,442],{"class":319},[249,919,920,922,924,926,928,930,932],{"class":251,"line":462},[249,921,465],{"class":403},[249,923,407],{"class":319},[249,925,359],{"class":323},[249,927,302],{"class":319},[249,929,474],{"class":391},[249,931,394],{"class":323},[249,933,397],{"class":319},[249,935,936,938,940,942,944,946,948],{"class":251,"line":481},[249,937,484],{"class":403},[249,939,407],{"class":319},[249,941,359],{"class":323},[249,943,302],{"class":319},[249,945,493],{"class":391},[249,947,496],{"class":323},[249,949,442],{"class":319},[249,951,952,954,956,958,960,962,964,966,968,970],{"class":251,"line":501},[249,953,504],{"class":403},[249,955,407],{"class":319},[249,957,359],{"class":323},[249,959,302],{"class":319},[249,961,493],{"class":391},[249,963,496],{"class":323},[249,965,302],{"class":319},[249,967,519],{"class":391},[249,969,496],{"class":323},[249,971,442],{"class":319},[249,973,974,977,979,981,983,985,987],{"class":251,"line":526},[249,975,976],{"class":403},"        updatedAt",[249,978,407],{"class":319},[249,980,359],{"class":323},[249,982,302],{"class":319},[249,984,538],{"class":391},[249,986,496],{"class":323},[249,988,442],{"class":319},[249,990,991,993,995,997,999,1001,1003,1005,1007,1009],{"class":251,"line":545},[249,992,548],{"class":403},[249,994,407],{"class":319},[249,996,359],{"class":323},[249,998,302],{"class":319},[249,1000,557],{"class":391},[249,1002,496],{"class":323},[249,1004,302],{"class":319},[249,1006,519],{"class":391},[249,1008,496],{"class":323},[249,1010,442],{"class":319},[249,1012,1013,1015,1017,1019,1021,1023,1025,1027,1029,1031,1033,1035,1037],{"class":251,"line":578},[249,1014,581],{"class":403},[249,1016,407],{"class":319},[249,1018,359],{"class":323},[249,1020,302],{"class":319},[249,1022,590],{"class":391},[249,1024,593],{"class":323},[249,1026,302],{"class":319},[249,1028,493],{"class":391},[249,1030,600],{"class":323},[249,1032,302],{"class":319},[249,1034,519],{"class":391},[249,1036,496],{"class":323},[249,1038,442],{"class":319},[249,1040,1041,1044,1046,1048,1050,1052,1054],{"class":251,"line":611},[249,1042,1043],{"class":403},"        hero",[249,1045,407],{"class":319},[249,1047,359],{"class":323},[249,1049,302],{"class":319},[249,1051,474],{"class":391},[249,1053,394],{"class":323},[249,1055,397],{"class":319},[249,1057,1058,1061,1063,1065,1067,1069,1071,1073,1075,1077,1079,1081,1083,1085,1087,1089,1091,1093,1095],{"class":251,"line":629},[249,1059,1060],{"class":403},"          image",[249,1062,407],{"class":319},[249,1064,335],{"class":391},[249,1066,593],{"class":323},[249,1068,302],{"class":319},[249,1070,493],{"class":391},[249,1072,600],{"class":323},[249,1074,302],{"class":319},[249,1076,649],{"class":391},[249,1078,394],{"class":323},[249,1080,654],{"class":319},[249,1082,657],{"class":403},[249,1084,407],{"class":319},[249,1086,344],{"class":319},[249,1088,664],{"class":259},[249,1090,370],{"class":319},[249,1092,338],{"class":319},[249,1094,573],{"class":323},[249,1096,442],{"class":319},[249,1098,1099,1102,1104,1106,1108,1110,1112,1114,1116],{"class":251,"line":675},[249,1100,1101],{"class":403},"          caption",[249,1103,407],{"class":319},[249,1105,359],{"class":323},[249,1107,302],{"class":319},[249,1109,493],{"class":391},[249,1111,496],{"class":323},[249,1113,302],{"class":319},[249,1115,519],{"class":391},[249,1117,689],{"class":323},[249,1119,1120,1122],{"class":251,"line":692},[249,1121,695],{"class":319},[249,1123,698],{"class":323},[249,1125,1126,1128],{"class":251,"line":701},[249,1127,704],{"class":319},[249,1129,698],{"class":323},[249,1131,1132,1134],{"class":251,"line":709},[249,1133,712],{"class":319},[249,1135,698],{"class":323},[249,1137,1138],{"class":251,"line":717},[249,1139,720],{"class":319},[249,1141,1142,1144],{"class":251,"line":723},[249,1143,726],{"class":319},[249,1145,698],{"class":323},[229,1147,1149],{"id":1148},"using-valibot","Using Valibot",[216,1151,1152],{},"Use Valibot primitives to define your schema.",[234,1154,1156],{"id":1155},"install-valibot","Install Valibot",[239,1158,1160],{"className":241,"code":1159,"language":243,"meta":244,"style":244},"pnpm add -D valibot @valibot\u002Fto-json-schema\n# or\nnpm i -D valibot @valibot\u002Fto-json-schema\n",[246,1161,1162,1176,1180],{"__ignoreMap":244},[249,1163,1164,1166,1168,1170,1173],{"class":251,"line":252},[249,1165,256],{"class":255},[249,1167,260],{"class":259},[249,1169,263],{"class":259},[249,1171,1172],{"class":259}," valibot",[249,1174,1175],{"class":259}," @valibot\u002Fto-json-schema\n",[249,1177,1178],{"class":251,"line":272},[249,1179,276],{"class":275},[249,1181,1182,1184,1186,1188,1190],{"class":251,"line":279},[249,1183,282],{"class":255},[249,1185,285],{"class":259},[249,1187,263],{"class":259},[249,1189,1172],{"class":259},[249,1191,1175],{"class":259},[239,1193,1195],{"className":305,"code":1194,"filename":307,"language":308,"meta":244,"style":244},"import { defineContentConfig, defineCollection, property } from '@nuxt\u002Fcontent'\nimport { object, string, boolean, array, date, optional } from 'valibot'\n\nexport default defineContentConfig({\n  collections: {\n    docs: defineCollection({\n      type: 'page',\n      source: 'docs\u002F**\u002F*.md',\n      schema: object({\n        title: string(),\n        description: optional(string()),\n        updatedAt: date(),\n        draft: optional(boolean()),\n        tags: optional(array(string())),\n        hero: object({\n          image: property(string()).editor({ input: 'media' }),\n          caption: optional(string())\n        })\n      })\n    })\n  }\n})\n",[246,1196,1197,1223,1268,1272,1284,1292,1304,1318,1332,1344,1356,1372,1384,1400,1421,1433,1471,1486,1492,1498,1504,1508],{"__ignoreMap":244},[249,1198,1199,1201,1203,1205,1207,1209,1211,1213,1215,1217,1219,1221],{"class":251,"line":252},[249,1200,316],{"class":315},[249,1202,320],{"class":319},[249,1204,324],{"class":323},[249,1206,327],{"class":319},[249,1208,330],{"class":323},[249,1210,327],{"class":319},[249,1212,335],{"class":323},[249,1214,338],{"class":319},[249,1216,341],{"class":315},[249,1218,344],{"class":319},[249,1220,347],{"class":259},[249,1222,350],{"class":319},[249,1224,1225,1227,1229,1232,1234,1237,1239,1242,1244,1247,1249,1252,1254,1257,1259,1261,1263,1266],{"class":251,"line":272},[249,1226,316],{"class":315},[249,1228,320],{"class":319},[249,1230,1231],{"class":323}," object",[249,1233,327],{"class":319},[249,1235,1236],{"class":323}," string",[249,1238,327],{"class":319},[249,1240,1241],{"class":323}," boolean",[249,1243,327],{"class":319},[249,1245,1246],{"class":323}," array",[249,1248,327],{"class":319},[249,1250,1251],{"class":323}," date",[249,1253,327],{"class":319},[249,1255,1256],{"class":323}," optional",[249,1258,338],{"class":319},[249,1260,341],{"class":315},[249,1262,344],{"class":319},[249,1264,1265],{"class":259},"valibot",[249,1267,350],{"class":319},[249,1269,1270],{"class":251,"line":279},[249,1271,379],{"emptyLinePlaceholder":378},[249,1273,1274,1276,1278,1280,1282],{"class":251,"line":382},[249,1275,385],{"class":315},[249,1277,388],{"class":315},[249,1279,324],{"class":391},[249,1281,394],{"class":323},[249,1283,397],{"class":319},[249,1285,1286,1288,1290],{"class":251,"line":400},[249,1287,404],{"class":403},[249,1289,407],{"class":319},[249,1291,410],{"class":319},[249,1293,1294,1296,1298,1300,1302],{"class":251,"line":413},[249,1295,880],{"class":403},[249,1297,407],{"class":319},[249,1299,330],{"class":391},[249,1301,394],{"class":323},[249,1303,397],{"class":319},[249,1305,1306,1308,1310,1312,1314,1316],{"class":251,"line":427},[249,1307,430],{"class":403},[249,1309,407],{"class":319},[249,1311,344],{"class":319},[249,1313,437],{"class":259},[249,1315,370],{"class":319},[249,1317,442],{"class":319},[249,1319,1320,1322,1324,1326,1328,1330],{"class":251,"line":445},[249,1321,448],{"class":403},[249,1323,407],{"class":319},[249,1325,344],{"class":319},[249,1327,913],{"class":259},[249,1329,370],{"class":319},[249,1331,442],{"class":319},[249,1333,1334,1336,1338,1340,1342],{"class":251,"line":462},[249,1335,465],{"class":403},[249,1337,407],{"class":319},[249,1339,1231],{"class":391},[249,1341,394],{"class":323},[249,1343,397],{"class":319},[249,1345,1346,1348,1350,1352,1354],{"class":251,"line":481},[249,1347,484],{"class":403},[249,1349,407],{"class":319},[249,1351,1236],{"class":391},[249,1353,496],{"class":323},[249,1355,442],{"class":319},[249,1357,1358,1360,1362,1364,1366,1368,1370],{"class":251,"line":501},[249,1359,504],{"class":403},[249,1361,407],{"class":319},[249,1363,1256],{"class":391},[249,1365,394],{"class":323},[249,1367,493],{"class":391},[249,1369,600],{"class":323},[249,1371,442],{"class":319},[249,1373,1374,1376,1378,1380,1382],{"class":251,"line":526},[249,1375,976],{"class":403},[249,1377,407],{"class":319},[249,1379,1251],{"class":391},[249,1381,496],{"class":323},[249,1383,442],{"class":319},[249,1385,1386,1388,1390,1392,1394,1396,1398],{"class":251,"line":545},[249,1387,548],{"class":403},[249,1389,407],{"class":319},[249,1391,1256],{"class":391},[249,1393,394],{"class":323},[249,1395,557],{"class":391},[249,1397,600],{"class":323},[249,1399,442],{"class":319},[249,1401,1402,1404,1406,1408,1410,1412,1414,1416,1419],{"class":251,"line":578},[249,1403,581],{"class":403},[249,1405,407],{"class":319},[249,1407,1256],{"class":391},[249,1409,394],{"class":323},[249,1411,590],{"class":391},[249,1413,394],{"class":323},[249,1415,493],{"class":391},[249,1417,1418],{"class":323},"()))",[249,1420,442],{"class":319},[249,1422,1423,1425,1427,1429,1431],{"class":251,"line":611},[249,1424,1043],{"class":403},[249,1426,407],{"class":319},[249,1428,1231],{"class":391},[249,1430,394],{"class":323},[249,1432,397],{"class":319},[249,1434,1435,1437,1439,1441,1443,1445,1447,1449,1451,1453,1455,1457,1459,1461,1463,1465,1467,1469],{"class":251,"line":629},[249,1436,1060],{"class":403},[249,1438,407],{"class":319},[249,1440,335],{"class":391},[249,1442,394],{"class":323},[249,1444,493],{"class":391},[249,1446,600],{"class":323},[249,1448,302],{"class":319},[249,1450,649],{"class":391},[249,1452,394],{"class":323},[249,1454,654],{"class":319},[249,1456,657],{"class":403},[249,1458,407],{"class":319},[249,1460,344],{"class":319},[249,1462,664],{"class":259},[249,1464,370],{"class":319},[249,1466,338],{"class":319},[249,1468,573],{"class":323},[249,1470,442],{"class":319},[249,1472,1473,1475,1477,1479,1481,1483],{"class":251,"line":675},[249,1474,1101],{"class":403},[249,1476,407],{"class":319},[249,1478,1256],{"class":391},[249,1480,394],{"class":323},[249,1482,493],{"class":391},[249,1484,1485],{"class":323},"())\n",[249,1487,1488,1490],{"class":251,"line":692},[249,1489,695],{"class":319},[249,1491,698],{"class":323},[249,1493,1494,1496],{"class":251,"line":701},[249,1495,704],{"class":319},[249,1497,698],{"class":323},[249,1499,1500,1502],{"class":251,"line":709},[249,1501,712],{"class":319},[249,1503,698],{"class":323},[249,1505,1506],{"class":251,"line":717},[249,1507,720],{"class":319},[249,1509,1510,1512],{"class":251,"line":723},[249,1511,726],{"class":319},[249,1513,698],{"class":323},[229,1515,1517],{"id":1516},"choosing-a-validator","Choosing a validator",[1519,1520,1521,1530],"ul",{},[1522,1523,1524,1527,1528,302],"li",{},[220,1525,1526],{},"Zod v3",": battle-tested, rich ecosystem; great DX with re-exported ",[246,1529,297],{},[1522,1531,1532,1534,1535,302],{},[220,1533,226],{},": lightweight and fast; bring your own importer from ",[246,1536,1265],{},[216,1538,1539],{},"Only install and use the validator you need. Nuxt Content auto-detects supported validators that are installed.",[229,1541,1543],{"id":1542},"support-for-other-validators","Support for other validators",[216,1545,1546,1547,302],{},"Nuxt Content converts your collection schema to JSON Schema Draft-07 internally. If your preferred validator can be transformed to Draft-07 (or has a compatible adapter), it can be supported. Currently, Zod (v3 and v4) and Valibot are auto-detected. If you’d like first-class support for another validator, consider opening an issue or PR in the ",[1548,1549,1553],"a",{"href":1550,"rel":1551},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fcontent",[1552],"nofollow","Nuxt Content repository",[229,1555,1557],{"id":1556},"editor-metadata-optional","Editor metadata (optional)",[216,1559,1560,1561,1564],{},"You can enrich fields for Studio via ",[246,1562,1563],{},"property(...).editor({ ... })"," with both validators. See the Studio docs for mapping details.",[1566,1567,1569],"tip",{"to":1568},"https:\u002F\u002Fnuxt.studio\u002Fcontent#form-editor","Learn how editor metadata maps to form inputs in Studio.",[1571,1572,1573],"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 .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":244,"searchDepth":272,"depth":272,"links":1575},[1576,1579,1582,1585,1586,1587],{"id":231,"depth":272,"text":232,"children":1577},[1578],{"id":236,"depth":279,"text":237},{"id":759,"depth":272,"text":760,"children":1580},[1581],{"id":770,"depth":279,"text":771},{"id":1148,"depth":272,"text":1149,"children":1583},[1584],{"id":1155,"depth":279,"text":1156},{"id":1516,"depth":272,"text":1517},{"id":1542,"depth":272,"text":1543},{"id":1556,"depth":272,"text":1557},"Define collection schemas with your preferred validator and full type-safety.","md",null,{},{"title":43},{"title":211,"description":1588},"KdOvgY0-ExM-flzZkl8qIVJ8_kRS3qze7SCpAobWQ6o",[1596,1598],{"title":39,"path":40,"stem":41,"description":1597,"children":-1},"Learn how to import your files in Nuxt Content collections.",{"title":47,"path":48,"stem":49,"description":1599,"children":-1},"Reuse a Vue component's props as part of your collection schema using property().inherit().",1778167677504]