页面头部参数 Front Matter
Front Matter 这个词在静态博客流行起来后曝光增多,目前没有没有较为官方或者受多数人认可的中文称呼,大家一般都会直接使用原英文 Front Matter 来形容。
Front Matter 的功能就是在页面头部使用 YAML 格式配置关于页面的基础参数,这些参数往往都是应用在主题模板上所以也叫“前端参数”,Jekyll 在构建时会先对 Front Matter 进行处理,所以也叫“前端事件(事项)”,一般页面和文章都会包含两个基础的页面头部参数
layout
(页面模板)和 title
(页面标题),Front Matter 主要用于 .md
文件,在 .html
文件中也可以使用。这两个参数在绝大多数静态博客都是约定俗成的。下面是一个基本示例:
---
layout: post
title: 像在本地写 Markdown 文档一样写博客
---
在两行 ---
三段虚线之间,你可以设定你页面的变量和值,可以使用预设变量,甚至可以创建自定义变量(请可参照下文)。页面添加好变量后,然后可通过 Liquid 标签使用这些变量构建时会解析对应值或内容,这些变量可以在主题模板或当前页面使用(当然如果在别的地方通过 Liquid 获取当前页面内容时也可以使用这些变量)。
UTF-8 字符编码注意事项
如果你使用 UTF-8 编码,请确保文件中不存在 BOM
头,否则运行 Jekyll 会发生很多糟糕的错误。如果你是在 Windows 上运行 Jekyll请特别注意这个问题。
(目前大多数情况,我们一般都是使用 UTF-8 编码,打开 VS code 之类的代码编辑器,在窗口右下角可以看到当前文件的字符编码)
页面头部参数 Front Matter 中的变量是可选的
如果你想使用Liquid 标签和变量(variables),但是不想在页面头部参数 Front Matter 中,可以直接留空。
两行 `---` 三段虚线中没有任何内容,Jekyll 仍然会处理你的文件,这对于 CSS 和 RSS 文件也很有用。
预设的全局变量
你可以在页面或者文章的页面头部参数中使用这些预设的全局变量。
变量 | 介绍 |
---|---|
|
设置
|
|
如果不希望当前使用全局的默认永久链接设置( |
|
如果不想在生成网站的时显示这个页面,请将值设置为 `false`。
|
显示未发布的页面和文章(草稿)
如果需要预览未发布的页面,可以在运行 `jekyll serve` 命令或 `jekyll build` 命令时带上 `--unpublished` 参数。
Jekyll 专为博客文章定制了便捷的草稿 drafts功能。
自定义变量 Variables
你可以在页面头部参数中添加自定义变量,可以通过 Liquid 读取。
如下示例,添加了一个 food
的变量,页面构建后会显示变量的值(Pizza):
---
food: Pizza
---
<h1>{{ page.food }}</h1>
文章中预设的变量
在文章类型的页面头部参数直接添加即可,这些都是可以直接使用(大多数主题模板都有用到这些变量)。
变量 | 介绍 |
---|---|
|
在文章页面头部参数添加日期时间会覆盖文章文件名上的日期。文章的日期时间变量会影响文章的排序。
|
|
变量名称的两种写法都可以使用(二选一),你可以给当前文章制定所属的一个分类或者多个分类,而不是将文章放在不同的文件夹里面。可以使用 YAML list 或者在中括号中使用英文逗号分隔多个标签( |
|
和「分类」类似,一篇文章可以添加一个或多个「标签」(tags)。和「分类」一样,可以使用 YAML list 或者英文逗号分隔多个标签。 |
设定默认值 避免重复配置
如果你大多数页面的 front matter 某个变量都使用同一个值时,你可以在 `_config.yml` 文件中设定默认值,避免繁琐的在每个页面配置重复的变量。
如果某个页面不需要使用默认值时可以在内容的 front matter 中单独配置,这样可以覆盖 `_config.yml` 文件中的默认值。