「Hexo」1-使用Hexo搭建个人博客

前言

如首篇文章所说的,在很久之前我就想搭建自己的个人博客网站,以前在 csdn 的博客不知道为啥就被封禁了,懒得去申诉了。我也有想过自己开发一个,但是奈何审美水平不高,做一个好的前端页面自觉要花费很多功夫,搭建完成之后还要购买服务器来进行维护,都是比较耗费尽力的,后来找了一轮相关的资料,就找到 Hexo 这个博客的框架。觉得各方面都比较符合我的期望,下面会做一些入门的介绍。

什么是Hexo

Hexo 是是一个快速、简洁且高效的静态博客框架,基于 Node.js 渲染,支持 Markdown 语法且能通过命令行一键部署到 github、heroku、coding 等网站。拥有免费且丰富的主题和插件,可以让你轻松定制你的博客网站。还阿提供了方便的命令行工具,可以帮助你快速搭建、生成和部署你的博客网站。此外文章的本体可以留存在本地备份随时修改。这一点是我比较喜欢的。

官方网站:https://hexo.io/zh-cn/

Github: https://github.com/hexojs/hexo

优点和不足

Hexo 的优点如下:

  • 免费;轻量

  • 基于 Node.js,易于安装和使用。

  • 支持 Markdown 语法,使写作更加简单。

  • 提供丰富的插件和主题,让你可以轻松定制你的博客。

  • 提供方便的命令行工具,可以快速搭建、生成和部署你的博客网站。

  • 原文内容在本地,迁移方便;

Hexo 的缺点如下:

  • 依赖本地环境,不太适用于不同设备上随心发布;
  • 只支持静态网站,不支持动态网站。
  • 对于复杂的网站,可能不太适用。
  • 在某些情况下,它的性能可能不如其他静态网站生成器。
  • 相对于其他类似工具,它的社区支持可能不太完善。

安装前置环境

安装前提:

Github | Gitee| Coding :资源/代码存放的仓库,目前他们均提供了相关的 pages —— 一种免费的静态站点托管服务,让我们可以在仓库里托管和发布自己的静态网站页面。

Nodejs :Hexo 是基于 Node.js 平台开发的,所以你需要先安装 Node.js。(Node 各系统安装教程:【NODE】NODE.JS 安装配置(转)) ,建议使用 Node.js 12.0 及以上版本

Git:Hexo 使用 Git 来管理项目,将本地的 Hexo 内容提交到 Github 上去

如果你没有安装这些前置环境,建议你参阅官方文档,了解如何在你的系统上安装这些软件。

准备 Github Pages 仓库

注册Github帐号

已经有Github帐号跳过此步,首先进入Github进行注册,用户名、邮箱和密码之后都需要用到,自己记好。

在 Shell 中本地全局设置用户名和邮箱

1
2
git config --global user.name "GitHub 用户名"
git config --global user.email "GitHub 邮箱"

创建 SSH 密钥

在 Shell 中运行以下命令并多次回车

1
ssh-keygen -t rsa -C "Github 邮箱"

然后键入以下指令:

1
ssh-agent -s

出现echo Agent pid xxxxx; 继续输入指令:

1
ssh-add ~/.ssh/id_rsa

如果提示错误:Could not open a connection to your authentication agent.则输入以下指令:

1
2
eval 'ssh-agent -s'
ssh-add

会出现如:Identity added: /c/Users/用户/.ssh/id_rsa (/c/users/用户/.ssh/id_rsa)

到了这一步,就可以添加SSH key到你的Github账户了。输入以下指令,拷贝Key(或者进入 [C:\Users\用户名.ssh] 目录(要勾选显示“隐藏的项目”),用记事本打开公钥 id_rsa.pub 文件并复制里面的内容。):

1
clip < ~/.ssh/id_rsa.pub

然后到Github里面,点击右上角个人头像——Settings,在左边菜单栏找到SSH and GPG keys,点击New SSH key,Title 随便命名,Key就粘贴上刚才复制的key,然后点Add SSH key,最后会让你重新输入下gitHub的密码即可

添加完成之后在自己电脑上执行 shell 命令进行测试

1
ssh -T git@github.com

可能会看到有警告,没事,输入“yes”就好

出现类似:Hi xxx! You've successfully authenticated, but GitHub does not provide shell access.就表示SSH配置好了

创建repository

repository相当于一个仓库,用来放置你的代码文件。首先,登陆进入Github,并进入个人页面——右上角自己的头像 —— Your repositories,然后选择Repositories,点击New,新建一个repository

