我的这个博客站点大约始建于2010年以前,使用过dlog,pjblog,zblog等博客程序,也手动建立使用过纯静态HTML页面,大约2010年开始使用wordpress。最近几年有感于wordpress过于臃肿复杂,而我的目的只是想写点什么,给自己留下些记录,于是将网站迁移到了更加简洁的hexo。
在本地电脑搭建好环境,配置好hexo站点。每次在网易云笔记里写好markdown格式的文章,然后复制到本地电脑hexo的对应目录下,手动生成新的网站静态页面。最后再手动上传到服务器空间里,这样就完成了网站的更新。

我的需求

hexo虽然简洁,快速,但有几个问题一直困扰着我,甚至影响了写作的兴趣和欲望。

第一,一定要使用我安装配置了hexo的那台电脑,才能发布生成新的静态页面,然后才能更新到服务器。虽然也了解过一些办法,比如将hexo配置文件复制安装到不同电脑,或者上传到github,通过github更新,但终究不能很好解决网站更新,文章发布的问题。

第二个问题,其实是第一个问题的延伸。每次发布新文章,文章写好以后,还需要复制到hexo目录下,手动生成静态页面,然后上传到网站服务器,这个过程太过繁琐。当然也去了解过解决办法,比如使用hexo-admin插件,给hexo添加后台管理,把hexo部署到服务器上,通过admin-hexo在线更新文章。然而这些都背离了我当初使用hexo的初心—简洁,快速。如果要这样折腾,为何不使用wordpress等功能更强大的博客程序呢?

在折腾的过程中,在hexo官网上看见了一篇技术文章,介绍如何将hexo部署到GitHub Pages,非常符合我的需求,唯一的问题是,部署过程中需要借助Travis CI这个第三方平台,简单的事情又变得复杂了。最后我甚至动了想把hexo转换成jekyll念头,因为hexo和jekyll结构基本一样,完全支持.md的文章格式,更重要的是GitHub Pages原生的支持jekyll,几乎不需要任何设置。Github虽然在国内很多地方访问不稳定,但是套上cdn以后可以解决这个问题。

我开始着手将hexo迁移到GitHub Pages上,使用jekyll部署。但是不久发现了一个大问题,GitHub Pages不支持jekyll插件。没错,简单的借助jekyll插件实现的比如翻页,搜索等功能,在GitHub Pages几乎实现不了,这样就很绝望了。于是一切再次停下来。

webify

最近收到腾讯云的一条广告短信,说推出了webify,支持将任意形式的博客,个人站点部署到webify。于是去了解了下,发现正是我所需要的,正好解决了我上述的需求。

webify部署hexo非常简单,在webify控制面板里绑定GitHub里的自己的hexo网站仓库就可以了,因为webify已经预设了hexo框架,所有配置都是默认和自动的。

webify部署hexo

部署好以后,网站就可以访问了,还可以绑定自己的域名,默认会开启CDN加速。

在自己的GitHub仓库里修改网站,或者拟写markdown格式的日志,webify会自动构建和部署,生成新的静态页面并发布。这意味着以后只需要在GitHub里写文章(这篇博文既是如此。),网站会完全自动更新。完美,这正是我一直以来所需求的。

下图是我的hexo网站在GitHub里的仓库文件列表
hexo网站的GitHub仓库

按照官方文档介绍,webify在构建时,平台会首先为您的应用安装 package.json 中指定的项目依赖(包括开发环境依赖 devDependencies)。这意味着我在本地创建hexo时所安装和依赖的各种环境和插件,webify完全会自动帮我安装。最后webify生成的hexo站点和我本地运行的完全一样。

webify的其他特点

  1. webify默认支持cdn,所以网站构建部署成功以后,可能需要2-5分钟时间才能看到效果。
  2. webify目前支持的框架有React,Vue,Angular,Next.js,Nuxt.js,Hexo,Gatsby.js,Vite,Docusaurus 2等。
  3. webify支持的代码平台Github,Gitlab和Gitee码云。