0%

再次折腾之 Hexo

缘起

手里有几个域名,有几个 VPS,搭个博客是顺手的事儿。然而我不曾有过写博文或登“公开”日记的习惯,号称骄傲地用过 WP,不过是享受折腾的过程,至于博文,往往是三两篇之后便没了下文。

好友 Allen 时不时地安利 Hexo 的简单优雅,我却陷于对 Node.js 的陌生而敬而远之。如今,再次起意搭建博客,已不见那时躁动的心和强说的愁,而是人近中年的虚妄和不安。所谓蜀道难,既然是折腾,那就折腾吧。

过程

在 Linux 上安装 Hexo

注意:以下全程不需要 sudo,Hexo 将建立在当前用户的目录下。

登录到本地或远程的 Linux 系统。
安装 nvm:

$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash

退出再登录以使环境变量生效。
安装 Node.js:nvm install stable
安装 Hexo:npm install -g hexo-cli

建立站点

建立站点目录:hexo init <目录名称>
进入站点目录:cd <目录名称>
安装依赖文件:npm install

配置站点

编辑 <path>/_config.yml
参考 官方教程
其中:

  • language: 设置为 zh-CNzh-Hans,依据所用主题的多语言支持
  • timezone: 设置为 Asia/Shanghai

撰写文章

新建文章:hexo n "<文章标题>"
编辑文章:

  • cd <path>/source/_posts
  • 使用顺手的 markdown 编辑器编辑 <文章标题>.md

本地测试

开启本地服务:hexo s --debug
默认起在 4000 端口,通过 CTRL+C 关闭。
检查任何出错信息并尝试修复。

配置 Rsync 部署

Hexo 的特色是作为全静态的解决方案,可以将站点部署到 Github 上,然而我的需求是部署到 VPS 上,通过 Nginx 反向代理,以下我将采用 Rsync 的部署方式。

安装插件:npm install hexo-deployer-rsync --save
编辑 <path>/_config.yml

deploy:
type: rsync
host: <Nginx 服务器地址>
user: <Nginx 服务器用户>
root: <Nginx 站点路径>
port: <Nginx 服务器 ssh 端口>
delete: true
verbose: true
ignore_errors: false

发布文章和部署更新

Hexo 将文章以及任何变更推送到服务器,依次需要使用 hexo clean, hexo g, hexo d 三个命令,因此我写了个 shell 脚本,并通过 sudo chmod +x <脚本名称> 使其可执行:

#!/bin/bash
hexo clean
hexo g
hexo d

于是部署的步骤简化成了 ./<脚本名称>

安装 NexT 主题

Hexo 默认的主题实在一般,暂时先无脑安装 git 上 Star 最多的主题「NexT」,摸熟之后再说。

参考「NexT」官方文档

我使用官方推荐的稳妥的小白安装法,以下命令在站点目录下操作,不必 cd 到 themes 目录:

$ mkdir themes/next
$ curl -s https://api.github.com/repos/theme-next/hexo-theme-next/releases/latest | grep tarball_url | cut -d '"' -f 4 | wget -i - -O- | tar -zx -C themes/next --strip-components=1

编辑 <path>/_config.yml,修改主题配置为 theme: next

结语

至此,一个由 Hexo 驱动的博客站点建立了,接下来我会继续折腾主题和插件,并记录成博文。至于其他文章,我大致会分为技术学习笔记、街拍摄影、文摘评论、心情碎碎念等类别来发布。至于会写几篇、会坚持多久,那就是另一个故事了。

EOF