[{"data":1,"prerenderedAt":1436},["ShallowReactive",2],{"navigation":3,"/docs/getting-started/migration":179,"NtdLehvC6r":1423},[4,24,43,61,83,101,119,149],{"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":42},"Collections","i-lucide-database","/docs/collections","docs/2.collections",[30,34,38],{"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",false,{"title":44,"icon":45,"path":46,"stem":47,"children":48,"page":42},"Files","i-lucide-file","/docs/files","docs/3.files",[49,53,57],{"title":50,"path":51,"stem":52},"Markdown","/docs/files/markdown","docs/3.files/1.markdown",{"title":54,"path":55,"stem":56},"YAML","/docs/files/yaml","docs/3.files/2.yaml",{"title":58,"path":59,"stem":60},"JSON","/docs/files/json","docs/3.files/3.json",{"title":62,"icon":63,"path":64,"stem":65,"children":66,"page":42},"Query Utils","i-lucide-square-function","/docs/utils","docs/4.utils",[67,71,75,79],{"title":68,"path":69,"stem":70},"queryCollection","/docs/utils/query-collection","docs/4.utils/1.query-collection",{"title":72,"path":73,"stem":74},"queryCollectionNavigation","/docs/utils/query-collection-navigation","docs/4.utils/2.query-collection-navigation",{"title":76,"path":77,"stem":78},"queryCollectionItemSurroundings","/docs/utils/query-collection-item-surroundings","docs/4.utils/3.query-collection-item-surroundings",{"title":80,"path":81,"stem":82},"queryCollectionSearchSections","/docs/utils/query-collection-search-sections","docs/4.utils/4.query-collection-search-sections",{"title":84,"icon":85,"path":86,"stem":87,"children":88,"page":42},"Components","i-lucide-square-code","/docs/components","docs/5.components",[89,93,97],{"title":90,"path":91,"stem":92},"ContentRenderer","/docs/components/content-renderer","docs/5.components/0.content-renderer",{"title":94,"path":95,"stem":96},"Slot","/docs/components/slot","docs/5.components/1.slot",{"title":98,"path":99,"stem":100},"Prose Components","/docs/components/prose","docs/5.components/2.prose",{"title":102,"icon":103,"path":104,"stem":105,"children":106,"page":42},"Deploy","i-lucide-cloud-upload","/docs/deploy","docs/6.deploy",[107,111,115],{"title":108,"path":109,"stem":110},"Server","/docs/deploy/server","docs/6.deploy/1.server",{"title":112,"path":113,"stem":114},"Serverless","/docs/deploy/serverless","docs/6.deploy/2.serverless",{"title":116,"path":117,"stem":118},"Static","/docs/deploy/static","docs/6.deploy/3.static",{"title":120,"icon":121,"path":122,"stem":123,"children":124,"page":42},"Advanced","i-lucide-code-xml","/docs/advanced","docs/7.advanced",[125,129,133,137,141,145],{"title":126,"path":127,"stem":128},"Full-Text Search","/docs/advanced/fulltext-search","docs/7.advanced/1.fulltext-search",{"title":130,"path":131,"stem":132},"Raw Content","/docs/advanced/raw-content","docs/7.advanced/2.raw-content",{"title":134,"path":135,"stem":136},"SQL Storage","/docs/advanced/database","docs/7.advanced/3.database",{"title":138,"path":139,"stem":140},"Debugging tools","/docs/advanced/tools","docs/7.advanced/4.tools",{"title":142,"path":143,"stem":144},"Hooks","/docs/advanced/hooks","docs/7.advanced/5.hooks",{"title":146,"path":147,"stem":148},"Custom Source","/docs/advanced/custom-source","docs/7.advanced/6.custom-source",{"title":150,"icon":151,"path":152,"stem":153,"children":154,"page":42},"Studio","i-lucide-monitor","/docs/studio","docs/8.studio",[155,159,163,167,171,175],{"title":156,"path":157,"stem":158},"Setup","/docs/studio/setup","docs/8.studio/1.setup",{"title":160,"path":161,"stem":162},"Synchronization","/docs/studio/github","docs/8.studio/2.github",{"title":164,"path":165,"stem":166},"Content editors","/docs/studio/content","docs/8.studio/3.content",{"title":168,"path":169,"stem":170},"Medias","/docs/studio/medias","docs/8.studio/4.medias",{"title":172,"path":173,"stem":174},"App Config","/docs/studio/config","docs/8.studio/5.config",{"title":176,"path":177,"stem":178},"Local Debug","/docs/studio/debug","docs/8.studio/6.debug",{"page":180,"surround":1418},{"id":181,"title":20,"body":182,"description":1413,"extension":1414,"links":1415,"meta":1416,"navigation":720,"path":21,"seo":1417,"stem":22},"docs/docs/1.getting-started/4.migration.md",{"type":183,"value":184,"toc":1397},"minimal",[185,189,192,197,202,216,222,273,276,313,333,355,358,369,373,415,419,442,534,554,558,561,845,855,864,877,960,1103,1108,1115,1118,1314,1319,1334,1346,1369,1375,1393],[186,187,188],"p",{},"Nuxt Content v3 has been rebuilt from the ground up, resulting in a new library with enhanced capabilities. While we've redesigned concepts and components in a similar way as Content v2, breaking changes are inevitable.",[186,190,191],{},"Don't worry, you don't need to modify your content files. We made sure that Content v3 handles content in the same way as Content v2.",[193,194,196],"h2",{"id":195},"changes","Changes",[198,199,201],"h3",{"id":200},"vue-utils","Vue utils",[203,204,205],"ul",{},[206,207,208,212,213],"li",{},[209,210,211],"code",{},"queryContent()"," API is replaced with new ",[209,214,215],{},"queryCollection()",[217,218,219],"prose-tip",{},[186,220,221],{},"The new API is backed by SQL and content queries happens within a specific collection.",[203,223,224,232,238,250,256,265],{},[206,225,226,212,229],{},[209,227,228],{},"fetchContentNavigation()",[209,230,231],{},"queryCollectionNavigation()",[206,233,234,235],{},"Surroundings now has its own separate API ",[209,236,237],{},"queryCollectionItemSurroundings()",[206,239,240,241,243,244,249],{},"Document driven mode is dropped: ",[209,242,50],{}," files will not convert to Nuxt pages automatically, you need to create pages, ",[245,246,248],"a",{"href":247},"/docs/components/content-renderer#example","check this section to see how",".",[206,251,252,255],{},[209,253,254],{},"useContent()"," composable is removed",[206,257,258,261,262,264],{},[209,259,260],{},"searchContent()"," is dropped in favor of the new ",[209,263,80],{}," API",[206,266,267,268,270,271],{},"Full text search can easily be done using the ",[209,269,80],{}," API, ",[245,272,248],{"href":127},[198,274,84],{"id":275},"components",[203,277,278,300],{},[206,279,280,281,284,285,288,289,288,292,295,296,299],{},"All content should be rendered using ",[209,282,283],{},"\u003CContentRenderer>"," component. ",[209,286,287],{},"\u003CContentDoc>",", ",[209,290,291],{},"\u003CContentList>",[209,293,294],{},"\u003CContentNavigation>"," and ",[209,297,298],{},"\u003CContentQuery>"," components are dropped in v3.",[206,301,302,295,305,308,309,312],{},[209,303,304],{},"\u003CContentSlot>",[209,306,307],{},"\u003CMDCSlot>"," components are not supported in v3. Instead components can simply use Vue's native ",[209,310,311],{},"\u003Cslot>"," component",[314,315,316],"prose-note",{},[186,317,318,295,320,322,323,326,327,329,330],{},[209,319,304],{},[209,321,307],{}," was initially pro to manipulate content before rendering and removing wrapping paragraphs from slot content. This unwrapping behavior is now supported via ",[209,324,325],{},"mdc-unwrap"," attribute in ",[209,328,311],{}," component. Example: ",[209,331,332],{},"\u003Cslot mdc-unwrap=\"p\" />",[203,334,335],{},[206,336,337,338,341,342,348,349,354],{},"Components created under the ",[209,339,340],{},"components/content"," directory are no longer automatically registered as global components. If you use ",[245,343,347],{"href":344,"rel":345},"https://vuejs.org/guide/essentials/component-basics.html#dynamic-components",[346],"nofollow","dynamic rendering"," to render these components outside markdown files, you must manually register them in your Nuxt app. Check out the ",[245,350,353],{"href":351,"rel":352},"https://nuxt.com/docs/guide/directory-structure/components#custom-directories",[346],"Nuxt - Custom Components Directories"," documentation for more information on how to do so.",[198,356,35],{"id":357},"types",[203,359,360],{},[206,361,362,365,366],{},[209,363,364],{},"import type { NavItem } from '@nuxt/content/dist/runtime/types'"," is replaced with ",[209,367,368],{},"import type { ContentNavigationItem } from '@nuxt/content'",[198,370,372],{"id":371},"general","General",[203,374,375,384,394,409],{},[206,376,377,380,381],{},[209,378,379],{},"_dir.yml"," files are renamed to ",[209,382,383],{},".navigation.yml",[206,385,386,387,390,391,249],{},"There is no source option in module options, instead you can define ",[245,388,389],{"href":40},"multiple sources"," for your collections in ",[209,392,393],{},"content.config.ts",[206,395,396,397,400,401,404,405,408],{},"Document ",[209,398,399],{},"._path"," is now renamed to ",[209,402,403],{},".path",", likewise all internal fields with ",[209,406,407],{},"_"," prefix are removed or renamed.",[206,410,411,414],{},[209,412,413],{},"useContentHelpers()"," is removed",[198,416,418],{"id":417},"nuxt-studio-integration","Nuxt Studio integration",[203,420,421],{},[206,422,423,424,429,430,433,434,437,438,441],{},"The ",[245,425,428],{"href":426,"rel":427},"https://nuxtlabs/studio-module",[346],"studio module"," has been deprecated and a new generic ",[209,431,432],{},"Preview API"," has been implemented directly into Nuxt Content, you can remove the ",[209,435,436],{},"@nuxthq/studio"," package from your dependencies and from the ",[209,439,440],{},"nuxt.config.ts"," modules. Instead we just need to enable the preview mode in the Nuxt configuration file by binding the Studio API.",[443,444,449],"pre",{"className":445,"code":446,"filename":440,"language":447,"meta":448,"style":448},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export default defineNuxtConfig({\n  content: {\n    preview: {\n      api: 'https://api.nuxt.studio\n    }\n  },\n})\n","ts","",[209,450,451,475,488,498,513,519,525],{"__ignoreMap":448},[452,453,456,460,463,467,471],"span",{"class":454,"line":455},"line",1,[452,457,459],{"class":458},"s8pZq","export",[452,461,462],{"class":458}," default",[452,464,466],{"class":465},"swgpB"," defineNuxtConfig",[452,468,470],{"class":469},"sndM8","(",[452,472,474],{"class":473},"s86vT","{\n",[452,476,478,482,485],{"class":454,"line":477},2,[452,479,481],{"class":480},"sd2Uz","  content",[452,483,484],{"class":473},":",[452,486,487],{"class":473}," {\n",[452,489,491,494,496],{"class":454,"line":490},3,[452,492,493],{"class":480},"    preview",[452,495,484],{"class":473},[452,497,487],{"class":473},[452,499,501,504,506,509],{"class":454,"line":500},4,[452,502,503],{"class":480},"      api",[452,505,484],{"class":473},[452,507,508],{"class":473}," '",[452,510,512],{"class":511},"sIEYB","https://api.nuxt.studio\n",[452,514,516],{"class":454,"line":515},5,[452,517,518],{"class":473},"    }\n",[452,520,522],{"class":454,"line":521},6,[452,523,524],{"class":473},"  },\n",[452,526,528,531],{"class":454,"line":527},7,[452,529,530],{"class":473},"}",[452,532,533],{"class":469},")\n",[203,535,536],{},[206,537,538,539,542,543,546,547,550,551,249],{},"In order to keep the ",[245,540,541],{"href":173},"app config file"," updatable from Studio we just need to update the helper import of the ",[209,544,545],{},"nuxt.schema.ts"," file from ",[209,548,549],{},"@nuxthq/studio/theme"," to ",[209,552,553],{},"@nuxt/content/preview",[193,555,557],{"id":556},"implement-document-driven-mode-in-v3","Implement Document Driven mode in v3",[186,559,560],{},"Implementing document driven mode in Content v3 is quite easy. All you need is to create a catch-all page in Nuxt and fetch contents based on route path.",[443,562,567],{"className":563,"code":564,"filename":565,"language":566,"meta":448,"style":448},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript lang=\"ts\" setup>\nconst route = useRoute()\nconst { data: page } = await useAsyncData(route.path, () => {\n  return queryCollection('content').path(route.path).first()\n})\n\u003C/script>\n\n\u003Ctemplate>\n  \u003Cdiv>\n    \u003Cheader>\u003C!-- ... -->\u003C/header>\n\n    \u003CContentRenderer v-if=\"page\" :value=\"page\" />\n\n    \u003Cfooter>\u003C!-- ... -->\u003C/footer>\n  \u003C/div>\n\u003C/template>\n","pages/[...slug].vue","vue",[209,568,569,597,613,658,701,707,716,722,732,743,765,770,803,808,826,836],{"__ignoreMap":448},[452,570,571,574,577,581,584,587,589,591,594],{"class":454,"line":455},[452,572,573],{"class":473},"\u003C",[452,575,576],{"class":480},"script",[452,578,580],{"class":579},"s50WR"," lang",[452,582,583],{"class":473},"=",[452,585,586],{"class":473},"\"",[452,588,447],{"class":511},[452,590,586],{"class":473},[452,592,593],{"class":579}," setup",[452,595,596],{"class":473},">\n",[452,598,599,602,605,607,610],{"class":454,"line":477},[452,600,601],{"class":579},"const",[452,603,604],{"class":469}," route ",[452,606,583],{"class":473},[452,608,609],{"class":465}," useRoute",[452,611,612],{"class":469},"()\n",[452,614,615,617,620,623,625,628,630,633,636,639,642,644,647,650,653,656],{"class":454,"line":490},[452,616,601],{"class":579},[452,618,619],{"class":473}," {",[452,621,622],{"class":480}," data",[452,624,484],{"class":473},[452,626,627],{"class":469}," page ",[452,629,530],{"class":473},[452,631,632],{"class":473}," =",[452,634,635],{"class":458}," await",[452,637,638],{"class":465}," useAsyncData",[452,640,641],{"class":469},"(route",[452,643,249],{"class":473},[452,645,646],{"class":469},"path",[452,648,649],{"class":473},",",[452,651,652],{"class":473}," ()",[452,654,655],{"class":579}," =>",[452,657,487],{"class":473},[452,659,660,663,666,668,671,674,676,679,681,683,685,688,690,692,694,696,699],{"class":454,"line":500},[452,661,662],{"class":458},"  return",[452,664,665],{"class":465}," queryCollection",[452,667,470],{"class":480},[452,669,670],{"class":473},"'",[452,672,673],{"class":511},"content",[452,675,670],{"class":473},[452,677,678],{"class":480},")",[452,680,249],{"class":473},[452,682,646],{"class":465},[452,684,470],{"class":480},[452,686,687],{"class":469},"route",[452,689,249],{"class":473},[452,691,646],{"class":469},[452,693,678],{"class":480},[452,695,249],{"class":473},[452,697,698],{"class":465},"first",[452,700,612],{"class":480},[452,702,703,705],{"class":454,"line":515},[452,704,530],{"class":473},[452,706,533],{"class":469},[452,708,709,712,714],{"class":454,"line":521},[452,710,711],{"class":473},"\u003C/",[452,713,576],{"class":480},[452,715,596],{"class":473},[452,717,718],{"class":454,"line":527},[452,719,721],{"emptyLinePlaceholder":720},true,"\n",[452,723,725,727,730],{"class":454,"line":724},8,[452,726,573],{"class":473},[452,728,729],{"class":480},"template",[452,731,596],{"class":473},[452,733,735,738,741],{"class":454,"line":734},9,[452,736,737],{"class":473},"  \u003C",[452,739,740],{"class":480},"div",[452,742,596],{"class":473},[452,744,746,749,752,755,759,761,763],{"class":454,"line":745},10,[452,747,748],{"class":473},"    \u003C",[452,750,751],{"class":480},"header",[452,753,754],{"class":473},">",[452,756,758],{"class":757},"syuKq","\u003C!-- ... -->",[452,760,711],{"class":473},[452,762,751],{"class":480},[452,764,596],{"class":473},[452,766,768],{"class":454,"line":767},11,[452,769,721],{"emptyLinePlaceholder":720},[452,771,773,775,777,780,782,784,787,789,792,794,796,798,800],{"class":454,"line":772},12,[452,774,748],{"class":473},[452,776,90],{"class":480},[452,778,779],{"class":579}," v-if",[452,781,583],{"class":473},[452,783,586],{"class":473},[452,785,786],{"class":511},"page",[452,788,586],{"class":473},[452,790,791],{"class":579}," :value",[452,793,583],{"class":473},[452,795,586],{"class":473},[452,797,786],{"class":511},[452,799,586],{"class":473},[452,801,802],{"class":473}," />\n",[452,804,806],{"class":454,"line":805},13,[452,807,721],{"emptyLinePlaceholder":720},[452,809,811,813,816,818,820,822,824],{"class":454,"line":810},14,[452,812,748],{"class":473},[452,814,815],{"class":480},"footer",[452,817,754],{"class":473},[452,819,758],{"class":757},[452,821,711],{"class":473},[452,823,815],{"class":480},[452,825,596],{"class":473},[452,827,829,832,834],{"class":454,"line":828},15,[452,830,831],{"class":473},"  \u003C/",[452,833,740],{"class":480},[452,835,596],{"class":473},[452,837,839,841,843],{"class":454,"line":838},16,[452,840,711],{"class":473},[452,842,729],{"class":480},[452,844,596],{"class":473},[193,846,848,849,550,852],{"id":847},"converting-querycontent-to-querycollections","Converting ",[209,850,851],{},"queryContent",[209,853,854],{},"queryCollections",[186,856,857,858,860,861,863],{},"As we mentioned above, ",[209,859,851],{}," is dropped in favor of new collection based ",[209,862,68],{},". There are two main differences between these two:",[865,866,867,872],"ol",{},[206,868,869,871],{},[209,870,68],{}," is building a query for an SQL database.",[206,873,874,876],{},[209,875,68],{}," does the search only inside the specified collection. You should know the collection's name (key on config).",[443,878,881],{"className":445,"code":879,"filename":880,"language":447,"meta":448,"style":448},"// Content v2\nconst v2Query = await queryContent(route.path).findOne()\n// Content v3 - don't forget to create `content` collection in `content.config.ts`\nconst v3Query = await queryCollection('content').path(route.path).first()\n","Find content with path",[209,882,883,888,916,921],{"__ignoreMap":448},[452,884,885],{"class":454,"line":455},[452,886,887],{"class":757},"// Content v2\n",[452,889,890,892,895,897,899,902,904,906,909,911,914],{"class":454,"line":477},[452,891,601],{"class":579},[452,893,894],{"class":469}," v2Query ",[452,896,583],{"class":473},[452,898,635],{"class":458},[452,900,901],{"class":465}," queryContent",[452,903,641],{"class":469},[452,905,249],{"class":473},[452,907,908],{"class":469},"path)",[452,910,249],{"class":473},[452,912,913],{"class":465},"findOne",[452,915,612],{"class":469},[452,917,918],{"class":454,"line":490},[452,919,920],{"class":757},"// Content v3 - don't forget to create `content` collection in `content.config.ts`\n",[452,922,923,925,928,930,932,934,936,938,940,942,944,946,948,950,952,954,956,958],{"class":454,"line":500},[452,924,601],{"class":579},[452,926,927],{"class":469}," v3Query ",[452,929,583],{"class":473},[452,931,635],{"class":458},[452,933,665],{"class":465},[452,935,470],{"class":469},[452,937,670],{"class":473},[452,939,673],{"class":511},[452,941,670],{"class":473},[452,943,678],{"class":469},[452,945,249],{"class":473},[452,947,646],{"class":465},[452,949,641],{"class":469},[452,951,249],{"class":473},[452,953,908],{"class":469},[452,955,249],{"class":473},[452,957,698],{"class":465},[452,959,612],{"class":469},[443,961,964],{"className":445,"code":962,"filename":963,"language":447,"meta":448,"style":448},"// Content v2\nconst v2Query = await queryContent()\n  .where({ path: /^\\/hello\\/.*/ })\n  .find()\n// Content v3 - don't forget to create `content` collection in `content.config.ts`\nconst v3Query = await queryCollection('content')\n  .where('path', 'LIKE', '/hello%')\n  .first()\n","Find contents with custom filter",[209,965,966,970,984,1026,1035,1039,1061,1095],{"__ignoreMap":448},[452,967,968],{"class":454,"line":455},[452,969,887],{"class":757},[452,971,972,974,976,978,980,982],{"class":454,"line":477},[452,973,601],{"class":579},[452,975,894],{"class":469},[452,977,583],{"class":473},[452,979,635],{"class":458},[452,981,901],{"class":465},[452,983,612],{"class":469},[452,985,986,989,992,994,997,1000,1002,1005,1008,1011,1014,1016,1018,1021,1024],{"class":454,"line":490},[452,987,988],{"class":473},"  .",[452,990,991],{"class":465},"where",[452,993,470],{"class":469},[452,995,996],{"class":473},"{",[452,998,999],{"class":480}," path",[452,1001,484],{"class":473},[452,1003,1004],{"class":473}," /",[452,1006,1007],{"class":458},"^",[452,1009,1010],{"class":469},"\\/",[452,1012,1013],{"class":511},"hello",[452,1015,1010],{"class":469},[452,1017,249],{"class":511},[452,1019,1020],{"class":473},"*/",[452,1022,1023],{"class":473}," }",[452,1025,533],{"class":469},[452,1027,1028,1030,1033],{"class":454,"line":500},[452,1029,988],{"class":473},[452,1031,1032],{"class":465},"find",[452,1034,612],{"class":469},[452,1036,1037],{"class":454,"line":515},[452,1038,920],{"class":757},[452,1040,1041,1043,1045,1047,1049,1051,1053,1055,1057,1059],{"class":454,"line":521},[452,1042,601],{"class":579},[452,1044,927],{"class":469},[452,1046,583],{"class":473},[452,1048,635],{"class":458},[452,1050,665],{"class":465},[452,1052,470],{"class":469},[452,1054,670],{"class":473},[452,1056,673],{"class":511},[452,1058,670],{"class":473},[452,1060,533],{"class":469},[452,1062,1063,1065,1067,1069,1071,1073,1075,1077,1079,1082,1084,1086,1088,1091,1093],{"class":454,"line":527},[452,1064,988],{"class":473},[452,1066,991],{"class":465},[452,1068,470],{"class":469},[452,1070,670],{"class":473},[452,1072,646],{"class":511},[452,1074,670],{"class":473},[452,1076,649],{"class":473},[452,1078,508],{"class":473},[452,1080,1081],{"class":511},"LIKE",[452,1083,670],{"class":473},[452,1085,649],{"class":473},[452,1087,508],{"class":473},[452,1089,1090],{"class":511},"/hello%",[452,1092,670],{"class":473},[452,1094,533],{"class":469},[452,1096,1097,1099,1101],{"class":454,"line":724},[452,1098,988],{"class":473},[452,1100,698],{"class":465},[452,1102,612],{"class":469},[314,1104,1105],{"to":32},[186,1106,1107],{},"Check the dedicated section for more info about collections",[193,1109,1111,1112],{"id":1110},"convert-querycontentfindsurround","Convert ",[209,1113,1114],{},"queryContent().findSurround()",[186,1116,1117],{},"Surround now has its own separate API.",[443,1119,1121],{"className":445,"code":1120,"language":447,"meta":448,"style":448},"const targetPath = '/docs'\n\n// Content v2\nconst v2Surround = await queryContent(targetPath)\n  .only(['title', 'description', 'navigation'])\n  .findSurround(withoutTrailingSlash(route.path))\n\n// Content v3 - don't forget to create `content` collection in `content.config.ts`\nconst v3Surround = await queryCollectionItemSurroundings(\n  'content',\n  targetPath,\n  {\n    fields: ['title', 'description', 'navigation']\n  }\n)\n",[209,1122,1123,1140,1144,1148,1164,1202,1221,1225,1229,1246,1258,1265,1270,1305,1310],{"__ignoreMap":448},[452,1124,1125,1127,1130,1132,1134,1137],{"class":454,"line":455},[452,1126,601],{"class":579},[452,1128,1129],{"class":469}," targetPath ",[452,1131,583],{"class":473},[452,1133,508],{"class":473},[452,1135,1136],{"class":511},"/docs",[452,1138,1139],{"class":473},"'\n",[452,1141,1142],{"class":454,"line":477},[452,1143,721],{"emptyLinePlaceholder":720},[452,1145,1146],{"class":454,"line":490},[452,1147,887],{"class":757},[452,1149,1150,1152,1155,1157,1159,1161],{"class":454,"line":500},[452,1151,601],{"class":579},[452,1153,1154],{"class":469}," v2Surround ",[452,1156,583],{"class":473},[452,1158,635],{"class":458},[452,1160,901],{"class":465},[452,1162,1163],{"class":469},"(targetPath)\n",[452,1165,1166,1168,1171,1174,1176,1179,1181,1183,1185,1188,1190,1192,1194,1197,1199],{"class":454,"line":515},[452,1167,988],{"class":473},[452,1169,1170],{"class":465},"only",[452,1172,1173],{"class":469},"([",[452,1175,670],{"class":473},[452,1177,1178],{"class":511},"title",[452,1180,670],{"class":473},[452,1182,649],{"class":473},[452,1184,508],{"class":473},[452,1186,1187],{"class":511},"description",[452,1189,670],{"class":473},[452,1191,649],{"class":473},[452,1193,508],{"class":473},[452,1195,1196],{"class":511},"navigation",[452,1198,670],{"class":473},[452,1200,1201],{"class":469},"])\n",[452,1203,1204,1206,1209,1211,1214,1216,1218],{"class":454,"line":521},[452,1205,988],{"class":473},[452,1207,1208],{"class":465},"findSurround",[452,1210,470],{"class":469},[452,1212,1213],{"class":465},"withoutTrailingSlash",[452,1215,641],{"class":469},[452,1217,249],{"class":473},[452,1219,1220],{"class":469},"path))\n",[452,1222,1223],{"class":454,"line":527},[452,1224,721],{"emptyLinePlaceholder":720},[452,1226,1227],{"class":454,"line":724},[452,1228,920],{"class":757},[452,1230,1231,1233,1236,1238,1240,1243],{"class":454,"line":734},[452,1232,601],{"class":579},[452,1234,1235],{"class":469}," v3Surround ",[452,1237,583],{"class":473},[452,1239,635],{"class":458},[452,1241,1242],{"class":465}," queryCollectionItemSurroundings",[452,1244,1245],{"class":469},"(\n",[452,1247,1248,1251,1253,1255],{"class":454,"line":745},[452,1249,1250],{"class":473},"  '",[452,1252,673],{"class":511},[452,1254,670],{"class":473},[452,1256,1257],{"class":473},",\n",[452,1259,1260,1263],{"class":454,"line":767},[452,1261,1262],{"class":469},"  targetPath",[452,1264,1257],{"class":473},[452,1266,1267],{"class":454,"line":772},[452,1268,1269],{"class":473},"  {\n",[452,1271,1272,1275,1277,1280,1282,1284,1286,1288,1290,1292,1294,1296,1298,1300,1302],{"class":454,"line":805},[452,1273,1274],{"class":480},"    fields",[452,1276,484],{"class":473},[452,1278,1279],{"class":469}," [",[452,1281,670],{"class":473},[452,1283,1178],{"class":511},[452,1285,670],{"class":473},[452,1287,649],{"class":473},[452,1289,508],{"class":473},[452,1291,1187],{"class":511},[452,1293,670],{"class":473},[452,1295,649],{"class":473},[452,1297,508],{"class":473},[452,1299,1196],{"class":511},[452,1301,670],{"class":473},[452,1303,1304],{"class":469},"]\n",[452,1306,1307],{"class":454,"line":810},[452,1308,1309],{"class":473},"  }\n",[452,1311,1312],{"class":454,"line":828},[452,1313,533],{"class":469},[314,1315,1316],{},[186,1317,1318],{},"Check the dedicated section for more information about the",[193,1320,1322,1323,288,1326,1329,1330,1333],{"id":1321},"consolidate-prosepre-prosecode-and-prosecodeinline-components","Consolidate ",[209,1324,1325],{},"ProsePre",[209,1327,1328],{},"ProseCode",", and ",[209,1331,1332],{},"ProseCodeInline"," components",[186,1335,1336,1337,1339,1340,1342,1343,1345],{},"Many ",[209,1338,1325],{}," components are thin wrappers around the ",[209,1341,1328],{}," component. We've consolidated these three components into two components. There is now no difference between ",[209,1344,1325],{}," and multi-line code blocks.",[865,1347,1348,1360],{},[206,1349,1350,1351,1354,1355,1357,1358,249],{},"MDC will now map and parse single backticks ",[209,1352,1353],{},"`"," as ",[209,1356,1328],{}," instead of ",[209,1359,1332],{},[206,1361,1362,1363,1354,1366,1368],{},"MDC will now map and parse block code starting with three backticks",[209,1364,1365],{},"```",[209,1367,1325],{}," component.",[186,1370,1371],{},[1372,1373,1374],"strong",{},"Suggested Changes:",[865,1376,1377,1385],{},[206,1378,1379,1380,1382,1383],{},"Your current ",[209,1381,1328],{}," logic should be moved to ",[209,1384,1325],{},[206,1386,1387,1388,1390,1391],{},"Rename your ",[209,1389,1332],{}," components to ",[209,1392,1328],{},[1394,1395,1396],"style",{},"html pre.shiki code .s8pZq, html code.shiki .s8pZq{--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 .swgpB, html code.shiki .swgpB{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sndM8, html code.shiki .sndM8{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s86vT, html code.shiki .s86vT{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sd2Uz, html code.shiki .sd2Uz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sIEYB, html code.shiki .sIEYB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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 .s50WR, html code.shiki .s50WR{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .syuKq, html code.shiki .syuKq{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}",{"title":448,"searchDepth":500,"depth":500,"links":1398},[1399,1406,1407,1409,1411],{"id":195,"depth":477,"text":196,"children":1400},[1401,1402,1403,1404,1405],{"id":200,"depth":490,"text":201},{"id":275,"depth":490,"text":84},{"id":357,"depth":490,"text":35},{"id":371,"depth":490,"text":372},{"id":417,"depth":490,"text":418},{"id":556,"depth":477,"text":557},{"id":847,"depth":477,"text":1408},"Converting queryContent to queryCollections",{"id":1110,"depth":477,"text":1410},"Convert queryContent().findSurround()",{"id":1321,"depth":477,"text":1412},"Consolidate ProsePre, ProseCode, and ProseCodeInline components","How to migrate from v2 to v3","md",null,{},{"title":20,"description":1413},[1419,1421],{"title":16,"path":17,"stem":18,"description":1420,"children":-1},"Nuxt Content is configured with sensible defaults.",{"title":31,"path":32,"stem":33,"description":1422,"children":-1},"Learn how to define and configure content collections in your Nuxt application.",{"data":1424,"body":1425,"excerpt":-1,"toc":1434},{"title":448,"description":1413},{"type":1426,"children":1427},"root",[1428],{"type":1429,"tag":186,"props":1430,"children":1431},"element",{},[1432],{"type":1433,"value":1413},"text",{"title":448,"searchDepth":477,"depth":477,"links":1435},[],1738777686320]