创建时,只需要填写Repository name即可,这个名字的格式必须为 [你的github名称].github.io,例如我的为biuhe.github.io,点击Create repository 即可创建

安装 Hexo

安装好 Node 之后,输入安装 hexo 命令:

1
npm install -g hexo

安装完成后,在自己选定的文件夹下(如 D:\Hexo),执行以下指令

1
hexo init <blog-name>

Hexo 会进行初始化,在目标文件夹建立博客所需要的文件,随后我们安装依赖包:

1
npm install

就已经安装好了,我们可以通过 hexo help (或者 hexo h )来查看 hexo 支持的命令

以下为常用命令:

1
2
3
4
5
6
7
8
hexo help # 帮助
hexo new "文章名称" # 新建文章
hexo new page "页面名称" # 新建页面
hexo g # 完整命令为 hexo generate,用于生成静态文件
hexo d # 完整命令为 hexo deploy,用于将本地文件发布到 github 上
hexo s # 完整命令为 hexo server,用于启动服务器,主要用来本地预览
hexo n # 完整命令为 hexo new,用于新建一篇文章
hexo clean # 清楚缓存文件等

你可以使用以下命令启动本地服务器,浏览并预览你的博客:

1
hexo s

然后用浏览器访问 http://localhost:4000 就可以在本地预览到博客内容了,hexo3.0使用的默认主题是landscape。

如果页面无法加载可能是端口被占用了,可以先在刚才命令窗口Ctrl+C 关闭服务器,使用 hexo server -p 端口号 ,如hexo server -p 5000 指定运行端口为 5000, 然后通过 http://localhost:5000进行访问

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

1
2
3
4
5
6
7
8
9
10
.
├── _config.yml # 网站配置信息
├── db.json # 数据
├── node_modules # node下载的依赖模块(npm install生成的)
├── package-lock.json # 锁定 node 安装模块的版本号
├── package.json # node 依赖模块信息
├── public # 网站文件
├── scaffolds # 模板文件
├── source # 用户资源(存放markdown文档)
└── themes # 主题

部署github

编辑刚才创建的hexo目录下的 _config.yml 文件,在 _config.yml 最下方,添加如下配置(命令中的第一个biuhe为Github的用户名,第二个biuhe为之前New的Repository的名字,记得改成自己的。另外记得一点,hexo的配置文件中任何冒号后面都是带一个空格的,否则会出现异常:ERROR Deployer not found : github)

详细可参考:https://hexo.io/docs/one-command-deployment

1
2
3
4
deploy:
type: git
repo:
github: git@github.com:biuhe/biuhe.github.io.git,master

配置 _config.yml并保存,执行以下命令部署到Github上。

首选生成静态网页。如果你想要将你的博客部署到网站上,你需要生成静态网页。你可以使用以下命令生成静态网页

1
hexo g

在通过 deploy命令部署到网站

1
hexo d

如果执行hexo d命令报下名错:ERROR Deployer not found: git

就需要安装一下 hexo-deployer-git 这个模块:

1
npm install hexo-deployer-git --save

安装好了继续执行hexo d部署命令,输入 github 的账号密码,就可以访问了。我的是: biuhe.github.io

发表一篇文章

1.在Git Bash执行命令:

1
hexo new "my new post"

2.在创建的hexo目录下source/_posts 文件中打开 my-new-post.md

1
2
3
4
5
6
7
title: my new post #可以改成中文的,如“新文章”
date: 2016-02-21 16:04:09 #发表日期,一般不改动
categories: blog #文章文类
tags: [文章] #文章标签,多于一项时用这种格式,只有一项时使用tags: blog
---
#这里是正文,用markdown写,你可以选择写一段显示在首页的简介后,加上
<!--more-->,在<!--more-->之前的内容会显示在首页,之后的内容会被隐藏,当游客点击Read more才能看到。

写完文章后,你可以使用

  1. hexo g 生成静态文件。
  2. hexo s 在本地预览效果
  3. hexo d 同步到 github,然后使用http://github用户名.github.io 进行访问

总结

到这里,就算初步搭好了一个属于自己的独立博客,后续就是本地写文章然后部署最后发布就行。当然这只是最基本的流程,hexo提供了许多好看的主题,后续会进行讲解。

参考

本文摘自:嘟嘟独立

官方中文文档:https://hexo.io/zh-cn/docs/