主题介绍
我的博客主题是基于 Astro 自己 DIY 的, 暂时还没有名字. 本文会介绍该主题的功能特性!
Front Matter
Markdown 文件有两个主要部分:front matter 和内容. Front matter 一般是是 yaml 格式的, 记录了文章的一些元信息, 如发布时间, 文章的标题和标签等.
在我使用了很多别人的主题之后, 我对其有了自己的一些认识: 很多信息是冗余的.
例如文章标题, 完全可以用文件名来做为默认值, 当修改了文件名, 文章的标题也会发生更新. 这个主题的特点是, 每个字段都有自动推断缺失值的能力, 这意味着你完全可以不用写 front matter! 不过我还是建议填写一些必要的字段, 以便于后期切换其他主题.
下面是一个完整的 front matter, 可以看到其中的 date
, ctime
, pubDate
都是相同的含义, 这是为了兼容从其他框架 (如hexo) 迁移过来的文档, 实际使用时只要选一个自己习惯的用法即可:
---
title: 文章的标题
description: 文章的描述
tags: [标签1, 标签2, 标签3]
date: 2024-07-22 15:36:38
ctime: 2024-07-22 15:36:38
mtime: 2024-07-23 00:00:00
pubDate: 2024-07-22 15:36:38
updatedDate: 2024-07-23 00:00:00
heroImage: ./images/cover.jpg
cover: ./images/cover.jpg
draft: false
---
参数解释
title
type: string
文章标题,会显示在主页的文章列表中。
缺省时按以下规则顺延推断:
- Markdown 内的一级标题
- Markdown 文件名(不包含文件拓展名
.md
)
description
type: string
文章描述,会显示在文章详情页的文章内容中。
缺省时按以下规则顺延推断:
- Markdown 内
<!-- more -->
之前的所有文本内容 - Markdown 内的第一个段落
tags
type: string[]
文章标签,常用于标记文章的所属领域或类别.
缺省时会把文档的路径解析为 Tags. 例如 /os/linux/Linux指令介绍.md
, 会被解析为tags: [os, linux]
date、ctime、pubDate
type: string
都表示文章发布时间,一般格式为 YYYY-MM-DD HH:mm:ss
之所以用三个属性来表示文章的发布时间,是为了兼容 hexo
和其他主题
缺省时会使用该文章在 git log 中记录的第一次提交时间.
mtime、updatedDate
type: string
都表示文章更新时间,一般格式为 YYYY-MM-DD HH:mm:ss
使用两个字段,同样是为了兼容 hexo
和其他主题
缺省时使用该文章在 git log 中记录的最后一次提交时间
heroImage、cover
type: string
文章的封面图,会显示在首页的文章列表中. 省略时这篇文章就没有封面了.
draft
type: boolean
是否为草稿. 标记为草稿的文章不会被被编译.