说到静态网站的动态化,其实就跟想减肥又不愿多运动一个道理,那到底鱼和熊掌能不能兼得呢?静态网站确实有诸多优点但它的部署发布流程太繁琐了,之前我为了偷懒写了一个脚本每次写完文章一键发布!
后来在一次team分享会上cc同学提出了一个小创意说现在静态网站+markdown的组合非常流行,我们可不可以做一个移动版的app随时把写好的文章以静态网站的形式发布出去?而且兴致勃勃的说目前没有人这么做如果做出来肯定会火一把😄 。
最近在看持续集成相关的文章,然后发现完全可以通过CI+静态网站生成器+github手机客户端完成之前的idea,于是google了一下发现很多文章都有讲如何通过Travis、flow.ic等持续集成工具来发布由hexo、Jekyll等等静态网站生成器构建的博客,这仿佛也印证了那句话“当你想到一个idea的时候,可能有1000个人已经想到了,100个人在计划了,10个人准备全力去做了,一个人已经干出来了" 不过关键还是看执行力。
既然网上很多文章都有讲为什么还要来写这篇文章呢?还不是因为各种坑嘛,在实际搭建部署的过程中遇到各种莫名的环境配置问题,思路大家都懂😂
关于持续集成和静态网站生成器之类的概念在这里就不重复讲了,有问题自行google。
我的博客框架
我的博客系统是用Hexo+Travis CI+Github搭建的。
因为要使用Gitpage服务,所以生成的网页文件必须是在master分支
- master分支用来存放生成的Html文件
- blog_source分支用来存放博客源文件
在Github上生成Access Token
在github的设置页面,点击左侧的Personal access tokens,然后点击右上角的Generate new token按钮,他会让你输入密码,最后进入下图的页面:
这里需要注意因为你要把这个token给CI服务器所以为了安全起见尽量只给必要的权限即可。
Travis CI的环境配置
这里我们把一些敏感的信息都配置在CI服务器上,例如:github的用户名、邮箱、Gitpage的地址、还有刚刚生成的Token。
.travis.yml的配置
这里我们还需要在存放博客源码的仓库里创建一个.travis.yml配置文件,如下图:
内容如下:
其中变量的含义:
- GH_TOKEN——访问github的token
- GH_REF——博客托管在Gitpage上的地址
- USER_NAME——github的用户名
- EMAIL——github的邮箱
愉快的发布文章
1、通过Android studio来管理发布博客
在AS中有很多不错的插件来支持markdown,这样我们就可以像平时写代码一样来写文章了,完成之后push到服务器,CI那边就会自动编译发布。
2、通过github网站直接发布文章
这种方式就更不依赖环境了,只要有一台可以联网的设备你就可以开心的写文章了。
3、通过github手机客户端
github推出了Android版的客户端,这样写文章是不是更容易了呢
FullStackEngineer的公众号,更多分享
网友评论