Skip to content

通用文章模板 ​

没有特殊结构要求时,从这张模板开始最安全。它提供一套完整的文章 frontmatter、常见的五段式正文结构和发布前检查,适合技术说明、经验总结、方法记录和一般性分享。

用途 ​

  • 写一篇普通的说明文章、经验总结、工具使用心得或知识整理。
  • 希望文章正常进入首页、侧边栏、归档、分类、标签和站内搜索。
  • 希望正文结构清楚,但不需要教程、复盘、题解或建站记录那样的专用章节。
  • 作为其他模板的基础:先确保 frontmatter 正确,再按内容需要替换正文结构。

放在哪里 ​

文章必须放在 docs/posts/ 下的一级分类目录中;也可以放在该分类下的二级目录中。不要在文章目录创建 index.md。

场景目标文件categoriespermalink公开地址
一级分类下docs/posts/技术笔记/10.example-article.md[技术笔记]/posts/技术笔记/example-articlehttps://www.baecon.cn/posts/技术笔记/example-article
二级目录下docs/posts/技术笔记/项目记录/20.vitepress-deploy-guide.md[技术笔记]/posts/技术笔记/项目记录/vitepress-deploy-guidehttps://www.baecon.cn/posts/技术笔记/项目记录/vitepress-deploy-guide

公式:

text
文件:docs/posts/<一级分类>/[<子目录>/]<slug>.md
permalink:/posts/<一级分类>/[<子目录>/]<slug>
公开地址:https://www.baecon.cn/posts/<一级分类>/[<子目录>/]<slug>

文件名前的数字前缀用于默认排序,不会自动出现在显式 permalink 中。二级目录属于 URL 路径,不是第二个分类。

什么时候使用 ​

  • 你不确定该用哪个模板,而内容确实是一篇普通文章。
  • 文章以解释、总结、对比、经验或观点为主。
  • 文章结构可以自由组织,不需要强制给出环境版本、正确性证明或回滚步骤。
  • 你想先得到一份安全、完整、可发布的 frontmatter,再专注写正文。

什么时候不要使用 ​

  • 内容是可复现的操作教程:使用 技术教程模板。
  • 内容是项目结束后的系统复盘:使用 项目复盘模板。
  • 内容是个人生活经历或感受:使用 生活随笔模板。
  • 内容是一道算法题:使用 算法题解模板。
  • 内容是域名、部署、CDN、评论或博客配置变更:使用 建站记录模板。
  • 你要创建分类目录入口:使用 目录页模板,不要把目录页写成文章。
  • 不要复制本说明页自身的 frontmatter。要复制的是下面代码块里的完整文章文件。

完整可复制文件 ​

复制下面围栏中的全部内容,粘贴到 docs/posts/... 下新建的 .md 文件,再逐项替换占位值。

markdown
---
title: 通用文章标题
description: 说明这篇文章要解决的问题、适合哪些读者,以及读完后能获得什么结论;同时交代文章边界、验证方法和注意事项,并控制在 50 至 150 个中文字符之间。
permalink: /posts/技术笔记/example-article
categories:
  - 技术笔记
tags:
  - 示例标签
  - 写作模板
article: true
sidebar: true
pagefind-indexed: true
comment: true
---

# 通用文章标题

先用一两句话说明读者为什么会打开这篇文章,以及文章大致会讲什么。这一段不是 frontmatter 字段,可以删除或改写。

## 背景

说明问题出现的场景、已有做法和困难。让没有上下文的读者也能理解:为什么现在值得讨论这个问题。

例如:

> 在把博客文章从手工列表改为自动目录后,新文章能自动进入侧边栏,但旧文章的链接开始出现不一致。

## 目标

写清这篇文章要达成什么,以及不打算覆盖什么。

- 目标一:让读者理解核心问题。
- 目标二:给出可执行的做法或判断标准。
- 边界:本文不讨论与本主题无关的部署细节。

## 正文

按逻辑拆分小节。每一节只解决一个问题;标题要具体,不要连续使用很多没有信息量的「其他」「补充」。

### 核心概念

解释必要的术语、前提和约束。第一次出现的缩写要展开说明。

### 具体做法

给出步骤、示例或对比。涉及代码时标注语言,涉及图片时写清 alt。

```text
这里可以放命令、配置、输出或简短代码示例。
```

![正文图片说明:展示配置完成后的页面效果](/images/posts/example-article/image-01.webp)

> 图片提示:必须替换成真实存在的图片,alt 不能为空。没有图片时删除整行,不要留下不存在的路径。

## 验证与注意事项

