使用Hexo+GitHub搭建个人博客教程

开始搭建自己的小站吧。简单记录,方便后续翻阅。
从无到有的流程还是比较详细的,按步骤从头到尾跟着执行可以避免大部分问题。本次搭站 参考文章 人家写的已经很详细了,这里进行备份基础补充和常见问题的汇总。

准备工作

Hexo 基于 Node.js,搭建过程中还需要使用 npm(Node.js 已带) 和 git,因此先搭建本地操作环境,安装 Node.js 和 Git。
Node.js下载地址
Git下载地址
下载 Node.js 和 Git 程序并安装,一路点 “下一步” 按默认配置完成安装。
安装完成后,Win+R 输入 cmd 并打开,依次输入 node -v、npm -v 和 git –version 并回车,出现程序版本号即可。

连接 Github

使用邮箱注册 GitHub 账户,选择免费账户,并完成邮件验证。
右键 -> Git Bash Here,设置用户名和邮箱:

1
2
git config --global user.name "GitHub 用户名"
git config --global user.email "GitHub 邮箱"
  1. 创建SSH密钥:输入 ssh-keygen -t rsa -C "GitHub 邮箱",然后一路回车。
  2. 添加密匙:进入 [C:\Users\用户名.ssh] 目录(要勾选显示“隐藏的项目”),用记事本打开公钥 id_rsa.pub 文件并复制里面的内容。
    登陆 GitHub ,进入 Settings 页面,选择左边栏的 SSH and GPG keys,点击 New SSH key。
    Title 随便取个名字,粘贴复制的 id_rsa.pub 内容到 Key 中,点击 Add SSH key 完成添加。
  3. 验证连接: 打开 Git Bash,输入 ssh -T git@github.com 出现 “Are you sure……”,输入yes 回车确认。
    显示 “Hi xxx! You’ve successfully……” 即连接成功。

创建 Github Pages 仓库

GitHub 主页右上角加号 -> New repository:

  • Repository name 中输入 用户名.github.io
  • 勾选 “Initialize this repository with a README”
  • Description 选填

填好后点击 Create repository 创建。创建后默认自动启用 HTTPS,博客地址为:https://用户名.github.io
Tips:最好这里的用户名和仓库名称一样哦,会避免很多麻烦。

本地安装 Hexo 博客程序

使用 npm 一键安装 Hexo 博客程序:

1
npm install -g hexo-cli

Mac 用户需要管理员权限(sudo),运行这条命令:

1
sudo npm install -g hexo-cli

等待安装,出现hexo版本号即为安装成功,安装成功后初始化并安装所需组件:

1
2
hexo init      # 初始化
npm install # 安装组件

完成后依次输入下面命令,启动本地服务器进行预览:

1
2
hexo g   # 生成页面
hexo s # 启动预览

访问 http://localhost:4000,出现 Hexo 默认页面,本地博客安装成功!

Tips:如果出现页面加载不出来,可能是端口被占用了。Ctrl+C 关闭服务器,运行 hexo server -p 5000 更改端口号后重试。

Hexo 博客文件夹目录结构如下:

1
2
3
4
5
6
7
├── _config.yml   ## 用于存放网站的配置信息,你可以在此配置大部分的参数
├── package.json
├── scaffolds ## 存放模板的文件夹,当新建文章时,Hexo会根据scaffold来建立文件
├── source ## source是资源文件夹,用于存放用户资源
| ├── _drafts
| └── _posts
└── themes ## themes是主题文件夹,存放博客主题,Hexo 会根据主题来生成静态页面

部署 Hexo 到 GitHub Pages

本地博客测试成功后,就是上传到 GitHub 进行部署,使其能够在网络上访问。
首先安装 hexo-deployer-git:

1
npm install hexo-deployer-git --save

然后修改 _config.yml 文件末尾的 Deployment 部分,修改成如下:

1
2
3
4
deploy:
type: git
repository: git@github.com:用户名/用户名.github.io.git
branch: master

完成后运行 hexo d 将网站上传部署到 GitHub Pages。

完成!这时访问我们的 GitHub 域名 https://用户名.github.io 就可以看到 Hexo 网站了。

绑定域名(可选)

