[{"data":1,"prerenderedAt":409},["ShallowReactive",2],{"tag-Content":3},[4],{"id":5,"title":6,"body":7,"date":396,"description":397,"draft":398,"extension":399,"meta":400,"navigation":58,"path":401,"seo":402,"stem":403,"summary":404,"tags":405,"__hash__":408},"posts\u002Fposts\u002Fnuxt-content-frontmatter.md","@nuxt\u002Fcontent 的 frontmatter 怎么写",{"type":8,"value":9,"toc":390},"minimark",[10,19,24,187,191,255,258,342,357,360,386],[11,12,13,14,18],"p",{},"文章元数据分两层：",[15,16,17],"code",{},"content.config.ts"," 定义 schema，Markdown 的文件头填值。",[20,21,23],"h2",{"id":22},"定义-collection","定义 collection",[25,26,31],"pre",{"className":27,"code":28,"language":29,"meta":30,"style":30},"language-ts shiki shiki-themes github-light github-dark","import { defineCollection, defineContentConfig, z } from '@nuxt\u002Fcontent'\n\nexport default defineContentConfig({\n  collections: {\n    posts: defineCollection({\n      type: 'page',\n      source: 'posts\u002F*.md',\n      schema: z.object({\n        date: z.date(),\n        tags: z.array(z.string()).default([]),\n      }),\n    }),\n  },\n})\n","ts","",[15,32,33,53,60,76,82,93,105,116,127,139,163,169,175,181],{"__ignoreMap":30},[34,35,38,42,46,49],"span",{"class":36,"line":37},"line",1,[34,39,41],{"class":40},"szBVR","import",[34,43,45],{"class":44},"sVt8B"," { defineCollection, defineContentConfig, z } ",[34,47,48],{"class":40},"from",[34,50,52],{"class":51},"sZZnC"," '@nuxt\u002Fcontent'\n",[34,54,56],{"class":36,"line":55},2,[34,57,59],{"emptyLinePlaceholder":58},true,"\n",[34,61,63,66,69,73],{"class":36,"line":62},3,[34,64,65],{"class":40},"export",[34,67,68],{"class":40}," default",[34,70,72],{"class":71},"sScJk"," defineContentConfig",[34,74,75],{"class":44},"({\n",[34,77,79],{"class":36,"line":78},4,[34,80,81],{"class":44},"  collections: {\n",[34,83,85,88,91],{"class":36,"line":84},5,[34,86,87],{"class":44},"    posts: ",[34,89,90],{"class":71},"defineCollection",[34,92,75],{"class":44},[34,94,96,99,102],{"class":36,"line":95},6,[34,97,98],{"class":44},"      type: ",[34,100,101],{"class":51},"'page'",[34,103,104],{"class":44},",\n",[34,106,108,111,114],{"class":36,"line":107},7,[34,109,110],{"class":44},"      source: ",[34,112,113],{"class":51},"'posts\u002F*.md'",[34,115,104],{"class":44},[34,117,119,122,125],{"class":36,"line":118},8,[34,120,121],{"class":44},"      schema: z.",[34,123,124],{"class":71},"object",[34,126,75],{"class":44},[34,128,130,133,136],{"class":36,"line":129},9,[34,131,132],{"class":44},"        date: z.",[34,134,135],{"class":71},"date",[34,137,138],{"class":44},"(),\n",[34,140,142,145,148,151,154,157,160],{"class":36,"line":141},10,[34,143,144],{"class":44},"        tags: z.",[34,146,147],{"class":71},"array",[34,149,150],{"class":44},"(z.",[34,152,153],{"class":71},"string",[34,155,156],{"class":44},"()).",[34,158,159],{"class":71},"default",[34,161,162],{"class":44},"([]),\n",[34,164,166],{"class":36,"line":165},11,[34,167,168],{"class":44},"      }),\n",[34,170,172],{"class":36,"line":171},12,[34,173,174],{"class":44},"    }),\n",[34,176,178],{"class":36,"line":177},13,[34,179,180],{"class":44},"  },\n",[34,182,184],{"class":36,"line":183},14,[34,185,186],{"class":44},"})\n",[20,188,190],{"id":189},"写-frontmatter","写 frontmatter",[25,192,196],{"className":193,"code":194,"language":195,"meta":30,"style":30},"language-yaml shiki shiki-themes github-light github-dark","---\ntitle: 文章标题\ndescription: 列表页与搜索引擎用的摘要\ndate: 2026-09-25\ntags:\n  - Nuxt\n---\n","yaml",[15,197,198,203,215,225,235,243,251],{"__ignoreMap":30},[34,199,200],{"class":36,"line":37},[34,201,202],{"class":71},"---\n",[34,204,205,209,212],{"class":36,"line":55},[34,206,208],{"class":207},"s9eBZ","title",[34,210,211],{"class":44},": ",[34,213,214],{"class":51},"文章标题\n",[34,216,217,220,222],{"class":36,"line":62},[34,218,219],{"class":207},"description",[34,221,211],{"class":44},[34,223,224],{"class":51},"列表页与搜索引擎用的摘要\n",[34,226,227,229,231],{"class":36,"line":78},[34,228,135],{"class":207},[34,230,211],{"class":44},[34,232,234],{"class":233},"sj4cs","2026-09-25\n",[34,236,237,240],{"class":36,"line":84},[34,238,239],{"class":207},"tags",[34,241,242],{"class":44},":\n",[34,244,245,248],{"class":36,"line":95},[34,246,247],{"class":44},"  - ",[34,249,250],{"class":51},"Nuxt\n",[34,252,253],{"class":36,"line":107},[34,254,202],{"class":71},[20,256,257],{"id":257},"在页面里查询",[25,259,261],{"className":27,"code":260,"language":29,"meta":30,"style":30},"const { data: posts } = await useAsyncData('posts', () =>\n  queryCollection('posts').order('date', 'DESC').all(),\n)\n",[15,262,263,304,337],{"__ignoreMap":30},[34,264,265,268,271,275,277,280,283,286,289,292,295,298,301],{"class":36,"line":37},[34,266,267],{"class":40},"const",[34,269,270],{"class":44}," { ",[34,272,274],{"class":273},"s4XuR","data",[34,276,211],{"class":44},[34,278,279],{"class":233},"posts",[34,281,282],{"class":44}," } ",[34,284,285],{"class":40},"=",[34,287,288],{"class":40}," await",[34,290,291],{"class":71}," useAsyncData",[34,293,294],{"class":44},"(",[34,296,297],{"class":51},"'posts'",[34,299,300],{"class":44},", () ",[34,302,303],{"class":40},"=>\n",[34,305,306,309,311,313,316,319,321,324,327,330,332,335],{"class":36,"line":55},[34,307,308],{"class":71},"  queryCollection",[34,310,294],{"class":44},[34,312,297],{"class":51},[34,314,315],{"class":44},").",[34,317,318],{"class":71},"order",[34,320,294],{"class":44},[34,322,323],{"class":51},"'date'",[34,325,326],{"class":44},", ",[34,328,329],{"class":51},"'DESC'",[34,331,315],{"class":44},[34,333,334],{"class":71},"all",[34,336,138],{"class":44},[34,338,339],{"class":36,"line":62},[34,340,341],{"class":44},")\n",[11,343,344,345,348,349,352,353,356],{},"单篇用 ",[15,346,347],{},".path(route.path).first()","，分页用 ",[15,350,351],{},".skip(n).limit(m)"," 配合 ",[15,354,355],{},".count()","。",[20,358,359],{"id":359},"常见坑",[361,362,363,373,383],"ol",{},[364,365,366,368,369,372],"li",{},[15,367,135],{}," 用 ",[15,370,371],{},"z.date()"," 才能正确排序，写字符串会按字典序比。",[364,374,375,376,379,380,356],{},"文件名决定 URL：",[15,377,378],{},"content\u002Fposts\u002Fhello.md"," 对应 ",[15,381,382],{},"\u002Fposts\u002Fhello",[364,384,385],{},"定好 schema 后，frontmatter 里多写字段不会报错，少写必填字段会在构建时失败。",[387,388,389],"style",{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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 .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":30,"searchDepth":62,"depth":62,"links":391},[392,393,394,395],{"id":22,"depth":55,"text":23},{"id":189,"depth":55,"text":190},{"id":257,"depth":55,"text":257},{"id":359,"depth":55,"text":359},"2026-09-25","content.config.ts 里定义 collection 与 schema，Markdown 里填 frontmatter，页面里用 queryCollection 查询。",false,"md",{},"\u002Fposts\u002Fnuxt-content-frontmatter",{"title":6,"description":397},"posts\u002Fnuxt-content-frontmatter","一份可直接照抄的 frontmatter 与查询写法。",[406,407],"Nuxt","Content","NzDcuZ_q0u7EWO3-OX3yo65qzbHvtn5goFCc7S0Sjso",1792556024905]