说明如何判断文章中的做法有效,以及哪些情况容易出错。

| 检查项 | 预期结果 |
|---|---|
| 页面能正常打开 | 没有 404 或构建报错 |
| 相关链接可点击 | 不跳转到错误页面 |
| 代码或步骤可复现 | 结果与文章描述一致 |

注意事项:

- 不要把密钥、Token、密码或私密链接写进正文。
- 不要复制其他文章中的日期和永久链接而不修改。
- 如果内容已经过时,应更新正文或明确标注适用版本。

## 总结

用几句话回收文章目标,给出最重要的结论、适用边界或下一步行动。不要把正文原样重复一遍。

复制后必须修改或确认 ​

值位置应该怎么改为什么必须确认
title 和正文 H1frontmatter 与 # 通用文章标题两处改成完全相同的真实标题页面只能有一个 H1;标题不一致会影响目录、搜索和阅读体验。
descriptionfrontmatter换成真实摘要,建议 50–150 个中文字符省略时 SEO 会回退到站点描述,首页卡片摘要也不可控。
datefrontmatter通常不要手填;文件首次 Git commit 后启动/构建会自动写入自动写入后不要为了「更新」而改它;更新信息用 updated。
permalinkfrontmatter改成全站唯一的 /posts/一级分类/.../slug决定公开 URL;不要依赖自动生成,必须显式写稳定地址。
categoriesfrontmatter改成文章所在的一级分类,只写一个二级目录不是分类;显式填写比目录推断更稳定。
tagsfrontmatter换成 2–5 个与主题直接相关的标签标签用于聚合和搜索;示例标签不能发布。
coverImgfrontmatter通常删除以使用正文图片/随机背景;只在需要固定卡片或分享图时写真实路径显式写后会固定,不再随机;路径必须存在。
articlefrontmatter保持 true明确声明这是文章,确保首页和归档等能力正常。
sidebarfrontmatter保持 true正常文章需要左侧文章导航。
pagefind-indexedfrontmatter保持 true让文章进入站内搜索;它不是隐私开关。
commentfrontmatter保持 true普通文章显示评论区;不希望公开讨论时才改为 false。
正文图片body换成真实图片路径,保留有意义的 alt;没有图就删除图片行图片路径约定为 /images/posts/<slug>/<file>.webp,alt 必填。

可选字段 ​

这些字段没有写进基础模板,只在确有需要时添加。

字段什么时候用推荐值注意
top想让文章进入首页「精选文章」1它是真值筛选标记,不是排名;数字大小不负责排序。首页精选还有数量上限。
sticky想让文章在按置顶排序的列表中靠前1 或较小的数字必须是数字,不能用 true;数字越小越靠前。
titleTag想在标题旁显示「原创」「教程」「复盘」「题解」「记录」等短标识2–4 个汉字它只是视觉标签,不替代分类或 tags。
sidebarSort文件名前缀不足以表达侧边栏顺序10、20、30数字越小越靠前;优先用文件名前缀,避免两套排序规则。
inHomePost想从首页主文章列表隐藏一篇特殊文章省略或 true;特殊时 false会影响首页及分类/标签的 HomePost 列表,不会让文章变成私有页面。
updated确实需要用一个新的修改日期覆盖 SEO 信息YYYY-MM-DD HH:mm:ss通常省略;它不能代替 date。
author多人署名且站点级作者不适用不写;如确需覆盖,用对象 { name, link }本站使用站点级作者,普通文章不要覆盖。

文章 frontmatter 字段总表 ​

