用hexo更新文章的报错记录

前几天写了个题解,今天打算上传博客,居然出错了,找了一圈错误原因,最后发现是yaml语言规范问题。就缺少一个空格,折腾了半天,下次要好好看报错内容。

报错

1
YAMLException: can not read a block mapping entry; a multiline key may not be an implicit key at line 5, column 5:

当时看到这个报错的第一个想法是,我的包版本和原先下载的不一样。因为我的电脑每年都会重装系统,用来释放空间和删除一些不必要的软件,也为了让电脑保持性能。所以每次换电脑最麻烦的就是恢复必要的数据,比如hexo博客。有时不知道哪个版本更新就会出现问题,我一般都自动导入之前的配置,但是安装的node版本每次都有一点不同。

没有解决报错,我又想到是不是没有使用命令hexo new post添加文章。重新试过后发现仍然报错。

事实上与node更新有关,旧版本不会报错,由于新的版本只接受严格的yaml语法。所以在每个date: tags:等的冒号后面都要加上一个空格。否则就无法让新文章生成abbrlink,显示在博客界面。

解决

修改markdown文章的头部即可:

1
2
3
4
5
6
7
8
title: 刷题记录——跳跃游戏
category:
- Professional learning
- python
tags:
- python
- practice
date: 2022-01-07 02:24:47

反思

这个报错很早就看到了,也知道和yaml是有关的,但没有想到是少了个空格,也没想到与hexo-generate-tag无关。
在这里记录一下这个错误,提醒自己。

其他小问题

电脑上的git bash也出了一点小问题。每次hexo s运行后,都不能用control + C退出进程。其他的快捷键也试了不可以。只能强行退出,用命令在cmd中kill进程。

1
2
3
4
# 找到占用4000端口的进程
netstat -ano|findstr 4000
# kill进程
taskkill /f /t /im "15136"

参考文章


----本文结束啦感谢您阅读----

欢迎关注我的其它发布渠道