飞刀博客

开发了一个Z-BlogPHP文章数据转Hexo的小工具

 信息技术  2020-07-12  276  1

缘由

Hexo是一款基于Node.js的静态网站生成工具,它会将markdown文件渲染生成html文件,用户将它们放到服务器上无需额外的运行环境和数据库即可访问,部署方便,费用相对较低,因此它被很多人拿来用作建立个人博客网站。

我周末在家体验了一把,我想着把本博客网站的数据导到Hexo中,因为文章较多,想到了利用工具进行批量转移,可惜网上没有找到合适的工具软件,于是乎自己就动手写了一个。

过程

Hexo的新建文章的命令是hexo new post,探究其内部逻辑后,发现新建文章就是在source_post路径下生成一个头部有些特定格式内容(标题、日期、分类、标签......)的markdown文件,只要将这些文件批量生成后就可以用hexo的其它命令完成后续工作了。

这样看来,程序的关键逻辑也就两步:

  1. 从Z-BlogPHP数据库中的文章表读取数据后,串联分类表、标签表和作者表,获取分类、标签和作者的名称字段,组成一张新的文章表。

  2. 便利查询这张新表,然后按照Hexo的markdown规范将新文章表中的信息输出到markdown文件中,表中一行对应一份文章markdown文件。

因为我最熟练的编程语言是C#,于是乎就顺手用C#开发了,最终做好的工具放到了网盘里,网友如有需求可以下载使用,下载地址在这里

使用

工具是一个exe文件,使用简单,有如下几点说明。

  1. 解压缩后,无需安装,双击文件夹中的Zblog2Hexo.exe文件,系统将会弹出主界面。

  2. 输入数据库IP地址,端口(默认3306),数据库名,用户名和密码,然后选择保存文章的文件夹,点击“确定”程序即开始处理,如文章较多,可能耗时较长,中途不要关闭窗口,完成后会有提示。

  3. 将上一步选择的文件夹中生成好的markdown文件全部复制到hexo的source_post路径下,再用hexo g命令渲染文章,渲染后可以使用hexo s命令在本地查看效果。

  4. 如果数据库无法连接,可能是因为服务器上的数据库没有开放远程连接的权限,因为mysql默认只允许localhost访问,也可能是服务器的防火墙等安全软件的端口没有放开。

该工具没有进行专业的测试,也没有花时间去打磨,如果网友在使用中发现问题,可在本站“关于”页面中找到我的邮箱与我联系。

赞赏博主

 留言评论

  • 山卜方 @ 2020-08-03 20:25:49 回复
  • 可以本地安装Zblog 再在本地恢复数据,最后用的工具转换,typecho我就是这么干的

天上的神明和星辰,人间的艺术与真纯,
我们所敬畏和景仰的,莫过于此。

网站分类
文章归档
最新留言
友情链接

天上的神明和星辰,人间的艺术与真纯,
我们所敬畏和景仰的,莫过于此。

网站分类