字段类型省略时默认推荐值级别完整说明
titlestring无可用默认;不要依赖自动推导与正文唯一 H1 完全一致必填页面标题,也是首页卡片、侧边栏、搜索结果和浏览器标题的来源。复制模板后必须改成真实标题,并保证正文只有一个 H1。
descriptionstringSEO 会回退到站点描述;首页摘要质量不可控50–150 个中文字符,说明问题、内容与读者收益推荐供 SEO 描述、首页卡片摘要和分享信息使用。应写成完整的一句话或两句话,不要堆关键词,也不要直接复制标题。
descstring未设置省略可选(旧字段)旧目录页的兼容显示字段,主要给 catalogue 页面使用;它不是 SEO 主字段,也不参与首页摘要。新文章不要写;目录页如保留 desc,需与 description 同值。
datestring文件首次 Git commit 的作者时间;已有值保留通常省略,不手填;需要人工指定发布时间时才覆盖自动维护;通常不手填文章的创建/发布时间,用于展示、首页排序、归档和 SEO 的 datePublished。新文章不需要写;首次 commit 后启动/构建会写入并保持稳定。
updatedstring未显式设置;SEO 修改时间由构建或最后更新时间兜底正常省略;确实需要覆盖时再用同一日期格式可选只用于覆盖 SEO 的 dateModified,不是文章发布时间,也不能代替 date。除非有明确的更新日期要展示给搜索引擎,否则不要填。
permalinkstring自动插件通常跳过已有 frontmatter,不能依赖自动生成全站唯一:/posts/<一级分类>/[<子目录>/]<slug>必填决定文章的公开 URL。本项目要求显式填写,不能包含 .md,不能以 docs/ 开头,也不能与其他页面重复。
categoriesstring[]自动插件通常跳过;缺省时没有可靠分类显式写一级分类,如 [技术笔记]推荐分类归档和分类卡片使用。只写一级分类;二级目录属于路径,不是第二个分类。一篇文章通常只写一个一级分类。
tagsstring[][]2–5 个具体标签,如 [VitePress, 部署]推荐标签用于聚合主题和搜索。标签应短而具体,避免把整句话、分类名或大量近义词都写成标签。
coverImgstring 或 string[]首页卡片:正文图片随机 → /home/bg*.webp 随机;SEO 分享图回退站点默认需要固定封面/分享图时才写真实路径;否则省略可选(按需)首页卡片优先使用;文章 Banner、OG 和分享图也会读取。显式写后不再随机;路径必须真实存在;不写时分享图不会自动取正文图。
articleboolean在 /posts/ 下省略时按 true 处理true推荐明确声明这是文章,让首页、归档、分类和标签等文章能力正常工作。教程、复盘、随笔、题解和建站记录都应显式写 true。
sidebarbooleanVitePress 默认为 truetrue推荐控制文章页是否显示左侧文章导航。本站文章应保持 true;只有特殊全宽页面才考虑关闭。
sidebarSortnumber使用文件名数字前缀;没有前缀时按 9999省略;确需覆盖时用 10、20 这类数字可选覆盖该文章在侧边栏中的排序,数字越小越靠前。优先用文件名前缀排序;同时使用两种方式会增加理解和维护成本。
pagefind-indexedbooleantruetrue推荐控制 Pagefind 是否索引此页。文章应保持 true;设为 false 只是不进入站内搜索,并不会把页面变成私有页面。
commentboolean未写 false 时按开启处理true推荐控制文章评论区。普通文章保持 true;目录页、纯功能页或含敏感信息的页面应关闭或不要发布。
topboolean 或 number未设置,即不进入精选省略;只有需要首页精选时写 1可选首页「精选文章」的真值筛选标记,不是排名:写 1 表示入选,数字大小本身不会排序。是否显示还受首页精选数量上限影响。
stickynumber未设置,即不置顶省略;确需置顶时用较小数字,如 1可选置顶排序字段,数字越小越靠前。它和 top 分工不同:top 负责进入精选卡片,sticky 负责置顶排序。不要用 true 代替数字。
inHomePostbooleantrue省略或显式 true;只有特殊文章才写 false可选设为 false 时会从首页、分类页和标签页等 HomePost 列表隐藏;文章的 URL、侧边栏、归档、精选和搜索等不会自动变成私有。不要把它当作隐私开关。
inCataloguebooleantrue通常省略;不想让文章出现在目录页时写 false高级目录插件扫描开关;不影响侧栏、Pagefind、首页、归档或 RSS。
titleTagstring无标签省略;需要短标识时用 原创、教程、复盘、题解、记录可选标题旁的小标签,只用于视觉提示,不替代分类或标签。保持 2–4 个汉字最清晰,不要塞入长句。
authorobject使用站点级作者 Baecon省略,不在单篇文章覆盖可选(不建议)若覆盖需用 { name: string, link?: string } 对象;普通文章不要填写。

高级 VitePress 字段 ​

以下字段属于 VitePress 或主题的页面布局能力,不是文章写作字段。初学者不要为了让页面看起来不同而逐篇修改;需要调整时应优先修改全站配置。

