1. 环境准备
安装 Node.js
官网下载:https://nodejs.org/en/download/
安装 Hexo
打开 Node.js command prompt,在控制台中输入命令:
1 | npm install -g hexo-cli |
2. 设置Hexo
继续在控制台窗口中定位到放置博客的文件夹,输入初始化命令:
1 | hexo init [folder] |
进入目录,然后输入启动本地服务器的命令:
1 | hexo s |
接下来就可以使用浏览器在下面的地址中看到博客页面了:http://localhost:4000
3. 安装主题
接下来安装使用Next主题。
继续在控制台窗口的博客目录下输入命令:
1 | git clone https://github.com/iissnan/hexo-theme-next themes/next |
此命令安装的是Next v5.1.4版本,本文的以下内容均以此版本为讨论环境。需要注意的是,此版本目前已经停止更新维护。如果希望安装更新的7.x版本,可以使用命令:
1 git clone https://github.com/theme-next/hexo-theme-next themes/next
在博客目录下找到_config.yml文件,使用编辑器修改以下内容:
1 | theme: next |
其他可以修改的设置包括:
1 | title: |
4. 主题设置
修改配置文件
在博客目录下找到主题所在目录(\themes\next),在其中找到_config.yml文件,使用编辑器打开后看到以下内容:
1 | home: / || home |
将其中||符号前的空格删除,这样处理后,点击网站页面顶部菜单中的首页和归档就能正常显示了,否则会出现404错误。
创建新页面
如果还需要在页面顶部菜单中添加分类、标签、关于等分类页面的话,除了在上述_config.yml配置文件中打开相应的菜单项之外,还需要在控制台窗口中使用以下命令来创建新页面:
1 | hexo new page "categories" |
也可以在Hexo Admin插件中使用Pages功能来创建新页面,关于Hexo Admin插件的使用方法可以参见下方的安装插件部分。
设置页面类型
在创建上述页面之后,还需要设置他们的页面类型属性,具体做法如下:
在创建页面后,博客目录的source文件夹下方会有categories、tags等文件夹自动生成,使用编辑器打开其中的index.md文件,会显示如下内容:
1 | --- |
可以在其中增加一项type属性,来标识页面的类型,例如:
1 | --- |
这样处理后,点击网页顶部菜单中的分类页面就可以显示文章类别了。
如果希望在这些页面中禁止用户评论,还可以加上代码:
1 | comments: false |
修复侧边栏代码错误
v5.1.4版本在侧边栏中点击日志,会出现404错误,修复这个问题需要修改侧边栏的代码。
在博客目录下找到主题所在目录(\themes\next),然后在\layout_macro路径下找到sidebar.swig文件,使用编辑器打开后找到以下内容:
1 | {% if theme.menu.archives %} |
将上述代码修改为下方的内容(修改一个括号的位置):
1 | {% if theme.menu.archives %} |
这样处理以后,侧边栏中的日志菜单点击以后就可以正常显示页面了。
其他个性化设置
- 去除图片的边框线
在博客目录下找到主题所在目录(\themes\next),然后在source\css_common\components\post路径下找到post-expand.styl文件,使用编辑器打开后找到以下内容:
1 | img { |
修改其中的border设置:
1 | border: none |
- 侧边栏中显示联系方式
在博客目录下找到主题所在目录(\themes\next),在其中找到_config.yml文件,使用编辑器打开后看到以下内容:
1 | #social: |
在其中设置需要显示的社交媒体或链接,例如:
1 | social: |
- 显示部分内容和Read More
在博客目录下找到主题所在目录(\themes\next),在其中找到_config.yml文件,使用编辑器打开后看到以下内容:
1 | # Automatically Excerpt. Not recommend. |
将其中的enable设置为True,网站首页中的文章就会自动在150个字符后显示Read More按钮,如果希望手动控制显示的位置,可以在文章中使用<!-- more -->标签来进行控制。
5. 安装插件
安装Hexo Admin插件:
1 | npm install --save hexo-admin |
安装完成后,可以通过下面的地址使用:
http://localhost:4000/admin
Hexo Admin当中可以创建和编辑文章(Post)和页面(Page),文章的Tags和Categories都可以在其中设置。
6. Github设置
创建Github项目
在Gitgub当中使用New Repository创建一个新项目,命名为:
1 | <username>.github.io |
项目属性设置为公开
完成后会创建出基于这个项目的Github pages,访问地址就是:
1 | https://<username>.github.io |
新增 SSH 密钥
方案一:
在git/cmd目录下打开 git-gui,Help -> Show SSH Key -> Generate Key,会在用户文件夹当中生成id_rsa.pub文件,同时在窗口中显示密钥内容。
方案二:
在git目录下打开git-bash,输入以下命令:
1 | ssh-keygen -t rsa -b 4096 -C "<your_email@example.com>" |
将密钥设置到GitHub
在Github中点击Settings -> SSH and GPG keys -> New SSH key,将id_rsa.pub中的密钥内容复制粘贴并保存。
7. Hexo发布设置
在Hexo中安装Git插件
在Hexo的命令窗口中输入以下命令:
1 | npm install hexo-deployer-git --save |
配置插件
编辑博客目录下的_config.yml文件:
1 | deploy: |
其中repo的地址也可以从git项目的Clone or download当中复制获取
发布内容
在hexo控制台中输入以下命令:
1 | hexo d -g |
8. 私有域名绑定
域名解析
在域名的DNS服务商,为希望绑定的域名添加CNAME记录,解析地址指向:
1 | <username>.github.io |
Github设置
在Github项目的Settings设置当中,找到GitHub Pages的Custom domain选项,填入私有域名
Hexo设置
在博客的文件夹下方找到source目录,在其内部新建一个名称为CNAME的文件,文件内容中填写私有域名
9. Hexo配置详解
1 | # Hexo Configuration |
9. 参考资料
uchuhimo’s blog: 如何使用 Hexo 和 GitHub Pages 搭建这个博客
官方说明文档: Hexo文档