缘由
Hexo是一款基于Node.js的静态网站生成工具,它会将markdown文件渲染生成html文件,用户将它们放到服务器上无需额外的运行环境和数据库即可访问,部署方便,费用相对较低,因此它被很多人拿来用作建立个人博客网站。
我周末在家体验了一把,我想着把本博客网站的数据导到Hexo中,因为文章较多,想到了利用工具进行批量转移,可惜网上没有找到合适的工具软件,于是乎自己就动手写了一个。
过程
Hexo的新建文章的命令是hexo new post,探究其内部逻辑后,发现新建文章就是在source_post路径下生成一个头部有些特定格式内容(标题、日期、分类、标签......)的markdown文件,只要将这些文件批量生成后就可以用hexo的其它命令完成后续工作了。
这样看来,程序的关键逻辑也就两步:从Z-BlogPHP数据库中的文章表读取数据后,串联分类表、标签表和作者表,获取分类、标签和作者的名称字段,组成一张新的文章表。
便利查询这张新表,然后按照Hexo的markdown规范将新文章表中的信息输出到markdown文件中,表中一行对应一份文章markdown文件。
因为我最熟练的编程语言是C#,于是乎就顺手用C#开发了,最终做好的工具放到了网盘里,网友如有需求可以下载使用,下载地址:链接: https://pan.baidu.com/s/1eQYkItaMhvPkDtcC3l4-LQ 提取码: w34p
使用
工具是一个exe文件,使用简单,有如下几点说明。无需安装,双击Zblog2Hexo.exe文件,系统将会弹出主界面。
输入数据库IP地址,端口(默认3306),数据库名,用户名和密码,然后选择保存文章的文件夹,点击“确定”程序即开始处理,如文章较多,可能耗时较长,中途不要关闭窗口,完成后会有提示。
将上一步选择的文件夹中生成好的markdown文件全部复制到hexo的source_post路径下,再用hexo g命令渲染文章,渲染后可以使用hexo s命令在本地查看效果。
如果数据库无法连接,可能是因为服务器上的数据库没有开放远程连接的权限,因为mysql默认只允许localhost访问,也可能是服务器的防火墙等安全软件的端口没有放开。
该工具没有进行专业的测试,也没有花时间去打磨,如果网友在使用中发现问题,可在本站“关于”页面中找到我的邮箱与我联系。