字段类型省略时默认推荐值级别完整说明
layoutstring 或 false使用 VitePress 标准文章布局省略高级切换页面布局。文章模板不需要设置;目录页才固定使用 layout: page。初学者不要为了外观而改它。
outlinefalse、数字、[number, number] 或 "deep"由 VitePress 与主题的默认大纲配置决定省略高级控制右侧标题大纲。普通文章沿用站点统一配置即可,除非全站规范明确要求,否则不要逐篇覆盖。
asideboolean 或 "left"默认跟随 VitePress 文章布局省略高级控制右侧辅助栏。与全站布局相关,不应由每篇文章随意切换。
lastUpdatedboolean跟随站点 lastUpdated: true省略高级控制页面是否显示最后更新时间。本站已统一开启,不需要在每篇文章重复设置。
editLinkboolean跟随站点主题配置省略高级控制是否显示编辑链接。它属于站点能力,不是文章内容字段。
pageClassstring空省略高级给页面根元素追加 CSS 类,只在有配套样式时使用。随意填写不会产生视觉效果。
layoutClassstring空省略高级当前项目会把它作为布局组件 class 读取,但只有配套 CSS 才有意义;普通写作不需要填写。
headarray[]省略高级为单个页面追加 <head> 标签。站点已统一生成 SEO 和分享标签,重复配置容易冲突。
titleTemplatestring 或 false使用站点标题模板省略高级覆盖浏览器标题拼接方式。除非页面有特殊 SEO 要求,否则不要覆盖全站一致性。
autoTitlebooleandoc 布局默认允许自动注入 H1省略;正文已手写 H1高级设为 false 可禁止自动 H1 注入。
articleUpdateboolean 或 object跟随站点配置,默认启用省略高级设为 false 隐藏文章页最近更新模块。
articleBannerboolean 或 object跟随站点配置;本站开启省略高级设为 false 关闭单文章 Banner;通常仅无侧栏 doc 文章生效。
coverBgColorstring跟随站点 defaultCoverBgColor,本站为空省略高级单文章 Banner 背景色覆盖;无 Banner 时不可见。
prevbooleantrue(有上一页时)省略高级设为 false 隐藏上一页链接。
nextbooleantrue(有下一页时)省略高级设为 false 隐藏下一页链接。

catalogue、path、pageTitle 是目录页专用字段,文章模板不要填写。若需要创建分类或子目录入口,请使用 目录页模板。

推荐正文结构 ​

章节写什么示例
## 背景问题出现的场景、已有做法和困难说明为什么旧流程不够用。
## 目标文章要达成的结果、读者收益和边界用 2–3 条列表写清覆盖范围。
## 正文核心解释、步骤、示例、对比或实现拆成若干具体的 H3 小节,而不是一段到底。
## 验证与注意事项如何验证、常见错误、限制和安全提醒用表格列出检查项和预期结果。
## 总结回收目标,给出结论、边界和下一步只写关键结论,不重复全文。

以上二级标题只是推荐结构,不是系统强制字段。系统读取的是 frontmatter;正文标题可以按内容增删或改名。唯一必须遵守的是:页面保持一个 H1,并且 H1 与 title 一致。

正文写作提醒 ​

  • 文章开头先交代问题和读者收益,不要默认读者知道背景。
  • 每个二级标题解决一个相对独立的问题;标题要能单独看懂。
  • 每张图片都写有意义的 alt,例如「配置完成后的首页卡片截图」,不要写「图片」。
  • 代码块标注语言,例如 bash、ts、json;命令与输出分开展示,避免读者误复制提示符。
  • 引用外部资料时给出来源;不要复制大段未授权内容。
  • 涉及账号、服务器、家庭、公司或他人的信息时先脱敏;frontmatter 没有隐私保护能力。

发布前检查 ​

  • 文件在 docs/posts/ 下,不在 docs/catalog/,且文章目录没有 index.md。
  • frontmatter 由成对的 --- 包裹,YAML 可正常解析。
  • title 已替换,正文只有一个 H1,且与 title 完全一致。
  • description 是真实的 50–150 字摘要。
  • 没有手写 date;文件首次 commit 后启动/构建已自动写入,且后续保持稳定。
  • permalink 全站唯一,以 /posts/ 开头,并且与文件路径和分类一致。
  • categories 只写一级分类,没有把二级目录写进分类。
  • tags 有 2–5 个具体标签,没有保留「示例标签」。
  • 如果写了 coverImg,它指向真实存在的图片;如果省略,首页卡片随机封面和分享图回退行为符合预期。
  • article: true、sidebar: true、pagefind-indexed: true、comment: true 均保留。
  • 正文中的命令、链接、图片和表格都经过实际检查。
  • 没有 Token、密码、私密地址、他人隐私或未授权截图。
  • 本地 /posts/... 能打开,侧边栏、搜索、首页卡片和分类标签均正常。
  • pnpm docs:build 通过;Markdown 语法正确,链接和图片已人工检查(构建不校验失效链接)。

最后更新于: