hexo执行generate时的奇怪问题
前言
由于把blog的源文件copy到家里的电脑,主要方便临时记录。
在执行 hexo g
时遇到了一些奇怪的问题,这里简单记录下。
hexo 的 post文件内容结构如下
;--- |
上面date
为 post的创建日期.假如为空的话,hexo的post生成器会取文件的创建时间;
相关代码为
if (data.date) { |
开始调试
回到问题本身
我的其中一篇post,是2017时候,第一次玩hexo,hexo自动为我创建的hello-world
;
下面展示部分片段
;--- |
date:2017-01-22 11:24:30
;
当hexo生成post静态页面时却并没有正确解析出日期。
为了弄清楚为什么,下面开始debug源码.
上图为有问题的post的调试图.
本图为正常post的调试图.
通过上图比较,发现date对应的日期字符串基本没啥差别,符合yyyy-MM-dd HH:mm:ss
格式,但是 hello-word
的post日期却并没有正确解析处理。
上面通过调试发现并没有找到原因,我觉得可能是我的眼睛欺骗了我,只看到了表面,于是通过EditPlus
直接查看文件的十六进制的内容;
图中第二个文件的日期字节序中多了 E2 80 8E
这个三个字节(Left-to-right mark) ,最终导致日期没有解析处理(ps:这三个字节如何出现的,我也不知道)
如何解决
最终解决方法,把日期整行删掉,通过普通文本编辑器重新录入日期。
调试环境
操作系统: window 10 professional
调试工具: WebStorm 2019.1.1
hexo版本: 3.8.0
调试脚本
var hexo = require("hexo/node_modules/hexo-cli/lib/hexo"); |
上述js需要在你的blog根目录
下执行;
调试配置参数