[{"data":1,"prerenderedAt":1426},["ShallowReactive",2],{"docs-/docs/introduction/migration":3,"docs-surround-/docs/introduction/migration":1357,"sidebar-docs":1368},{"id":4,"title":5,"body":6,"category":1345,"description":1346,"extension":1347,"links":1348,"meta":1349,"navigation":1350,"order":1348,"path":1353,"seo":1354,"stem":1355,"__hash__":1356},"docs/docs/introduction/10.migration.md","迁移指南",{"type":7,"value":8,"toc":1327},"minimark",[9,13,16,20,25,40,46,96,99,136,156,178,181,192,195,265,269,272,584,595,605,618,702,846,852,859,862,1058,1063,1078,1090,1114,1120,1138,1145,1154,1168,1171,1178,1246,1261,1323],[10,11,12],"p",{},"Nuxt Content v3 是从零开始重新构建的，带来了功能更强大的新库。虽然我们以与 Content v2 类似的方式重新设计了概念和组件，但破坏性变更仍然不可避免。",[10,14,15],{},"不用担心，您不需要修改您的内容文件。我们确保 Content v3 以与 Content v2 相同的方式处理内容。",[17,18,19],"h2",{"id":19},"变更",[21,22,24],"h3",{"id":23},"vue-工具","Vue 工具",[26,27,28],"ul",{},[29,30,31,35,36,39],"li",{},[32,33,34],"code",{},"queryContent()"," API 已被新的 ",[32,37,38],{},"queryCollection()"," 替代",[41,42,43],"prose-tip",{},[10,44,45],{},"新 API 由 SQL 支持，内容查询在特定集合内进行。",[26,47,48,56,62,71,77,87],{},[29,49,50,35,53,39],{},[32,51,52],{},"fetchContentNavigation()",[32,54,55],{},"queryCollectionNavigation()",[29,57,58,59],{},"周围内容现在有了自己独立的 API ",[32,60,61],{},"queryCollectionItemSurroundings()",[29,63,64,65,70],{},"文档驱动模式已被移除：Markdown 文件不再自动转换为 Nuxt 页面，您需要创建页面，",[66,67,69],"a",{"href":68},"/docs/components/content-renderer#example-usage","查看此部分了解如何操作","。",[29,72,73,76],{},[32,74,75],{},"useContent()"," 组合式函数已被移除",[29,78,79,82,83,86],{},[32,80,81],{},"searchContent()"," 已被新的 ",[32,84,85],{},"queryCollectionSearchSections"," API 替代",[29,88,89,90,92,93],{},"全文搜索可以使用 ",[32,91,85],{}," API 轻松完成，",[66,94,69],{"href":95},"/docs/advanced/fulltext-search",[21,97,98],{"id":98},"组件",[26,100,101,123],{},[29,102,103,104,107,108,111,112,111,115,118,119,122],{},"所有内容都应使用 ",[32,105,106],{},"\u003CContentRenderer>"," 组件渲染。",[32,109,110],{},"\u003CContentDoc>","、",[32,113,114],{},"\u003CContentList>",[32,116,117],{},"\u003CContentNavigation>"," 和 ",[32,120,121],{},"\u003CContentQuery>"," 组件在 v3 中已被移除。",[29,124,125,118,128,131,132,135],{},[32,126,127],{},"\u003CContentSlot>",[32,129,130],{},"\u003CMDCSlot>"," 组件在 v3 中不受支持。相反，组件可以直接使用 Vue 的原生 ",[32,133,134],{},"\u003Cslot>"," 组件",[137,138,139],"prose-note",{},[10,140,141,118,143,145,146,148,149,152,153],{},[32,142,127],{},[32,144,130],{}," 最初用于在渲染前操作内容并从插槽内容中移除包裹段落。现在，这种解包裹行为通过 ",[32,147,134],{}," 组件中的 ",[32,150,151],{},"mdc-unwrap"," 属性支持。示例：",[32,154,155],{},"\u003Cslot mdc-unwrap=\"p\" />",[26,157,158],{},[29,159,160,161,164,165,171,172,177],{},"在 ",[32,162,163],{},"components/content"," 目录下创建的组件不再自动注册为全局组件。如果您使用 ",[66,166,170],{"href":167,"rel":168},"https://vuejs.org/guide/essentials/component-basics.html#dynamic-components",[169],"nofollow","动态渲染"," 在 Markdown 文件外部渲染这些组件，则必须在 Nuxt 应用中手动注册它们。查看 ",[66,173,176],{"href":174,"rel":175},"https://nuxt.com/docs/guide/directory-structure/components#custom-directories",[169],"Nuxt - 自定义组件目录"," 文档了解如何执行此操作。",[21,179,180],{"id":180},"类型",[26,182,183],{},[29,184,185,188,189,39],{},[32,186,187],{},"import type { NavItem } from '@nuxt/content/dist/runtime/types'"," 已被 ",[32,190,191],{},"import type { ContentNavigationItem } from '@nuxt/content'",[21,193,194],{"id":194},"常规",[26,196,197,206,217,232,238,249,257],{},[29,198,199,202,203],{},[32,200,201],{},"_dir.yml"," 文件已重命名为 ",[32,204,205],{},".navigation.yml",[29,207,208,209,212,213,70],{},"模块选项中没有源选项，相反，您可以在 ",[32,210,211],{},"content.config.ts"," 中为集合定义 ",[66,214,216],{"href":215},"/docs/collections/sources","多个源",[29,218,219,220,223,224,227,228,231],{},"文档的 ",[32,221,222],{},"._path"," 现在已重命名为 ",[32,225,226],{},".path","，同样，所有带有 ",[32,229,230],{},"_"," 前缀的内部字段都已移除或重命名。",[29,233,234,237],{},[32,235,236],{},"useContentHelpers()"," 已被移除",[29,239,240,241,244,245,248],{},"模块默认不忽略点文件，您可以通过在集合源的 ",[32,242,243],{},"exclude"," 选项中添加 ",[32,246,247],{},"ignore: ['**/.*']"," 来忽略它们。",[29,250,251,252,256],{},"由于 SQL 限制，排序顺序现在使用字母顺序而不是数字顺序。查看 ",[66,253,255],{"href":254},"/docs/collections/types#ordering-files","文件排序"," 部分了解更多信息。",[29,258,259,260,264],{},"模块选项已从 v2 更改。查看 ",[66,261,263],{"href":262},"/docs/getting-started/configuration","配置页面"," 了解详细信息。",[17,266,268],{"id":267},"在-v3-中实现文档驱动模式","在 v3 中实现文档驱动模式",[10,270,271],{},"在 Content v3 中实现文档驱动模式非常简单。您只需要在 Nuxt 中创建一个捕获所有页面并基于路由路径获取内容即可。",[273,274,280],"pre",{"className":275,"code":276,"filename":277,"language":278,"meta":279,"style":279},"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","",[32,281,282,317,336,387,432,440,450,457,467,478,500,505,542,547,565,575],{"__ignoreMap":279},[283,284,287,291,295,299,302,305,309,311,314],"span",{"class":285,"line":286},"line",1,[283,288,290],{"class":289},"sMK4o","\u003C",[283,292,294],{"class":293},"swJcz","script",[283,296,298],{"class":297},"spNyl"," lang",[283,300,301],{"class":289},"=",[283,303,304],{"class":289},"\"",[283,306,308],{"class":307},"sfazB","ts",[283,310,304],{"class":289},[283,312,313],{"class":297}," setup",[283,315,316],{"class":289},">\n",[283,318,320,323,327,329,333],{"class":285,"line":319},2,[283,321,322],{"class":297},"const",[283,324,326],{"class":325},"sTEyZ"," route ",[283,328,301],{"class":289},[283,330,332],{"class":331},"s2Zo4"," useRoute",[283,334,335],{"class":325},"()\n",[283,337,339,341,344,347,350,353,356,359,363,366,369,372,375,378,381,384],{"class":285,"line":338},3,[283,340,322],{"class":297},[283,342,343],{"class":289}," {",[283,345,346],{"class":293}," data",[283,348,349],{"class":289},":",[283,351,352],{"class":325}," page ",[283,354,355],{"class":289},"}",[283,357,358],{"class":289}," =",[283,360,362],{"class":361},"s7zQu"," await",[283,364,365],{"class":331}," useAsyncData",[283,367,368],{"class":325},"(route",[283,370,371],{"class":289},".",[283,373,374],{"class":325},"path",[283,376,377],{"class":289},",",[283,379,380],{"class":289}," ()",[283,382,383],{"class":297}," =>",[283,385,386],{"class":289}," {\n",[283,388,390,393,396,399,402,405,407,410,412,414,416,419,421,423,425,427,430],{"class":285,"line":389},4,[283,391,392],{"class":361},"  return",[283,394,395],{"class":331}," queryCollection",[283,397,398],{"class":293},"(",[283,400,401],{"class":289},"'",[283,403,404],{"class":307},"content",[283,406,401],{"class":289},[283,408,409],{"class":293},")",[283,411,371],{"class":289},[283,413,374],{"class":331},[283,415,398],{"class":293},[283,417,418],{"class":325},"route",[283,420,371],{"class":289},[283,422,374],{"class":325},[283,424,409],{"class":293},[283,426,371],{"class":289},[283,428,429],{"class":331},"first",[283,431,335],{"class":293},[283,433,435,437],{"class":285,"line":434},5,[283,436,355],{"class":289},[283,438,439],{"class":325},")\n",[283,441,443,446,448],{"class":285,"line":442},6,[283,444,445],{"class":289},"\u003C/",[283,447,294],{"class":293},[283,449,316],{"class":289},[283,451,453],{"class":285,"line":452},7,[283,454,456],{"emptyLinePlaceholder":455},true,"\n",[283,458,460,462,465],{"class":285,"line":459},8,[283,461,290],{"class":289},[283,463,464],{"class":293},"template",[283,466,316],{"class":289},[283,468,470,473,476],{"class":285,"line":469},9,[283,471,472],{"class":289},"  \u003C",[283,474,475],{"class":293},"div",[283,477,316],{"class":289},[283,479,481,484,487,490,494,496,498],{"class":285,"line":480},10,[283,482,483],{"class":289},"    \u003C",[283,485,486],{"class":293},"header",[283,488,489],{"class":289},">",[283,491,493],{"class":492},"sHwdD","\u003C!-- ... -->",[283,495,445],{"class":289},[283,497,486],{"class":293},[283,499,316],{"class":289},[283,501,503],{"class":285,"line":502},11,[283,504,456],{"emptyLinePlaceholder":455},[283,506,508,510,513,516,518,520,523,525,528,531,533,535,537,539],{"class":285,"line":507},12,[283,509,483],{"class":289},[283,511,512],{"class":293},"ContentRenderer",[283,514,515],{"class":361}," v-if",[283,517,301],{"class":289},[283,519,304],{"class":289},[283,521,522],{"class":325},"page",[283,524,304],{"class":289},[283,526,527],{"class":289}," :",[283,529,530],{"class":297},"value",[283,532,301],{"class":289},[283,534,304],{"class":289},[283,536,522],{"class":325},[283,538,304],{"class":289},[283,540,541],{"class":289}," />\n",[283,543,545],{"class":285,"line":544},13,[283,546,456],{"emptyLinePlaceholder":455},[283,548,550,552,555,557,559,561,563],{"class":285,"line":549},14,[283,551,483],{"class":289},[283,553,554],{"class":293},"footer",[283,556,489],{"class":289},[283,558,493],{"class":492},[283,560,445],{"class":289},[283,562,554],{"class":293},[283,564,316],{"class":289},[283,566,568,571,573],{"class":285,"line":567},15,[283,569,570],{"class":289},"  \u003C/",[283,572,475],{"class":293},[283,574,316],{"class":289},[283,576,578,580,582],{"class":285,"line":577},16,[283,579,445],{"class":289},[283,581,464],{"class":293},[283,583,316],{"class":289},[17,585,587,588,591,592],{"id":586},"将-querycontent-转换为-querycollections","将 ",[32,589,590],{},"queryContent"," 转换为 ",[32,593,594],{},"queryCollections",[10,596,597,598,600,601,604],{},"正如我们上面提到的，",[32,599,590],{}," 已被新的基于集合的 ",[32,602,603],{},"queryCollection"," 替代。这两者之间有两个主要区别：",[606,607,608,613],"ol",{},[29,609,610,612],{},[32,611,603],{}," 正在为 SQL 数据库构建查询。",[29,614,615,617],{},[32,616,603],{}," 仅在指定的集合内搜索。您应该知道集合的名称（配置中的键）。",[273,619,623],{"className":620,"code":621,"filename":622,"language":308,"meta":279,"style":279},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","// Content v2\nconst v2Query = await queryContent(route.path).findOne()\n// Content v3 - 不要忘记在 `content.config.ts` 中创建 `content` 集合\nconst v3Query = await queryCollection('content').path(route.path).first()\n","使用路径查找内容",[32,624,625,630,658,663],{"__ignoreMap":279},[283,626,627],{"class":285,"line":286},[283,628,629],{"class":492},"// Content v2\n",[283,631,632,634,637,639,641,644,646,648,651,653,656],{"class":285,"line":319},[283,633,322],{"class":297},[283,635,636],{"class":325}," v2Query ",[283,638,301],{"class":289},[283,640,362],{"class":361},[283,642,643],{"class":331}," queryContent",[283,645,368],{"class":325},[283,647,371],{"class":289},[283,649,650],{"class":325},"path)",[283,652,371],{"class":289},[283,654,655],{"class":331},"findOne",[283,657,335],{"class":325},[283,659,660],{"class":285,"line":338},[283,661,662],{"class":492},"// Content v3 - 不要忘记在 `content.config.ts` 中创建 `content` 集合\n",[283,664,665,667,670,672,674,676,678,680,682,684,686,688,690,692,694,696,698,700],{"class":285,"line":389},[283,666,322],{"class":297},[283,668,669],{"class":325}," v3Query ",[283,671,301],{"class":289},[283,673,362],{"class":361},[283,675,395],{"class":331},[283,677,398],{"class":325},[283,679,401],{"class":289},[283,681,404],{"class":307},[283,683,401],{"class":289},[283,685,409],{"class":325},[283,687,371],{"class":289},[283,689,374],{"class":331},[283,691,368],{"class":325},[283,693,371],{"class":289},[283,695,650],{"class":325},[283,697,371],{"class":289},[283,699,429],{"class":331},[283,701,335],{"class":325},[273,703,706],{"className":620,"code":704,"filename":705,"language":308,"meta":279,"style":279},"// Content v2\nconst v2Query = await queryContent()\n  .where({ path: /^\\/hello\\/.*/ })\n  .find()\n// Content v3 - 不要忘记在 `content.config.ts` 中创建 `content` 集合\nconst v3Query = await queryCollection('content')\n  .where('path', 'LIKE', '/hello%')\n  .first()\n","使用自定义过滤器查找内容",[32,707,708,712,726,768,777,781,803,838],{"__ignoreMap":279},[283,709,710],{"class":285,"line":286},[283,711,629],{"class":492},[283,713,714,716,718,720,722,724],{"class":285,"line":319},[283,715,322],{"class":297},[283,717,636],{"class":325},[283,719,301],{"class":289},[283,721,362],{"class":361},[283,723,643],{"class":331},[283,725,335],{"class":325},[283,727,728,731,734,736,739,742,744,747,750,753,756,758,760,763,766],{"class":285,"line":338},[283,729,730],{"class":289},"  .",[283,732,733],{"class":331},"where",[283,735,398],{"class":325},[283,737,738],{"class":289},"{",[283,740,741],{"class":293}," path",[283,743,349],{"class":289},[283,745,746],{"class":289}," /",[283,748,749],{"class":361},"^",[283,751,752],{"class":325},"\\/",[283,754,755],{"class":307},"hello",[283,757,752],{"class":325},[283,759,371],{"class":307},[283,761,762],{"class":289},"*/",[283,764,765],{"class":289}," }",[283,767,439],{"class":325},[283,769,770,772,775],{"class":285,"line":389},[283,771,730],{"class":289},[283,773,774],{"class":331},"find",[283,776,335],{"class":325},[283,778,779],{"class":285,"line":434},[283,780,662],{"class":492},[283,782,783,785,787,789,791,793,795,797,799,801],{"class":285,"line":442},[283,784,322],{"class":297},[283,786,669],{"class":325},[283,788,301],{"class":289},[283,790,362],{"class":361},[283,792,395],{"class":331},[283,794,398],{"class":325},[283,796,401],{"class":289},[283,798,404],{"class":307},[283,800,401],{"class":289},[283,802,439],{"class":325},[283,804,805,807,809,811,813,815,817,819,822,825,827,829,831,834,836],{"class":285,"line":452},[283,806,730],{"class":289},[283,808,733],{"class":331},[283,810,398],{"class":325},[283,812,401],{"class":289},[283,814,374],{"class":307},[283,816,401],{"class":289},[283,818,377],{"class":289},[283,820,821],{"class":289}," '",[283,823,824],{"class":307},"LIKE",[283,826,401],{"class":289},[283,828,377],{"class":289},[283,830,821],{"class":289},[283,832,833],{"class":307},"/hello%",[283,835,401],{"class":289},[283,837,439],{"class":325},[283,839,840,842,844],{"class":285,"line":459},[283,841,730],{"class":289},[283,843,429],{"class":331},[283,845,335],{"class":325},[137,847,849],{"to":848},"/docs/collections/define",[10,850,851],{},"查看专门的部分了解更多关于集合的信息",[17,853,855,856],{"id":854},"转换-querycontentfindsurround","转换 ",[32,857,858],{},"queryContent().findSurround()",[10,860,861],{},"周围内容现在有了自己独立的 API。",[273,863,865],{"className":620,"code":864,"language":308,"meta":279,"style":279},"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 - 不要忘记在 `content.config.ts` 中创建 `content` 集合\nconst v3Surround = await queryCollectionItemSurroundings(\n  'content',\n  targetPath,\n  {\n    fields: ['title', 'description', 'navigation']\n  }\n)\n",[32,866,867,884,888,892,908,946,965,969,973,990,1002,1009,1014,1049,1054],{"__ignoreMap":279},[283,868,869,871,874,876,878,881],{"class":285,"line":286},[283,870,322],{"class":297},[283,872,873],{"class":325}," targetPath ",[283,875,301],{"class":289},[283,877,821],{"class":289},[283,879,880],{"class":307},"/docs",[283,882,883],{"class":289},"'\n",[283,885,886],{"class":285,"line":319},[283,887,456],{"emptyLinePlaceholder":455},[283,889,890],{"class":285,"line":338},[283,891,629],{"class":492},[283,893,894,896,899,901,903,905],{"class":285,"line":389},[283,895,322],{"class":297},[283,897,898],{"class":325}," v2Surround ",[283,900,301],{"class":289},[283,902,362],{"class":361},[283,904,643],{"class":331},[283,906,907],{"class":325},"(targetPath)\n",[283,909,910,912,915,918,920,923,925,927,929,932,934,936,938,941,943],{"class":285,"line":434},[283,911,730],{"class":289},[283,913,914],{"class":331},"only",[283,916,917],{"class":325},"([",[283,919,401],{"class":289},[283,921,922],{"class":307},"title",[283,924,401],{"class":289},[283,926,377],{"class":289},[283,928,821],{"class":289},[283,930,931],{"class":307},"description",[283,933,401],{"class":289},[283,935,377],{"class":289},[283,937,821],{"class":289},[283,939,940],{"class":307},"navigation",[283,942,401],{"class":289},[283,944,945],{"class":325},"])\n",[283,947,948,950,953,955,958,960,962],{"class":285,"line":442},[283,949,730],{"class":289},[283,951,952],{"class":331},"findSurround",[283,954,398],{"class":325},[283,956,957],{"class":331},"withoutTrailingSlash",[283,959,368],{"class":325},[283,961,371],{"class":289},[283,963,964],{"class":325},"path))\n",[283,966,967],{"class":285,"line":452},[283,968,456],{"emptyLinePlaceholder":455},[283,970,971],{"class":285,"line":459},[283,972,662],{"class":492},[283,974,975,977,980,982,984,987],{"class":285,"line":469},[283,976,322],{"class":297},[283,978,979],{"class":325}," v3Surround ",[283,981,301],{"class":289},[283,983,362],{"class":361},[283,985,986],{"class":331}," queryCollectionItemSurroundings",[283,988,989],{"class":325},"(\n",[283,991,992,995,997,999],{"class":285,"line":480},[283,993,994],{"class":289},"  '",[283,996,404],{"class":307},[283,998,401],{"class":289},[283,1000,1001],{"class":289},",\n",[283,1003,1004,1007],{"class":285,"line":502},[283,1005,1006],{"class":325},"  targetPath",[283,1008,1001],{"class":289},[283,1010,1011],{"class":285,"line":507},[283,1012,1013],{"class":289},"  {\n",[283,1015,1016,1019,1021,1024,1026,1028,1030,1032,1034,1036,1038,1040,1042,1044,1046],{"class":285,"line":544},[283,1017,1018],{"class":293},"    fields",[283,1020,349],{"class":289},[283,1022,1023],{"class":325}," [",[283,1025,401],{"class":289},[283,1027,922],{"class":307},[283,1029,401],{"class":289},[283,1031,377],{"class":289},[283,1033,821],{"class":289},[283,1035,931],{"class":307},[283,1037,401],{"class":289},[283,1039,377],{"class":289},[283,1041,821],{"class":289},[283,1043,940],{"class":307},[283,1045,401],{"class":289},[283,1047,1048],{"class":325},"]\n",[283,1050,1051],{"class":285,"line":549},[283,1052,1053],{"class":289},"  }\n",[283,1055,1056],{"class":285,"line":567},[283,1057,439],{"class":325},[137,1059,1060],{},[10,1061,1062],{},"查看专门的部分了解更多信息",[17,1064,1066,1067,1070,1071,1074,1075,135],{"id":1065},"合并-prosepre-prosecode-和-prosecodeinline-组件","合并 ",[32,1068,1069],{},"ProsePre",", ",[32,1072,1073],{},"ProseCode",", 和 ",[32,1076,1077],{},"ProseCodeInline",[10,1079,1080,1081,1083,1084,1086,1087,1089],{},"许多 ",[32,1082,1069],{}," 组件是 ",[32,1085,1073],{}," 组件的简单包装器。我们已将这三个组件合并为两个组件。现在 ",[32,1088,1069],{}," 和多行代码块之间没有区别。",[606,1091,1092,1104],{},[29,1093,1094,1095,1098,1099,1101,1102,70],{},"MDC 现在会将单个反引号 ",[32,1096,1097],{},"`"," 映射并解析为 ",[32,1100,1073],{}," 而不是 ",[32,1103,1077],{},[29,1105,1106,1107,1110,1111,1113],{},"MDC 现在会将以三个反引号 ",[32,1108,1109],{},"```"," 开头的块代码映射并解析为 ",[32,1112,1069],{}," 组件。",[10,1115,1116],{},[1117,1118,1119],"strong",{},"建议的更改：",[606,1121,1122,1130],{},[29,1123,1124,1125,1127,1128],{},"您当前的 ",[32,1126,1073],{}," 逻辑应移至 ",[32,1129,1069],{},[29,1131,1132,1133,1135,1136],{},"将您的 ",[32,1134,1077],{}," 组件重命名为 ",[32,1137,1073],{},[17,1139,1141,202,1143],{"id":1140},"_diryml-文件已重命名为-navigationyml",[32,1142,201],{},[32,1144,205],{},[10,1146,1147,1148,1150,1151,1153],{},"在 Content v3 中，我们将 ",[32,1149,201],{}," 重命名为 ",[32,1152,205],{},"。新名称更好地反映了这些文件的用途。\n模块使用这些文件收集有关目录的信息以生成导航。",[10,1155,1156,1157,118,1160,1163,1164,1167],{},"请注意，为了使这些文件对模块可用，您应该以包含这些文件的方式定义集合的源。例如，",[32,1158,1159],{},"source: '**'",[32,1161,1162],{},"source: '**/*.{md,yml}'"," 会将这些文件包含在集合中，但 ",[32,1165,1166],{},"source: '**/*.md'"," 不会包含它们。",[17,1169,1170],{"id":1170},"忽略点文件",[10,1172,1173,1174,244,1176,70],{},"默认情况下，Content v3 不会忽略点文件。如果您想忽略它们，可以在集合源的 ",[32,1175,243],{},[32,1177,247],{},[273,1179,1181],{"className":620,"code":1180,"language":308,"meta":279,"style":279},"defineCollection({\n  source: {\n    include: '**',\n    exclude: ['**/.*']\n  }\n})\n",[32,1182,1183,1193,1202,1218,1236,1240],{"__ignoreMap":279},[283,1184,1185,1188,1190],{"class":285,"line":286},[283,1186,1187],{"class":331},"defineCollection",[283,1189,398],{"class":325},[283,1191,1192],{"class":289},"{\n",[283,1194,1195,1198,1200],{"class":285,"line":319},[283,1196,1197],{"class":293},"  source",[283,1199,349],{"class":289},[283,1201,386],{"class":289},[283,1203,1204,1207,1209,1211,1214,1216],{"class":285,"line":338},[283,1205,1206],{"class":293},"    include",[283,1208,349],{"class":289},[283,1210,821],{"class":289},[283,1212,1213],{"class":307},"**",[283,1215,401],{"class":289},[283,1217,1001],{"class":289},[283,1219,1220,1223,1225,1227,1229,1232,1234],{"class":285,"line":389},[283,1221,1222],{"class":293},"    exclude",[283,1224,349],{"class":289},[283,1226,1023],{"class":325},[283,1228,401],{"class":289},[283,1230,1231],{"class":307},"**/.*",[283,1233,401],{"class":289},[283,1235,1048],{"class":325},[283,1237,1238],{"class":285,"line":434},[283,1239,1053],{"class":289},[283,1241,1242,1244],{"class":285,"line":442},[283,1243,355],{"class":289},[283,1245,439],{"class":325},[10,1247,1248,1249,1251,1252,1254,1255,1258,1259,70],{},"请注意，上述模式也会将 ",[32,1250,205],{}," 文件从集合中排除。如果您使用 ",[32,1253,205],{}," 并想保留它们，您可以使用 ",[32,1256,1257],{},"**/.(!(navigation.yml))"," 模式排除所有点文件，除了 ",[32,1260,205],{},[273,1262,1264],{"className":620,"code":1263,"language":308,"meta":279,"style":279},"defineCollection({\n  source: {\n    include: '**',\n    exclude: ['**/.!(navigation.yml)']\n  }\n})\n",[32,1265,1266,1274,1282,1296,1313,1317],{"__ignoreMap":279},[283,1267,1268,1270,1272],{"class":285,"line":286},[283,1269,1187],{"class":331},[283,1271,398],{"class":325},[283,1273,1192],{"class":289},[283,1275,1276,1278,1280],{"class":285,"line":319},[283,1277,1197],{"class":293},[283,1279,349],{"class":289},[283,1281,386],{"class":289},[283,1283,1284,1286,1288,1290,1292,1294],{"class":285,"line":338},[283,1285,1206],{"class":293},[283,1287,349],{"class":289},[283,1289,821],{"class":289},[283,1291,1213],{"class":307},[283,1293,401],{"class":289},[283,1295,1001],{"class":289},[283,1297,1298,1300,1302,1304,1306,1309,1311],{"class":285,"line":389},[283,1299,1222],{"class":293},[283,1301,349],{"class":289},[283,1303,1023],{"class":325},[283,1305,401],{"class":289},[283,1307,1308],{"class":307},"**/.!(navigation.yml)",[283,1310,401],{"class":289},[283,1312,1048],{"class":325},[283,1314,1315],{"class":285,"line":434},[283,1316,1053],{"class":289},[283,1318,1319,1321],{"class":285,"line":442},[283,1320,355],{"class":289},[283,1322,439],{"class":325},[1324,1325,1326],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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 .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 .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);}",{"title":279,"searchDepth":319,"depth":319,"links":1328},[1329,1335,1336,1338,1340,1342,1344],{"id":19,"depth":319,"text":19,"children":1330},[1331,1332,1333,1334],{"id":23,"depth":338,"text":24},{"id":98,"depth":338,"text":98},{"id":180,"depth":338,"text":180},{"id":194,"depth":338,"text":194},{"id":267,"depth":319,"text":268},{"id":586,"depth":319,"text":1337},"将 queryContent 转换为 queryCollections",{"id":854,"depth":319,"text":1339},"转换 queryContent().findSurround()",{"id":1065,"depth":319,"text":1341},"合并 ProsePre, ProseCode, 和 ProseCodeInline 组件",{"id":1140,"depth":319,"text":1343},"_dir.yml 文件已重命名为 .navigation.yml",{"id":1170,"depth":319,"text":1170},"入门指南","如何从 v2 迁移到 v3","md",null,{},{"title":1351,"icon":1352},"迁移","i-lucide-arrow-right","/docs/introduction/migration",{"title":5,"description":1346},"docs/introduction/10.migration","_DQjFZKy4wwwlRV7iCsgRbgdI__Nh5-hBbOtz6X6U-8",[1358,1363],{"title":1359,"path":1360,"stem":1361,"icon":1362,"children":-1},"介绍","/docs/introduction/start","docs/introduction/1.start","i-lucide-info",{"title":1364,"path":1365,"stem":1366,"icon":1367,"children":-1},"手动安装","/docs/introduction/manual-installation","docs/introduction/11.manual-installation","i-lucide-terminal",[1369,1376,1381,1387,1391,1397,1403,1409,1412,1414,1416,1421],{"title":1370,"path":1371,"category":1372,"order":1348,"navigation":1373},"定义内容集合","/docs/framework/define","进阶教程",{"title":1374,"icon":1375},"定义","i-lucide-file-text",{"title":1377,"path":1378,"category":1372,"order":1348,"navigation":1379},"前置准备","/docs/framework/prerequisites",{"title":1377,"icon":1380},"i-lucide-database",{"title":1382,"path":1383,"category":1372,"order":1348,"navigation":1384},"集合源","/docs/framework/sources",{"title":1385,"icon":1386},"源","i-lucide-upload",{"title":1388,"path":1389,"category":1372,"order":1348,"navigation":1390},"集合类型","/docs/framework/types",{"title":180,"icon":1375},{"title":1392,"path":1393,"category":1372,"order":1348,"navigation":1394},"模式验证器","/docs/framework/validators",{"title":1395,"icon":1396},"验证器","i-lucide-check-circle",{"title":1398,"path":1399,"category":1345,"order":1348,"navigation":1400},"宝塔面板部署","/docs/introduction/bt",{"title":1401,"icon":1402},"宝塔部署","i-lucide-server",{"title":1404,"path":1405,"category":1345,"order":1348,"navigation":1406},"开源与商业化","/docs/introduction/configuration",{"title":1407,"icon":1408},"商业化","i-lucide-dollar-sign",{"title":1410,"path":1360,"category":1345,"order":1348,"navigation":1411},"智言AI介绍",{"title":1359,"icon":1362},{"title":5,"path":1353,"category":1345,"order":1348,"navigation":1413},{"title":1351,"icon":1352},{"title":1364,"path":1365,"category":1345,"order":1348,"navigation":1415},{"title":1364,"icon":1367},{"title":1417,"path":1418,"category":1345,"order":1348,"navigation":1419},"Docker安装","/docs/introduction/docker-installation",{"title":1417,"icon":1420},"i-lucide-box",{"title":1422,"path":1423,"category":1345,"order":1348,"navigation":1424},"演示环境","/docs/introduction/demo",{"title":1422,"icon":1425},"i-lucide-download",1775201091547]