如果你要搭建个人博客网站,更注重内容的输出,而不是把时间花在网站的维护上,那么,通过Hexo来构建个人博客网站是一个很不错的选择。
前言
Hexo 是一个基于 Node.js的快速、简洁且高效的博客框架,通过 Hexo 你可以轻松地使用 Markdown 编写文章,除了 Markdown 本身的语法之外,还可以使用 Hexo 提供的 标签插件 来快速的插入特定形式的内容。
准备工作
准备工作主要配置相关环境和基本要求,新手建议在安装或注册账号时先使用搜索引擎了解详细的安装配置方法,避免后续出错。
GitHub账号
如没有使用过GitHub,前往GitHub注册一个账号,并了解下GitHub基本信息 ,此处省略...
安装git
- Windows:下载并安装 git 。
- Mac:使用 Homebrew, MacPorts :
brew install git
;或下载 安装程序 安装。 - Linux (Ubuntu, Debian):
sudo apt-get install git-core
检验是否安装成功: $ git version
安装Node.js
去 Node.js 官网下载所需系统的安装包,并根据提示安装即可。Node.js版本及对应的hexo版本如下:
Hexo 版本 | 最低兼容 Node.js 版本 |
---|---|
5.0+ | 10.13.0 |
4.1 - 4.2 | 8.10 |
4.0 | 8.6 |
3.3 - 3.9 | 6.9 |
3.2 - 3.3 | 0.12 |
3.0 - 3.1 | 0.10 or iojs |
0.0.1 - 2.8 | 0.10 |
检验是否安装成功: $ node -v
安装hexo
上述两个必备程序安装成功之后,只需要通过npm便可以完成Hexo的安装了。 $ npm install -g hexo-cli
至此,完成环境配置。
本地部署
本地初始化
安装 Hexo 完成后,请执行下列命令,Hexo 将会在指定文件夹中新建所需要的文件。
1 | $ hexo init <folder> |
本地目录结构
新建完成后,指定文件夹的目录如下:
1 | . |
- _config.yml
网站的 配置 信息,您可以在此配置大部分的参数。
- package.json
应用程序的信息。EJS, Stylus 和 Markdown renderer 已默认安装,您可以自由移除。
1 | package.json{ |
- scaffolds
模版 文件夹。当您新建文章时,Hexo 会根据 scaffold 来建立文件。
Hexo的模板是指在新建的文章文件中默认填充的内容。例如,如果您修改scaffold/post.md中的Front-matter内容,那么每次新建一篇文章时都会包含这个修改。
- source
资源文件夹是存放用户资源的地方。除 _posts
文件夹之外,开头命名为 _
(下划线)的文件 / 文件夹和隐藏的文件将会被忽略。Markdown 和 HTML 文件会被解析并放到 public
文件夹,而其他文件会被拷贝过去。
- themes
主题 文件夹。Hexo 会根据主题来生成静态页面。
启动本地服务
在指定文件夹下,执行以下命令
1 | hexo g //或者hexo generate |
hexo s
是开启本地预览服务,打开浏览器访问 http://localhost:4000 即可看到内容。到这里,本地的一些基本部署就基本完成了,接下来将本地部署推送至github,并通过访问github静态页面显示。
远程部署
创建仓库
新建一个名为username.github.io
的仓库,创建成功后,默认会在你这个仓库里生成一些示例页面,以后你的网站所有代码都是放在这个仓库里。
绑定域名
配置SSH key
首先在本地创建ssh key
:
1 | ssh-keygen -t rsa -C "your_email@youremail.com" |
后面的your_email@youremail.com
改为你在github上注册的邮箱,之后会要求确认路径和输入密码,我们这使用默认的一路回车就行。成功的话会在~/
(windows路径:/c/Users/username/)下生成.ssh
文件夹,进去,打开id_rsa.pub
,复制里面的key
。
回到github上,进入 Account Settings(账户配置),左边选择SSH Keys,Add SSH Key,title随便填,粘贴在你电脑上生成的key。
为了验证是否成功,在git bash下输入:
1 | $ ssh -T git@github.com |
如果是第一次的会提示是否continue,输入yes就会看到:You've successfully authenticated, but GitHub does not provide shell access 。这就表示已成功连上github。
接下来我们要做的就是把本地仓库传到github上去,在此之前还需要设置username和email,因为github每次commit都会记录他们。
1 | $ git config --global user.name "your name" |
远程推送
1 | $ npm install hexo-deployer-git --save |
修改配置本地配置文件_config.yml。
1 | deploy: |
Hexo 提供了快速方便的一键部署功能,让您只需一条命令就能将网站部署到服务器上。
1 | hexo clean |
其中, hexo clean
清除了你之前生成的东西,也可以不加。 hexo generate
顾名思义,生成静态文章,可以用 hexo g
缩写。
hexo deploy
部署文章,可以用hexo d
缩写。
现在,在浏览器中输入username.github.io
,便可以打开网页了。接下来,需要对hexo进行基本配置和主题配置。
配置
基本配置
这部分网上有很多写的比较好的,详见附录参考。
主题配置
Hexo提供多种主题配置,参见hexo官网主题界面,这里配置的是Next主题,简洁才是最美的。在 Hexo 中有两份主要的配置文件,其名称都是 _config.yml
。 其中,一份位于站点根目录下,主要包含 Hexo 本身的配置;另一份位于主题目录下,这份配置由主题作者提供,主要用于配置主题相关的选项。
为了描述方便,在以下说明中,将前者称为 站点配置文件, 后者称为 主题配置文件。Hexo 安装主题的方式非常简单,只需要将主题文件拷贝至站点目录的 themes
目录下, 然后修改下配置文件即可。具体到 NexT 来说,安装步骤如下。
下载主题
如果你熟悉 Git, 建议你使用 克隆最新版本 的方式,之后的更新可以通过 git pull
来快速更新, 而不用再次下载压缩包替换。
在终端窗口下,定位到 Hexo 站点目录下。使用 Git
checkout 代码:
1 | $ cd your-hexo-site |
启用主题
与所有 Hexo 主题启用的模式一样。 当 克隆/下载 完成后,打开 站点配置文件, 找到 theme
字段,并将其值更改为 next
。
启用 NexT 主题
1 | theme: next |
到此,NexT 主题安装完成。下一步我们将验证主题是否正确启用。在切换主题之后、验证之前, 我们最好使用 hexo clean
来清除 Hexo 的缓存。
验证主题
首先启动 Hexo 本地站点,并开启调试模式(即加上 --debug
),整个命令是 hexo s --debug
。 在服务启动的过程,注意观察命令行输出是否有任何异常信息,如果你碰到问题,这些信息将帮助他人更好的定位错误。 当命令行输出中提示出:
1 | INFO Hexo is running at http://0.0.0.0:4000/. Press Ctrl+C to stop. |
此时即可使用浏览器访问 http://localhost:4000
,检查站点是否正确运行。
当你看到站点的外观与下图所示类似时即说明你已成功安装 NexT 主题。这是 NexT 默认的 Scheme —— Muse

现在,你已经成功安装并启用了 NexT 主题。下一步我们将要更改一些主题的设定,包括个性化以及集成第三方服务。
文件组成
包含主题文件,整个hexo文件结构目录如下:
1 | . |
Next主题目录如下:
1 | ├── .github #github信息 |
可以根据自己的需要进行适当修改。
选项配置
在配置Next主题时一些细节已经遗忘,主要是参照参考项中一些博客,可根据个人需求进行配置,以下简单列举在配置主题时的一些设置项:
页面&菜单布局
采用Next主题中的Gemini布局,菜单栏在侧栏,主题配置文件如下
1
2
3
4
5# Schemes
#scheme: Muse
#scheme: Mist
#scheme: Pisces
scheme: Gemini菜单中含几个类别,我想把不同的文章归类在不同类别下显示,总的目录是categories/,比如新建一个类别skill,则在主题配置文件中修改如下:
1
2
3menu:
home: / || fa fa-home
skill: /categories/skill/ || fa fa-arrow-down在-CN.yml文件中修改中文映射,这样在主页时就会按映射的中文显示
1
2
3
4menu:
home: 首页
categories: 分类
skill: 问术然后在根目录,并在该目录生成文件index.md
1
2
3title: 问术
layout: "skill"
comments: false这样,点击主页的“问术”按钮,则会显示skill分类页面
网站映射
通过上述方式创建的skill页面的网址链接中会存在中文符,为了改成英文,在根目录下的站点配置文件中修改映射值,将链接中的中文映射为英语,这样就不会乱码了
1
2
3
4
5
6
7
8
9# Category & Tag
default_category: uncategorized
category_map:
问术: skill
tag_map:
#算法
算法: algorithm
滤波: filter
点云: point cloud文章模板配置
以下是post模板,其中,公式采用mathjax渲染,增加来显示摘要。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24---
title: {{ title }}
urltitle:
date: {{ date }}
update:
top: false
toc: true
comments: true
mathjax: true
keywords:
description:
tags:
categories:
- 111
- 222
- 333
---
摘要显示....
<!-- more -->公式
首选,安装pandoc,然后,卸载hexo默认的markd,安装
hexo-renderer-pandoc
1
2npm uninstall hexo-renderer-marked --save
npm install hexo-renderer-pandoc --save安装hexo-math 插件以支持 latex 公式
1
npm install hexo-math --save
在hexo 博客中的 _config.yml 中添加 hexo-math 插件
1
2
3
4
5
6
7
8markdown:
plugins:
- markdown-it-footnote
- markdown-it-sup
- markdown-it-sub
- markdown-it-abbr
- markdown-it-emoji
- hexo-math打开 theme/next/_config.yml 文件,找到mathjax 位置, 设置为以下
1
2
3
4# MathJax Support
mathjax:
enable: true
per_page: truemarkdown插入图片
首先,修改站点配置文件
_config.yml
中的post_asset_folder: true
然后,使用typora编辑MarkDown文件,并在图片设置项选择“复制到指定路径”,./${filename}
最后,使用
hexo new “我的博客”
,在文章目录创建新文章,并且创建同名文件夹存放图片
日常写作
新建文章
1
hexo new [layout] <title>
在命令中指定文章的布局(layout),默认为
post
,可以通过修改_config.yml
中的default_layout
参数来指定默认布局。生成静态文件
1
$ hexo g
服务器查看更新
1
$ hexo s
远程部署
1
hexo d