Tech
利用Github和Heroku远程发表Hexo文章
使用Hexo这种静态博客程序搭建博客时,始终会遇到一个问题,要写博客就必须有一台环境配置好的电脑才行。想用手机和平板发文章,就会遇到各种问题。
看到了Yu-Zhi Chen的hexo-migrator-dropbox,但苦于地域限制,很难发挥它的作用。
于是开发了hexo-migrator-issue和hexo-heroku-auto-publisher,顺便为最近要开始的前端项目练练手。这两个插件配合Heroku和Github issues提供的免费服务,即可实现远程发表Hexo文章的功能。
以下步骤基于已搭建好Hexo环境并且有Github Pages项目的前提。
准备项目
安装hexo-heroku-auto-publisher
在Hexo项目目录下执行
|
|
这个插件不需要配置,它的作用就是在你的项目里添加一些上传到Heroku时所需要的文件。
转换项目
安装好hexo-heroku-auto-publisher后,在Hexo项目目录下执行
|
|
等执行完成后你会看到自己的项目里多出了app.js
和Procfile
这两个文件。如果你能看到隐藏文件的话还会看到.ssh
文件夹合理面包含的三个文件。
让我们看看刚才这个命令的执行过程中都发生了什么:
- 下载了
app.js
,Procfile
,.ssh/known_hosts
这三个文件 - 为你生成了一个新的ssh key,用来给Heroku向你的Github项目提交内容的权限。
- 为你安装了hexo-migrator-issue插件
- 为你的项目添加了
async
,body-parser
,express
,hexo
这四个依赖。
保存ssh key
在刚才转换项目的过程中,有一段输出是值得我们注意的。类似下面这样。
|
|
这里打印出了我们要添加到Github上的ssh key,让我们先把它复制出来保存一下吧。
修改配置文件
按照下面的格式修改配置文件
|
|
以上这些步骤完成后,我们就已经准备好要部署到Heroku上的项目了。
创建Heroku App
注册
如果你还没有Heroku的账户的话,就先去这里注册吧。
安装heroku-toolbelt
Heroku toolbelt是你在本地操作Heroku Apps的客户端。
去这里下载安装。
安装完成后打开终端(命令行)执行
|
|
然后按照提示输入Email和密码,设置好ssh key。
初始化Git
如果你当前的项目已经是一个Git版本库了,那么你只需要记得把准备项目时新生成的文件添加的版本控制里就行了。不过需要注意的是./ssh/id_rsa这个文件尽量不要push到公开的版本库上,有了它就有了操作你的Github项目的授权。
如果你的项目还没有被初始化成Git版本库过,那么你需要执行下面三条命令。
|
|
创建App
在项目目录下执行
|
|
这会在Heroku上创建好对应的App。
再执行
|
|
这会把你的项目部署到Heroku上。
执行下面的命令来保证你的项目能得到运行。
|
|
让我们来访问一下你的项目吧,执行
|
|
命令执行后会在浏览器里打开你的项目,如果页面上显示success则代表你部署成功了,记住这个页面的网址,我们后面会用到它。
配置Github
添加ssh key
在这里添加上刚才ssh key,注意登录用户必须有提交到Github Pages项目的权限。
设置Webhooks
打开你用来存放文章(issue)的Github项目主页,点击右侧的Settings
,再点左侧的Webhooks & Services
。
点击Add webhook
。
在Payload URL
里填入刚才我们打开heroku app的网址。
Content type
选application/json
。
Secret
留空。
Which events would you like to trigger this webhook?
选Let me select individual events.
。
在下面的选项里只选Issues
一项就够了。
选中Active
。
点击Add webhook
。
现在就去issue里写一篇文章试试吧。记得issue的标题会被当做文件名,issue的内容要带有hexo所需的文件头哦。
像这个一样。