LOADING

加载过慢请开启缓存 浏览器默认开启

Hexo Front-matter 字段详解

在使用 Hexo 搭建博客的过程中,每次新建文章(hexo new post "文章标题"),我们都会在 Markdown 文件的顶端看到由 --- 包裹的区域,这就是 Front-matter。它使用 YAML 或 JSON 语法,为 Hexo 和主题提供了关于这篇文章的配置信息。

理解这些字段,能帮助我们更好地控制文章的表现形式。下面我将详细介绍其中最常用和核心的字段。

核心字段

这些是 Hexo 内置支持的、最基本的配置项。

字段 描述 默认值
layout 布局。指定文章使用的模板,例如 post(文章页)、page(独立页)或 draft(草稿)。 config.default_layout (通常是 post
title 标题。文章的标题,会显示在页面标题和链接中(取决于你的配置)。 文章的文件名
date 建立日期。文章的发布日期,格式通常为 YYYY-MM-DD HH:MM:SS 文件建立日期
updated 更新日期。文章的修改日期,Hexo 会在此字段更新时重新生成页面。 文件更新日期
comments 评论功能。是否开启文章的评论功能。 true
tags 标签。为文章添加标签,仅适用于文章(post),不适用于独立页面(page)。
categories 分类。为文章添加分类,仅适用于文章(post)。分类具有层次性和顺序性。
permalink 覆盖文章的默认永久链接。例如,如果你想为一篇文章设置一个独立的短链接,可以使用此字段。链接应以 /.html 结尾。 null
excerpt 页面摘要。用于在首页显示文章摘要的纯文本。你也可以在文章正文中使用 <!-- more --> 标签来手动截取摘要。
published 是否发布。true 表示发布,false 表示文章为草稿状态(相当于存在 _drafts 目录)。 true (对于 _posts 下的文章)
disableNunjucks 禁用 Nunjucks 标签渲染。如果设置为 true,文章中的 {{ }}{% %} 这类 Nunjucks 标签插件将不会被解析,而是作为纯文本显示。 false

深入理解:分类和标签

这是很多新手容易混淆的地方。Hexo 官方文档明确指出,分类具有顺序性和层次性,而标签没有顺序和层次。

  • 分类(Categories):就像你电脑里的文件夹,可以有父分类和子分类。例如,一篇关于“篮球比赛”的文章,你可以将其分类为 Sports -> Ball -> Basketball。在 Front-matter 中,层次结构通过列表的缩进来表示。

    categories:
      - Sports
      - Ball
      - Basketball
    

    如果你需要一篇文章同时属于多个互不相关的分类体系,可以使用列表的列表。例如,一篇文章既是关于 Sports 的,又是关于 Life 的:

    categories:
      - [Sports, Baseball]  # 这是一个独立的分支:Sports/Baseball
      - [Life, Weekend]     # 这是另一个独立的分支:Life/Weekend
    
  • 标签(Tags):就像给文章贴的便签,它们之间是并列关系,没有父子级。你可以任意顺序排列它们,用于快速检索内容。

    tags:
      - Diary
      - 生活感悟
      - 旅行
    

进阶用法与主题定制

除了 Hexo 核心字段,你使用的主题通常也会扩展自己的 Front-matter 字段来实现特定功能。例如,许多主题(如 Butterfly, Volantis)都支持以下字段:

字段 描述 适用场景
cover 缩略图/封面图。用于在文章列表页显示的图片链接。 文章列表美化
top_img 顶部图片。文章页顶部显示的大图(通常是 banner)。 文章页个性化
toc 是否显示文章目录。控制是否在侧边栏生成当前文章的目录结构。 长文章导航
copyright 是否显示版权信息。控制文章底部是否展示作者、链接等版权声明。 内容版权保护
mathjax / katex 是否启用数学公式渲染。当文章包含复杂公式时启用。 技术/学术写作
pin 是否置顶。将文章固定在首页最前面。 重要公告或精选文章

注意:这些主题扩展字段并非 Hexo 核心功能,你需要查阅你所使用的 Hexo 主题的官方文档来确认它们是否支持以及具体的字段名和用法。

总结

Front-matter 是连接你与 Hexo 及主题配置的桥梁。掌握这些字段,就像给你的文章贴上了清晰的名片和说明书,让静态站点生成器知道如何更好地展示它们。

希望这篇文章能帮助你更好地理解和使用 Hexo 的 Front-matter,开始你的博客写作之旅!