前几天写了个题解,今天打算上传博客,居然出错了,找了一圈错误原因,最后发现是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 | title: 刷题记录——跳跃游戏 |
反思
这个报错很早就看到了,也知道和yaml是有关的,但没有想到是少了个空格,也没想到与hexo-generate-tag无关。
在这里记录一下这个错误,提醒自己。
其他小问题
电脑上的git bash也出了一点小问题。每次hexo s运行后,都不能用control + C退出进程。其他的快捷键也试了不可以。只能强行退出,用命令在cmd中kill进程。
1 | # 找到占用4000端口的进程 |