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