Skip to content

写文章

komorebi 使用 Astro 的内容集合管理博客文章和特殊页面。

创建文章

src/content/blog/ 目录下创建 .md 文件。文件名即为文章的 URL slug。

例如,创建 src/content/blog/my-first-post.md,文章将可通过 /blog/my-first-post 访问。

小技巧

如果需要在文章中带上图片,可以创建一个表示文章的目录,并在下面把文章和图片放在一起。

例如:

项目目录/src/content/blog/
└── hello-world/
    ├── index.md              # Markdown 主体
    └── image.png             # 文章中的图片

这样放置图片方便文章引用,除非有不止一篇文章需要使用这张图片。此外,这也有利于 Astro 提供图片优化

文章 Frontmatter

每篇文章必须包含以下 frontmatter 字段:

yaml
---
title: 文章标题
description: 文章的简短描述
pubDate: 2026-03-30
---

字段说明

字段类型必填默认值说明
titlestringN / A文章标题,显示在文章详情页顶部和列表中
descriptionstringN / A文章描述,用于 SEO <meta> 标签和列表预览
pubDatedateN / A发布日期,格式为 YYYY-MM-DD
updatedDatedateundefined最后更新日期,设置后会在文章头部显示「更新于」
draftbooleantrue草稿标记

草稿机制

注意

draft 的默认值为 true。这意味着如果你不显式设置 draft: false,文章不会出现在博客列表和归档页面中。

只有明确标记为 draft: false 的文章才会被发布。这是一个有意的设计——当你创建新文章时,它默认是不可见的,直到你准备好发布——防止不小心泄露。

完整示例

yaml
---
title: 使用 Astro 构建静态博客
description: 从零开始,一步步搭建一个基于 Astro 的静态博客站点。
pubDate: 2026-04-01
updatedDate: 2026-04-15
draft: false
---

文章正文使用标准 Markdown 语法书写。

小技巧

不符合标准的 Markdown 可能不会以你期望的方式呈现!因为错误恢复的策略是未定义的。推荐使用 markdownlint 对 Markdown 代码进行检查。若你使用 VS Code,可以在扩展商店中获取。

特殊页面

特殊页面目前包括「关于」页面。

创建关于页面

创建 src/content/about.md

yaml
---
title: 关于我
description: 简单介绍一下自己
pubDate: 2026-03-30
---

这是关于页面的内容。

特殊页面 Frontmatter

字段类型必填说明
titlestring页面标题
descriptionstring页面描述
pubDatedate发布日期
updatedDatedate最后更新日期

特殊页面没有 draft 字段——只要文件存在,页面就会显示。

日期格式

frontmatter 中的日期使用 YYYY-MM-DD 格式:

yaml
pubDate: 2026-03-30

也可以使用 ISO 8601 完整时间戳格式:

yaml
pubDate: 2026-03-30T12:00:00Z

但通常只需要年月日即可。

文章内容

文章正文使用标准 Markdown 语法书写。主题内置了 Shiki 代码高亮,主题为 github-light

代码块

md
```ts
export function greet(name: string): string {
  return `Hello, ${name}!`;
}
```