基于Hexo在Github上搭建技术博客

Github托管Hexo博客

选型配置如下:

  • 博客语言: Markdown 可移植跨平台
  • 博客程序: Hexo
  • 博客主题: NexT
  • 静态博客托管: Github + Coding.net 双线托管
  • 域名DNS: Aliyun 双线解析
  • 自动部署: travis-ci 持续集成自动部署
  • 写作编辑: vscode + prose 离线&在线写作
  • 图片工具: iPic 图床管理
  • 评论&阅读数统计: leancloud 基于 next 的valine 插件实现

为什么要从自建worldpress迁移过来,原因可参考阮一峰的文章,相比之下wordpress各种不省心并复杂繁琐,而现在方案每篇文章就是一个markdown文档,满足随心DIY。

第一阶段,刚接触Blog,觉得很新鲜,试着选择一个免费空间来写。
第二阶段,发现免费空间限制太多,就自己购买域名和空间,搭建独立博客。
第三阶段,觉得独立博客的管理太麻烦,最好在保留控制权的前提下,让别人来管,自己只负责写文章。

Hexo 安装

Hexo搭建教简单,参考官方教程 10分钟能出hello world。

个人大致总结Hexo特点:

  • 极易上手,几部命令完成
  • 单一配置文件_config.yml 易懂扩展性强
  • Hexo支持较好的部署功能,支持多种部署方式与多目标部署
  • 模板与插件丰富,安装方便。 官方网站已经有多达百种供选择

其他可见: 开源博客横向评测

国内国外双线加速

国内访问gitlub不太稳定,通过Hexo方便的支持双线同时发布,并通过dnspod的智能路由解析功能实现,国内访问到是coding.net托管的,国外访问的是github托管的。

详细教程参考: hexo同时托管到coding.net与github

附我的hexo的_config.yml

自动部署发布文章

Github支持Webhook可以自动触发自己主机上的发布脚本,但仍需要自己维护主机,利用travis-ci可以消除这一依赖。

完整教程参考: 用 Travis CI 自动部署 hexo
注: ssh-keygen -t rsa -C “youremail@example.com“ -t id_rsa 通过-t命令指定保存为当前目录的id_rsa文件。

附本博客:

博客的详细配置变更

对 hexo 定制化过的文件

  • source 文档及一些图片资源
  • _config.yml hexo 的配置
  • package.json hexo 依赖
  • themes/next/source/lib 扩展包安装
  • themes/next/_config.yml 主体配置
  • .travis.yml travis CI 配置
  • .travis travis 所需 ssh key token 配置
  • .gitignore git 所需
  • README.md 文档

开启的的功能列表:

  • valine + leancloud_visitors基于 leancloud 的评论与阅读数统计 [依赖三方网络服务]
  • RSS
  • local_search 搜索
  • math公式支持
  • han + pangu 文章编排美化
  • 百度+谷歌统计分析 [依赖三方网络服务]
  • fancybox 图片相册支持
  • pace 加载进度条
  • post_edit 显示文章源码link
  • symbols_count_time 字数与阅读时长显示
  • icon 更新页底copyright信息
  • 增加 tags, categories, archieves, about 四个子页面
  • 开启social 社交网站链接
  • Hexo 特有的 Tags Settings (开启,但暂没使用需要进一步评估)
  • 增加了 robots 协议
  • 增加 sitemap 提交百度+谷歌+微软站长管理平台
  • 强制 tags 链接全小写 filename_case=1
  • Add license and copy right by using creative_commons config
  • Enable full English URL by enable category_map