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