前言

一直想有个自己的博客,写点技术笔记、记录生活什么的。之前试过 WordPress,太重了,光是搭环境就要折腾半天。后来发现了 Hexo —— 一个基于 Node.js 的静态博客生成器,轻量、快速、部署简单,特别适合自己这种想快速上线的人。

这篇就记录一下从零搭建到上线的整个过程。

为什么选 Hexo

选 Hexo 主要因为几个原因:

  • —— 静态页面,生成后直接扔到服务器上,不需要数据库
  • Markdown 写作 —— 不用碰富文本编辑器,写起来舒服
  • 主题多 —— 社区有大量好看的主题可以直接用
  • 免费托管 —— 可以放 GitHub Pages,也可以自己部署到服务器

对比了一下 Hugo、Jekyll,最后还是选了 Hexo,主要是中文社区大,遇到问题好查。

搭建过程

1. 本地初始化

首先要装 Node.js,然后全局安装 Hexo CLI:

1
2
3
4
npm install -g hexo-cli
hexo init myblog
cd myblog
npm install

这三步会在当前目录生成一个完整的博客骨架,hexo server 本地就能预览。

2. 选主题:Butterfly

Hexo 自带的主题是 landscape,说实话不太好看。换了好几个主题之后,最终选了 Butterfly

Butterfly 的优点:

  • 设计简洁现代,符合我的审美
  • 自带暗色模式切换
  • 支持 Pjax 无刷新加载
  • 文档详细,中文友好
  • 侧边栏、标签云、归档等功能开箱即用

安装方式很简单,直接在博客目录下:

1
git clone -b master https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly

然后在 _config.yml 里把 theme 改成 butterfly 就行。

3. 基础配置

Hexo 的配置文件主要有两个:

  • _config.yml —— 站点配置(标题、描述、URL 等)
  • _config.butterfly.yml —— 主题配置(样式、功能、侧边栏等)

我改了这些关键配置:

1
2
3
4
5
6
7
8
9
# 站点配置
title: 文汐的Blog
subtitle: 'Do your self'
author: Wen xi
language: zh-CN
url: https://wenxixixi.cc

# 主题配置
theme: butterfly

头像、背景图、Favicon 这些都在主题配置里改,放到 source/images/ 目录下就行。

4. 部署到服务器

我用的是阿里云 ECS(Ubuntu),部署思路是:

  1. 本地 hexo generate 生成静态文件
  2. public/ 目录同步到服务器
  3. 服务器上用 Nginx 做 Web 服务

Nginx 配置很简单:

1
2
3
4
5
6
7
8
9
10
server {
listen 80;
server_name wenxixixi.cc;
root /var/www/html;
index index.html;

location / {
try_files $uri $uri/ =404;
}
}

域名是在阿里云注册的,DNS 解析指向服务器 IP 就行。HTTPS 用 Let’s Encrypt 免费证书,certbot 一键搞定。

5. 配置自动部署

每次写完文章都要手动 generate + deploy 太麻烦了,所以我写了个简单的部署脚本:

1
2
3
4
5
#!/bin/bash
cd /root/myblog
hexo clean && hexo generate
cp -r public/* /var/www/html/
echo "Deploy done at $(date)"

配合 Hexo 的 deploy 配置,一条命令就能发布。

写作流程

现在我的博客写作流程是:

  1. 本地 hexo new "文章标题" 创建新文章
  2. 用 Markdown 编辑器写内容
  3. hexo server 本地预览
  4. 确认没问题后部署上线

整个过程很流畅,从写完到发布也就几分钟。

遇到的一些坑

  • 中文标题的 URL 编码 —— Hexo 默认会对中文标题做 URL 编码,生成的链接很长。可以通过 pretty_urls 配置优化,或者写文章时用英文文件名
  • 图片路径 —— Markdown 里的图片路径要用 /images/xxx,不是相对路径,不然详情页会加载不出来
  • 主题更新 —— Butterfly 主题用 git clone 安装的话,更新时要注意不要覆盖自己改过的配置。推荐用 _config.butterfly.yml 覆盖配置,这样更新主题不会丢设置

写在后面

从零搭建一个博客其实没有想象中那么难。Hexo + Butterfly 这个组合对新手很友好,基本上半天就能跑起来一个还不错的博客。

接下来打算多写点东西,把这里当成自己的技术笔记和生活记录本。如果你也想搭一个自己的博客,Hexo 是个不错的起点。

博客地址:wenxixixi.cc