Hexo\scaffolds\post.md模板中的变量详解

官网上的参数说明不是很详细,尤其是在具体写法上没有合适的参考。

本文将以.\scaffolds\post.md为例,对updatedpermalink等参数进行讲解。

打开.\scaffolds\post.md文件,默认参数如下:

---
title: {{ title }}
date: {{ date }}
tags:
---

当我们在命令行中输入:

hexo new ABC

则会在.\source\_post\目录下产生一个ABC.md文件,内容如下:

---
title: ABC
date: 2017-12-29 20:20:47
tags:
---


1. 如何设置permalink?

修改.\scaffolds\post.md,增加一个permalink属性:

---
title: {{ title }}
date: {{ date }}
tags:
permalink:
---

permalink为空,则Hexo会使用默认设置。默认设置是什么呢?就是你的根目录下的_config.yml中定义好的内容:

在这里插入图片描述

:year表示年份,:month表示月份,:date表示日期。最终的展示效果为https://likianta.coding.me/2017/09/04/title/这种形式。

你也可以把图中的斜杠改为短横线,效果会变成https://likianta.coding.me/2017-09-04/title/

当然还有其他改法,比如我将默认设置改成了permalink: :year/:category/:title,其最终的网址就是https://likianta.coding.me/2017/xx分组/xx标题

还是以hexo new ABC为例,我们查看ABC.md文件,会发现其内容如下(categories是我设置的分类,不知道怎么创建分类或标签的各位可以参考附录里的链接):

---
title: ABC
date: 2017-12-29 20:20:47
categories: uncatalog
tags:
permalink:
---

有些人会疑惑为什么permalink不能像date一样显示为具体的链接呢,具体原因我也不清楚。但并不影响我们serverdeploy后的网页效果:

在这里插入图片描述

另外需要注意的是,.\scaffolds\post.md中的permalink请一定要留空。

官网中虽然说.\scaffolds\post.md中的permalink内容可以覆盖根目录的默认设置,但实测发现会引起网址bug(这个问题在Github中也有相关的讨论)。

比如说你在.\scaffolds\post.md中修改为:

permalink: :year:month/:title

Hexo会误把它当成一个字符串进行解析,结果就会生成:https://likianta.coding.me/2017/09/04/:year:month/:title/(一个错误的URL路径)。

不过如果我们在具体的文章中手动写上的话是不会报错的:

.\source\_post\ABC.md:

---
title: ABC
date: 2017-12-29 20:20:47
categories: uncatalog
tags:
permalink: https://likianta.coding.me/2017/12/29/ABC/
---

(PS:即便你把这篇文章的网址写错了,比如“2017”错写成“2018”,Hexo在解析时也不会报错。具体原因尚不清楚,可能是这个permalink纯属给自己看的吧。)

2. 如何修改date的日期格式使其只显示年月日,不显示时间?

我在网上没有找到修改方法,另外也不建议去修改它。

很多人有这个疑问是担心自己手动创建文章时还要输入一个具体时间会感到很麻烦,事实上这是非强制的选项——即便你只写日期不写时间,也不会影响博客生成正确的创建时间。

不过连日期都不写的话命令行会报错的,所以日期请不要省略。

PS:另外也不要在.\scaffolds\post.md或你的具体的文章头使用date: :year-:month-:date来定义,这个方法同样会报错,它和之前的permalink问题一样,会被解析为一个普通字符串,从而将你导向一个无法访问的URL。

3. 如何设置updated参数?

.\scaffolds\post.md中修改为:

---
title: {{ title }}
date: {{ date }}
updated: {{ date }}
tags:
permalink:
---

具体效果不知道有没有用。因为一般来说文章的创建日期和更新日期是相同的。

有些人可能想到,如果我先在草稿(drafts)中写好,然后半小时后用hexo publish ABC把它转送到_posts文件夹,那么updated会不会变成半小时后的时间呢?

实际测试的结果是Markdown文档中的updateddate相同,都是半小时前的。

所以这个似乎只是用来手动修改的。

4. 我不想让我的网址中出现空格或者中文字符,并且想要使用全英文URL,具体该怎么设置?

首先可以放心的是你的URL路径是不会出现空格的,Hexo会自动把标题、分类等字符中会出现空格的地方用短横线-来代替。

看看你的_posts\目录会发现,凡是文内标题有空格的,其文件名都用短横线来代替了:

在这里插入图片描述

Hexo就是根据文件名来作为URL中的:title参数的。

即便你修改了文内标题,只要文件名没变,那么你的网址路径是不会变的。

了解了这点之后,相信你也知道怎么让URL的路径是全英文了:只需把文件名改成英文就可以了。

不过你以为这样就解决了吗?其实这个是最麻烦的方法,还有一个方法可以让这项工作简单百倍。

使用文章id来取代title

请跳转查看此文章:https://blog.csdn.net/Likianta/article/details/79343427


附录:一些比较简单的知识补充

能看到这篇文章的大家应该对开启分类、标签的方法应该都懂得,所以本篇文章没有讲解这些知识。不过放了方便大家回顾这些知识,下面的这些链接会有帮助:

如何开启分类功能:


相关阅读

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值