Hexo是一款基于Node.js的静态博客框架,依赖少易于安装使用,可以方便的生成静态网页托管在GitHub和Coding上,是搭建博客的首选框架。
1. Hexo简介
Hexo: https://github.com/hexojs/hexo 是一个快速、简洁且高效的博客框架。
Hexo的创建者是台湾人,对中文的支持很友好,相关的文档可以选择中文进行查看。
快速、简洁且高效的博客框架
A fast, simple & powerful blog framework
Hexo 使用 Markdown(或其他渲染引擎)解析文章;在几秒钟内,即可利用作者预设的的主题生成静态网页。 相对于其他常见博客框架(如 CSDN, WordPress等), 它具有如下特优点:
1.易于安装,速度快。
Hexo底层基于Node.js。 它对Markdown草稿的处理,及html页面生成的速度非常快;即使是上百个页面,也能够在几秒内瞬间完成渲染。
2.支持Markdown草稿。
Hexo 支持 GitHub Flavored Markdown (GFM) 的所有功能,甚至可以整合 Octopress 的大多数插件。
3.一键部署。
只需一条指令hexo deploy
/ hexo d
即可部署到 GitHub Pages (或Heroku , Coding 等其他平台)。
4.插件和可扩展性。
Hexo具有强大的 API,带来无限的可能:与数种模板引擎(EJS,Pug,Nunjucks)和工具(Babel,PostCSS,Less/Sass)轻易集成。
5.与版本管理工具即时联通。
Hexo通过渲染Markdown草稿,生成的html页面即时储存在对应的博客仓库中,不会丢失。
2. Hexo的安装和搭建
2.1. 安装前提: Git, NodeJS 和Github(或其他)个人public仓库
2.1.1. Git 和NodeJS
安装Hexo前,须确保本机已成功安装Git和Node.js (Node.js 版本需不低于 10.13,建议使用 Node.js 12.0 及以上版本);
2.1.2. GitHub: <*xxx.github.io*> 个人public仓库
同时需提前申请好GitHub个人账号, 以及创建好GitHub个人仓库(需命名为<Github用户名>.github.io
且为’public’仓库。仓库名称一定要加.github.io
,只有这样,将来要部署到GitHub page的时候,hexo相关的命令才会被识别). 未来hexo博客页面将会被保存/部署到这里。
Github用户名的同名仓库将会作为hexo生成的html页面文档的版本仓库, 而对应的hexo博客访问地址通常为: https://<Github用户名>.github.io/
例:
2.2. 安装Hexo (npm install)
打开git-bash或CMD窗口,输入安装命令:
npm install -g hexo-cli
待安装过程完成后,输入hexo -v
; 如果能够看到一系列的版本号, 即为安装成功:
2.3. Hexo的本地初始化及博客内容部署
新建一个文件夹,在这个文件夹下录入: hexo init
。
hexo会将这个文件夹初始化成一个博客专用文件夹。 生成过程需要较长时间,耐心等待即可。
初始化完成后,工作路径下多出了很多个目录和文件:
2.4. /source/_posts/, /public/ 和 /themes/ 路径
2.4.1. /source/_posts/ 路径
未来当我们正式开始使用hexo时, Markdown草稿文档需要预先移动到/source/_posts/
路径下。 经过hexo底层处理,生成html文件。
2.4.2. /public/ 路径
hexo处理Markdown文件,生成的html文档将会输出到/public/
路径下。 生成的html文档将会以时间 (年份/月份/日期)为文件名,储存在相应的子目录下:
2.4.3. /themes/ 路径
Hexo博客支持很多主题: https://hexo.io/themes/; /themes/
路径则用于保存hexo主题配置文件。
Hexo预置的主题是’landscape’。未来我们对hexo熟悉之后,可以根据自己的风格选择新的主题。
2.5. 生成第一个本地博客
初始化完成后,hexo会有一个默认主题以及一个hello-word的默认示例文章。
所以我们可以直接先生成博客来看一下效果。
运行命令:
hexo generate
或 hexo g
此时可以发现,在/public/
路径下已生成hello-world
的html页面:
2.6. 本地查看hexo博客: hexo server
待使用hexo g
命令生成/更新博客文章或更新hexo-theme之后,即可启动本地hexo服务器,在本地localhost查看更新后的hexo博客状态:
hexo server
此时打开浏览器,输入 localhost:4000
即可查看更新后的博客了。
之前hexo预置的名为’hello-world’的文章也可以在文章列表中查看:
3. Hexo博客的远程部署
远程部署指的是: 博客在我们本地生成好了以后部署到远程仓库(如Github, Coding等)。如果远程仓库支持pages服务,即可通过这样的方法发布和更新博客。
要使用远程部署需要预先安装hexo-deployer-git
(注意,这是适用于Git类型仓库的方法),以预先为GitHub创建好SSH 。
3.1. 安装`hexo-deployer-git
命令:
npm install hexo-deployer-git --save
安装完成后, 进入hexo工作路径,修改博客目录配置文件_config.yml
中的deploy
字段:
deploy:
type: git
repo: <git仓库项目地址;即 xxx.github.io. 需为SSH地址>
branch: <分支>
message: <自定义提交说明,选填>
例:
3.2. 远程部署博客文章至Github: hexo d
首先,将编辑完成的Markdown日志草稿文件储存至hexo: /source/_posts/
路径下;
进入Hexo工作目录,依次输入下列的命令,即可将Hexo博客更新到Github中:
#清空静态页面
hexo clean
# 渲染本地静态页面
hexo generate
# 将生成的html静态页面部署至远程Github仓库
hexo deploy
hexo支持命令缩写和组合, 上述命令也可简写为;
hexo clean
hexo g
hexo d
或
hexo clean & hexo g & hexo d
在html推送至github的过程之前,需要预先在本地配置好Github-SSH (RSA)秘钥。
在本地Git-bash执行命令:
ssh-keygen -t rsa -C "<username>"
使用cat命令复制密钥:
cat ~/.ssh/id_rsa.pub
打开浏览器登录自己的Github账号。 点击右上角个人用户头像 –> [settings](https://github.com/settings/profile)
–> (personal settings)SSH and GPG keys
–> new SSH key
。
title可以自定义取名; key中则粘贴git-bash中生成的publickey;
最后点击Add SSH key
即成功。
配置好GitHub SSH之后,再次执行hexo clean & hexo g & hexo d
命令, 即可顺利完成博客的远程deploy。
命令执行成功后,即可在*https://xxx.github.io/*
地址看到更新过的博客:
此时可以注意到, GitHub个人博客仓库也更新了:
4. Hexo的自定义配置
4.1. _config.yml基本配置参数
在文件根目录下的_config.yml是整个hexo框架的配置文件。
大部分的配置都可以在这个文件中定义和修改。详细可参考官方的配置描述:
参数 | 描述 |
title | 网站标题 |
subtitle | 网站副标题 |
description | 网站描述; 主要用于SEO,告诉搜索引擎一个关于这个站点的简单描述。 |
author | 用于主题显示文章的作者 |
language | 网站使用的语言 |
timezone | 网站时区。Hexo 默认使用您电脑的时区。时区列表。如:America/New_York, Japan, 和 UTC 。 |
url | 网站域名 |
permalink | 生成某个文章时的那个链接格式。默认为`:year/:month/:day/:title/`的格式; 也可以定义为其他格式, 具体参考: [https://hexo.io/zh-cn/docs/permalinks](https://hexo.io/zh-cn/docs/permalinks) |
permalink_defaults | 永久链接中各部分的默认值 |
4.2. Hexo themes的更换
Hexo官网提供了很多开源主题,我们可以选择一个更喜欢的主题,应用到自己的博客系统: https://hexo.io/themes/
4.2.1. 获取主题源代码
当我们选好一个主题,可以将这个主题下载至Hexo工作目录themes
路径下:
4.2.2. 配置themes参数
打开_config.yml
文件, 将theme
名称改为新的主题:
注意, themes源码中的_config.yml配置和js/css等属性也可根据个人实际情况进行修改 (有时候themes主题可能会带有开发者的个人配置)。
4.2.3. 重新远程部署Hexo博客
改写相关配置参数后,重新执行hexo c & hexo g & hexo d
命令,即可更新博客: