smart的个人博客

代码分享专栏

利用hexo搭建博客并推送到企业微信

Hi,

欢迎访问,本博客实现流程图如下:

1
2
3
4
5
6
push webhooks
Server(Hexo)---------->repository(github)---------->tools---->企业微信
^ |
| |
| read send msg |
+-----------------------people<------------------------------+

采用这个架构主要有以下这些考虑:

  • hexo是一个轻量级的静态博客框架,利用Node.js带来的超快生成速度,可以让上百个页面在几秒内完成渲染;
  • hexo原生支持Markdown的所有功能;
  • 新建文章一键部署;
  • 丰富的插件和主题支持;
  • 博客的核心是文章,不容有失。因此采用gitlab进行托管;
  • 接入企业微信。发表一篇新文章时会自动推送;

博客搭建流程

  1. 安装hexo,需提前安装好Node.js和git
  2. 建站。执行以下命令:

    1
    2
    3
    $ hexo init <folder>
    $ cd <folder>
    $ npm install
  3. 安装插件

    1
    2
    $ npm install hexo-generator-feed --save
    $ npm install hexo-abbrlink --save
  4. 修改默认配置文件(<folder>/_config.yml),需要修改部分如下。其他配置文件参见这里,可根据需要修改

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    title: your title
    permalink: posts/:abbrlink/
    plugin:
    - hexo-generator-feed
    deploy:
    type: git
    repository: git@github.com:SmartBrave/SmartBrave.github.io.git
    branch: master
    abbrlink:
    alg: crc32
    rep: hex
  5. 可根据需要安装自己喜欢的主题

  6. 下载tools并编译(请参考README)

    1
    2
    3
    $ git clone https://github.com/SmartBrave/blog_tools.git ~/blog_tools
    $ cd ~/blog_tools
    $ go build
  7. 部署

    1
    2
    $ cd ~ && nohup ~/blog_tools >/dev/null 2>&1 &
    $ cd <folder> && nohup hexo server >/dev/null 2>&1 &
  8. 在gitlab仓库中将webhooks配置成tools所监听的地址

  9. 如果要使用自己的域名访问,请在域名控制台添加一条CNAME记录,指向SmartBrave.github.io.git,并在<folder>/source目录下创建CNAME文件,输入域名即可。

写作流程

1. 写博客

  1. 登录到服务器,在文章存放目录下(<folder>/source/_post)新建一个md文件,命名为文章名.md
  2. 或者使用hexo new article新建文章,然后编辑;
  3. 编辑文章,完成后保存退出。文章中图片资源可存放在/www/blog/source/images/文件夹下,通过/images/xxx.jpg引用(或通过图床引用,在此不表);

2. 部署到github

  1. 在博客目录下执行:

    1
    $ hexo g -d

    若提示找不到git,请执行:

    1
    $ npm install hexo-deployer-git --save

可能遇到的问题

  1. 若博客无法访问,请检查网络是否连通;没问题之后检查server是否被kill,若被干掉了需要启动server:

    1
    2
    $ cd <folder>
    $ nohup hexo server >/dev/null 2>&1 &
  2. 同理,若无法推送到企业微信,有可能是blog_tools被kill,启动即可;

项目仓库