博客搭建完成使用的是 GitHub 的子域名(用户名.http://github.io),我们可以为 Hexo 博客绑定自己的域名替换 GitHub 域名,更加个性化和专业,也利于 SEO。

  1. 域名注册和解析教程:Namesilo 域名购买及使用教程
    按上面教程注册并解析域名,在 DNS 设置部分,删除自带的记录,然后添加 CNAME 记录将 www 域名解析指向 用户名.github.io。

  2. 绑定域名到 Hexo 博客
    进入本地博客文件夹的 source 目录,打开记事本,里面输入自己的域名,如http://www.example.com,保存名称为 “CNAME”,格式为 “所有文件”(无 .txt 后缀)。

清除缓存等文件并重新发布网站:

1
2
3
hexo clean   # 清除缓存文件等
hexo g # 生成页面
hexo s # 启动预览

现在就可以使用自己的域名访问 Hexo 博客了。

  1. 开启 HTTPS
    配置自己的域名后,需要我们手动开启 HTTPS。打开博客所在 GitHub 仓库,Settings -> 下拉找到 GitHub Pages -> 勾选 Enforce HTTPS。
    HTTPS 证书部署成功需要一定时间,等大概几分钟再访问域名,就可以看到域名前面的小绿锁了,HTTPS 配置完成!

常用命令

进入博客所在目录,右键打开 Git Bash Here

1
2
3
4
5
6
7
8
hexo new "name"       # 新建文章
hexo new page "name" # 新建页面
hexo g # 生成页面
hexo d # 部署
hexo g -d # 生成页面并部署
hexo s # 本地预览
hexo clean # 清除缓存和已生成的静态文件
hexo help # 帮助

也可以不使用命令自己创建 .md 文件,只需在文件开头手动加入如下格式 Front-matter 即可,写完后运行 hexo ghexo d 发布。

1
2
3
4
5
6
7
8
9
10
11
---
title: Hello World # 标题
date: 2000/01/01 hh:mm:ss # 时间
categories: # 分类
- Diary
tags: # 标签
- PS3
- Games
---

这里需要补充文章的正文,加油哦

常见问题

  1. 更换主题
    在 Themes | Hexo 选择一个喜欢的主题,比如 NexT,进入网站目录打开 Git Bash Here 下载主题:

    1
    git clone https://github.com/iissnan/hexo-theme-next themes/next

    然后修改 _config.yml 中的 theme 为新主题名称 next,发布。(有的主题需要将 _config.yml 替换为主题自带的,参考主题说明。)

  2. Hexo 设置显示文章摘要,首页不显示全文
    Hexo 主页文章列表默认会显示文章全文,浏览时很不方便,可以在文章中插入 <!--more--> 进行分段。
    该代码前面的内容会作为摘要显示,而后面的内容会替换为 “Read More” 隐藏起来。

  3. 设置网站图标
    进入 themes/主题 文件夹,打开 _config.yml 配置文件,找到 favicon 修改,一般格式为:favicon: 图标地址。(不同主题可能略有差别)

  4. 修改并部署后没有效果
    使用 hexo clean 清理后重新部署。

  5. 开启 HTTPS 后访问网站显示连接不安全
    证书还未部署生效,等待一会儿,清除浏览器缓存再试。

  6. Mac 安装 Hexo 报错无法安装
    Mac 用户需要管理员权限运行,使用 sudo npm install -g hexo-cli 命令安装。

  7. npm 下载速度慢,甚至完全没反应
    使用 npm 安装程序等待很久也没反应,或者下载速度很慢,可以更换 npm 源为国内 npm 镜像。
    临时更换方法:在 npm 安装命令后面加上:--registry https://registry.npm.taobao.org

  8. 站点首页不显示文章全文
    打开主题配置文件 _config.yml 文件,找到如下

    1
    2
    3
    4
    5
     # Automatically Excerpt. Not recommend.
    # Please use <!-- more --> in the post to control excerpt accurately.
    auto_excerpt:
    enable: false
    length: 150

    把这里的false改为true就可以了在首页启动显示文章预览了,length是显示预览的长度。

我们也可以通过在文章使用<!-- more -->标志来精确控制文章的摘要预览,比如这篇文章就是在这个段落的末尾添加了该标志,所以本文在首页的预览就会显示到这个段落为止。

本篇就这样吧,拜拜喽。