Hexo博客搭建与个性化定制指南
1.什么是 Hexo?
Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他标记语言)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。
2.为什么使用Hexo?
完全免费;静态站点,轻量快速;可按需求自由定制改造;托管在 GitHub,安全省心;迁移方便。
3.部署准备工作
3.1.安装依赖
如果您的电脑中已经安装上述必备程序,那么恭喜您!你可以直接前往下一步骤。
如果您的电脑中尚未安装所需要的程序,请根据以下安装指示完成安装。
3.1.1.安装 Git
前往git官网下载并安装。但本人实测了官网下载速度实在太慢,推荐使用镜像下载站下载山东大学镜像下载站,感谢山东大学。
3.1.2.安装 Node.js
前往Node.js官网下载并安装。附送淘宝 Node.js 镜像下载链接。
另外如果不想因为npm安装让C盘变红最好跟着下面这篇博客设置一下【node_global】和【node_cache】的环境变量。Node.js下载安装及环境配置教程【超详细】_nodejs下载-CSDN博客
3.2.创建 Github Pages 仓库
连接 Github
使用邮箱注册 GitHub 账户,选择免费账户(Free),并完成邮件验证。
右键 -> Git Bash Here,设置用户名和邮箱:
1 |
|
创建 SSH 密匙:
输入 ssh-keygen -t rsa -C "GitHub 邮箱"
,然后一路回车。
添加密匙:
进入 [C:\Users\用户名.ssh] 目录(要勾选显示“隐藏的项目”),用记事本打开公钥 id_rsa.pub 文件并复制里面的内容。
登陆 GitHub ,进入 Settings 页面,选择左边栏的 SSH and GPG keys,点击 New SSH key。
Title 随便取个名字,粘贴复制的 id_rsa.pub 内容到 Key 中,点击 Add SSH key 完成添加。
验证连接:
打开 Git Bash,输入 ssh -T git@github.com
,显示 “Hi xxx! You’ve successfully……” 即连接成功。
GitHub 主页右上角加号 -> New repository:
- Repository name 中输入
用户名.github.io
- 勾选 “Initialize this repository with a README”
- Description 选填
填好后点击 Create repository 创建。
4.部署 Hexo 到 GitHub Pages
所有必备的应用程序安装完成后,即可使用 npm 安装 Hexo。
1 |
|
安装以后,可以使用以下两种方式执行 Hexo:
npx hexo <command>
- Linux 用户可以将 Hexo 所在的目录下的
node_modules
添加到环境变量之中即可直接使用hexo <command>
:
1 |
|
新建hexo工作目录MyBlogCode
,右击打开git bash,初始化运行Hexo
1 |
|
完成后依次输入下面命令,启动本地服务器进行预览:
1 |
|
访问 http://localhost:4000
,出现 Hexo 默认页面,本地博客安装成功!
Tips:如果出现页面加载不出来,可能是端口被占用了。Ctrl+C 关闭服务器,运行 hexo server -p 5000
更改端口号后重试。
本地博客测试成功后,就是上传到 GitHub 进行部署,使其能够在网络上访问。
首先安装 hexo-deployer-git:
1 |
|
然后修改 _config.yml 文件末尾的 Deployment 部分,修改成如下:
1 |
|
完成后运行 hexo d
将网站上传部署到 GitHub Pages。
完成!这时访问我们的 GitHub 域名 https://用户名.github.io
就可以看到 Hexo 网站了。
5.绑定域名
博客搭建完成使用的是 GitHub 的子域名("GitHub 用户名".github.io
),我们可以为 Hexo 博客绑定自己的域名替换 GitHub 域名,更加个性化和专业,也利于SEO。
用Cloudflare添加我们需要托管的域名,网站–域名–DNS–添加记录,类型我们选择CNAME
,主机名我直接填的是@
,目标填写"GitHub 用户名".github.io
,同时让Cloudflare帮我们代理一下,自动加上Cloudflare Origin CA 证书认证。
回到github pages的项目地址,进入Settings-Pages-Custom domain,填写域名,点击save,静静等待DNS验证。此时你会发现在项目根目录下多出来一个名为CNAME的文件,里面填写了你的域名,且文件没有后缀。
DNS验证通过后就可以使用自己的域名访问 Hexo 博客了。
6.开始使用
进入博客所在目录,右键打开 Git Bash Here,创建博文:
1 |
|
然后 source_posts 文件夹中会出现一个 My New Post.md 文件,就可以使用 Markdown 编辑器在该文件中撰写文章了。
写完后运行下面代码将文章渲染并部署到 GitHub Pages 上完成发布。
1 |
|
也可以不使用命令自己创建 .md 文件,只需在文件开头手动加入如下格式 Front-matter 即可,写完后运行 hexo g
和 hexo d
发布。
1 |
|
7.网站设置
包括网站名称、描述、作者、链接样式等,全部在网站目录下的 _config.yml 文件中,参考官方文档按需要编辑。
注意:冒号后要加一个空格!
8.更换主题
在 Themes | Hexo 选择一个喜欢的主题,比如 Stellar,进入博客目录打开 Git Bash Here 下载主题:
8.1.安装方法
- 打开终端并进入博客文件夹,执行:
1
npm i hexo-theme-stellar
- 在
MyBlogCode/_config.yml
文件中找到并修改:
1 |
|
8.2.更新方法
- 打开终端并进入博客文件夹,执行:
1 |
|
- 阅读 更新日志 进行迁移操作。
9.常用命令
1 |
|
10.遇到的问题
10.1 Hexo发布到Github丢失readme和CNAME解决方案
方法一(推荐):将需要上传至github的内容放在source文件夹,例如CNAME、README.md、favicon.ico、images等,这样在 hexo d 之后就不会被删除了。
方法二:安装插件实现永久保留。
1 |
|
之后在_config.yml中添加一条
1 |
|
需要注意的是:如果是在github上建立的CNAME文件,需要先clone到本地,然后安装插件,再deploy到GitHub Pages上即可。CNAME只允许一个域名地址。
10.2 添加及正确显示README.md文件
在source文件夹中新建README.md,再使用hexo g
以及hexo d
生成并部署后会发现GitHub.io仓库下的README.md文件变成了以.html结尾的文件。
变成html原因是当我们执行hexo g
以及hexo d
指令时md文件会被转换为html文件并被存放在public文件夹内,最后在提交到github.io项目下。为了让md文件格式不转换为html,可以在根目录下_config.yml
配置文件中的skip_render
关键字后面添加README.md,让解释器跳过渲染即可
1 |
|