Frontmatter
frontmatter基本上是可以定义的有关不同文件的信息,本质上是元数据
frontmatter是我们可以分配给每个内容页面的信息
在Hexo中创建文件时,Hexo主题可以使用该信息以不同的方式显示该内容
当在Hexo创建了一个文件,在source文件夹的posts里面,a.md,
创建内容文件时,文件里会有一些默认信息
这些内容就是页面的前部内容
frontmatter是用两种之一的语言写的,yml或者json
yml和json都是用来定义关键值对的语言
这里是yml,title就是一个key,a就是value
date就是key,2024-04-10 13:24:23 就是value
- 在这里定义网站里a的页面的标题
- 下来是a创建的日期
- 再下来是页面的一些标签
frontmatter允许给页面提供不同的内容,如标题,日期,标签
当打开网站,发现a页面正在主页上显示
实际上正在使用的hexo主题是使用这个a页面的frontmatter中的信息去显示这个a.md文件
这里的a就是页面的标题
上面的日期就是页面的日期
如果在frontmatter中更改标题和日期
刷新页面以后,这两个属性都发生了变化
所以这个hexo主题正在使用frontmatter中的信息以便正确显示内容页面
也可以添加一些标签
tags: [Tag1, Tag2, Tag3]
添加完毕后,刷新页面
会发现在导航卡上会出现这三个标签
基本上frontmatter就是让你为每个文件定义这样的东西
如果新建一个文件,比如b
会发现此时b和a中的frontmatter不同,不过hexo主题会使用它们来显示这些卡片,刷新页面之后,b也会显示
因此a和b实际上以相同的样式和相同的格式来显示的,但是由于a有不同的frontmatter,所以它和b不一样
每次更改了内容以后先输入
hexo g
生成网页
然后再输入
hexo s
运行服务器
Scaffolds
scaffolds基本上是Hexo网站上不同类型的页面将使用的模板,它们会继承一些默认值
模板是使用NunJucks语言来访问系统变量及函数
创建一个新Hexo文件,a.md
这个a文件不需要做任何事,会自动生成一个frontmatter,包括标签字段,日期字段和标题字段
新建一个草稿文件,b
这个新的草稿也和博客文件一样,有一些默认的frontmatter,但是草稿文件中创建的默认的frontmatter与在a文件中创建的默认frontmatter不同
新建一个页面,c
打开index.md,发现它也具有默认的前部内容,并且和博客的草稿的默认frontmatter都不同
为什么这三种类型的文件都有不同的默认前项
是因为scaffolds
scaffolds里有三个文件
draft.md、page.md和post.md
点击draft文件,里面有两个项,标题和标签
而b.md文件也有相同的两项,除了标题项的大括号
对page文件也是相同的情况,都有标题和日期
c.md文件里有确切的标题和实际的日期
post文件同理
当要求Hexo创建一个草稿文件时,Hexo进入scaffold文件夹,查看是否有用于草稿类型的模板文件,它会找到draft.md文件,按照文件上的默认的frontmatter,为新文件创建默认内容
如果打开draft.md文件,添加作者字段
author: "ZZZ"
当新建一个草稿文件d时
Hexo会自动在新文件中包含此作者字段
也可以在draft.md文件里面输入任何类型的markdown内容作为默认内容
当创建一个新文件时,Hexo会自动用默认内容填充新文件
控制scaffolds文件就是控制文件中包含哪些默认信息
比如在每篇博客文章的末尾的相同的小简介信息
还可以创建自己的自定义模板文件
在scaffolds文件夹新建一个文件,比如giraffe.md
往里面添加一些默认的frontmatter
大括号里面有的这些单词,基本上是值得占位符
要为新模板创建文件,输入
hexo new giraffe f
Hexo会创建f.md在posts文件夹,但是f现在的草稿布局就是giraffe