由于hexo的语言限制,在博客文章数量达到一定的数量后,生成静态内容的速度比较的缓慢,最近打算转到hugo的框架上,hugo使用的是golang编写的,号称是世界上最快的静态页面生成器

但是由于 golang 语言的一些语法及特性,在一些变量的表现上跟hexo有所不同,markdown文件虽然可以复用,但是文章内容的front matter,即文章头定义的那些标签会有所不同,首先是时间的格式会不同

go默认的格式是xxxx-xx-xxTxx-xx-xx+08:00 [+08:00代表的是时区.还有就是tags,categories等标签的定义,在go里定义多个要用数组,长度不确定需要使用切片,切片的形式为 []type{},所以在hugo中定义多个tagshexo会有不同]

hexo中

[tags: ]
    - hexo
    - blog

hugo 中

[tags: [hexo,blog]]

为了解决markdown文件的复用问题,我们使用golang写一个脚本,将hexo文章的头标签更改为hugo需要的格式

思路: 1. 获取目录下的所有markdown类型的文件 [ 2. 读取内容,并查找tags,categories标签] 3. 进行替换 4. 将替换的内容重新写进文件

项目地址: hexo2hugo

说明:

[ 当前只实现了对 tags,categories单标签单属性的替换,如有其他需求可以自行克隆增加]

待优化项(功能):

  1. 命令行参数获取,通过参数里的路径获取文件列表并更改

  2. 增加其他更多的标签

  3. 增加对于标签多属性的支持

  4. 将修改后的文件生成到一个单独的文件夹而不是覆盖原文件