4.Hexo 页面属性和模板设置

Frontmatter

frontmatter基本上是可以定义的有关不同文件的信息,本质上是元数据
frontmatter是我们可以分配给每个内容页面的信息
在Hexo中创建文件时,Hexo主题可以使用该信息以不同的方式显示该内容

当在Hexo创建了一个文件,在source文件夹的posts里面,a.md,
创建内容文件时,文件里会有一些默认信息
![[Pasted image 20240411122827.png]]

这些内容就是页面的前部内容
frontmatter是用两种之一的语言写的,yml或者json
yml和json都是用来定义关键值对的语言

![[Pasted image 20240411125512.png]]

这里是yml,title就是一个key,a就是value
date就是key,2024-04-10 13:24:23 就是value

  • 在这里定义网站里a的页面的标题
  • 下来是a创建的日期
  • 再下来是页面的一些标签

frontmatter允许给页面提供不同的内容,如标题,日期,标签
![[Pasted image 20240411125626.png]]

当打开网站,发现a页面正在主页上显示
实际上正在使用的hexo主题是使用这个a页面的frontmatter中的信息去显示这个a.md文件
![[Pasted image 20240411125640.png]]

这里的a就是页面的标题
上面的日期就是页面的日期

如果在frontmatter中更改标题和日期
![[Pasted image 20240411125722.png]]

刷新页面以后,这两个属性都发生了变化
![[Pasted image 20240411125746.png]]

所以这个hexo主题正在使用frontmatter中的信息以便正确显示内容页面

也可以添加一些标签

tags: [Tag1, Tag2, Tag3]

添加完毕后,刷新页面
![[Pasted image 20240411125830.png]]

会发现在导航卡上会出现这三个标签

基本上frontmatter就是让你为每个文件定义这样的东西

如果新建一个文件,比如b
![[Pasted image 20240411125846.png]]

会发现此时b和a中的frontmatter不同,不过hexo主题会使用它们来显示这些卡片,刷新页面之后,b也会显示
![[Pasted image 20240411125916.png]]

因此a和b实际上以相同的样式和相同的格式来显示的,但是由于a有不同的frontmatter,所以它和b不一样


每次更改了内容以后先输入

hexo g

生成网页
然后再输入

hexo s

运行服务器

Scaffolds

scaffolds基本上是Hexo网站上不同类型的页面将使用的模板,它们会继承一些默认值
模板是使用NunJucks语言来访问系统变量及函数

创建一个新Hexo文件,a.md
这个a文件不需要做任何事,会自动生成一个frontmatter,包括标签字段,日期字段和标题字段
![[Pasted image 20240411190602.png]]

新建一个草稿文件,b
这个新的草稿也和博客文件一样,有一些默认的frontmatter,但是草稿文件中创建的默认的frontmatter与在a文件中创建的默认frontmatter不同
![[Pasted image 20240411190659.png]]

新建一个页面,c
打开index.md,发现它也具有默认的前部内容,并且和博客的草稿的默认frontmatter都不同
![[Pasted image 20240411190712.png]]

为什么这三种类型的文件都有不同的默认前项
是因为scaffolds

scaffolds里有三个文件
![[Pasted image 20240411190727.png]]

draft.md、page.md和post.md
点击draft文件,里面有两个项,标题和标签
![[Pasted image 20240411190743.png]]

而b.md文件也有相同的两项,除了标题项的大括号

对page文件也是相同的情况,都有标题和日期
![[Pasted image 20240411190752.png]]

c.md文件里有确切的标题和实际的日期

post文件同理
![[Pasted image 20240411190801.png]]

当要求Hexo创建一个草稿文件时,Hexo进入scaffold文件夹,查看是否有用于草稿类型的模板文件,它会找到draft.md文件,按照文件上的默认的frontmatter,为新文件创建默认内容

如果打开draft.md文件,添加作者字段

author: "ZZZ"

当新建一个草稿文件d时
![[Pasted image 20240411190909.png]]

Hexo会自动在新文件中包含此作者字段

也可以在draft.md文件里面输入任何类型的markdown内容作为默认内容
当创建一个新文件时,Hexo会自动用默认内容填充新文件
![[Pasted image 20240411190955.png]]

控制scaffolds文件就是控制文件中包含哪些默认信息
比如在每篇博客文章的末尾的相同的小简介信息

还可以创建自己的自定义模板文件
在scaffolds文件夹新建一个文件,比如giraffe.md
往里面添加一些默认的frontmatter
![[Pasted image 20240411191141.png]]

大括号里面有的这些单词,基本上是值得占位符

要为新模板创建文件,输入

hexo new giraffe f

Hexo会创建f.md在posts文件夹,但是f现在的草稿布局就是giraffe
![[Pasted image 20240411191222.png]]

  • 26
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值