1. 环境准备
- 安装git
- 安装nodejs
- 在cmd或git命令行中,执行以下命令安装hexo。
1 | npm install -g hexo-cli |
如果后续有些命令无法识别,可能说明安装完需要重启一下电脑。
2. 仓库创建
创建一个GitHub仓库,仓库名固定用户名.github.io。
仓库默认包含一个主分支main,再手动创建一个分支hexo。
- main:存放编译后的静态页面,访问的博客也就是此处的内容。
- hexo:存放编译前的源码文件,在此处进行文档编写,此分支用来在多设备同步内容。
在github仓库设置中,找到Pages,找到Build and deployment,选择从分支获取资源,分支选择main,然后保存。
3. 创建博客
创建一个空的文件夹Blog,并在此文件夹中打开git命令。
按顺序调用这三行命令。
1 | hexo init // 初始化,将本文件夹初始化为博客文件夹 |
执行效果如下
1 | XCHARGE-2024Q2-LT003@LAPTOP-F010DA3K MINGW64 ~/Desktop/Blog |
执行完成后,将最后的地址http://localhost:4000/复制到浏览器即可看到默认的博客效果。
4. 修改主题
4.1 下载主题源码
在官网自带的主题https://hexo.io/themes/中找到一个喜欢的主题,这里选择NexT主题
按照github中提供的教程,将主题仓库clone到Blog/theme文件夹下。
1 | XCHARGE-2024Q2-LT003@LAPTOP-F010DA3K MINGW64 ~/Desktop/Blog |
可以看到多出了Blog/theme/next这个文件夹。
4.2 主题美化
4.2.1 主题基本信息
修改主题标志,打开Blog/_config.yml这个文件,找到最下面的theme字段,修改为目标主题next,然后保存。
1 | # Extensions |
语言修改,还是这个文件,找到language: en,修改为中文。
1 | language: zh-CN |
网站显示的基本信息如下:
1 | # Site |
4.2.2 布局信息美化
这个主题内部还有很多其他的配置项,保存在Blog\themes\next\_config.yml,但是NexT文档不推荐直接修改此文件,建议修改方式如下:
将主题文件夹下默认的配置文件Blog\themes\next复制到项目根目录并重命名为Blog\_config.next.yml
1 | cp themes/next/_config.yml _config.next.yml |
主题布局选择
主题内部还分为四种不同的主题布局,配置方式如下:
将Blog\_config.next.yml文件中的如下字段选择如下:
1 | # Schemes |
4.2.3 分类和标签功能
Blog\_config.next.yml文件下,找到以下字段,根据需要打开对应的菜单项
1 | menu: |
其中使用的菜单图标都是来自于Font Awesome,可以在这个网站找到自己喜欢的图标后,把图标名称写在 || 后面即可。
此时,当我们在首页点击 标签 或 分类 时,会报 404 ,这是因为我们还没有创建对应的文件夹,所以报 404 找不到。因此,需要在本地创建标签和分类文件夹。
1 | hexo new page 'tags' # 创建tags子目录 |
执行效果如下,本地会多出来两个文件夹。
1 | XCHARGE-2024Q2-LT003@LAPTOP-F010DA3K MINGW64 ~/Desktop/imhaozi.github.io (hexo) |
此时如果重新发布网站之后,页面不会报错,但是还不能自动检索文章,需要在刚才生成的文件夹中的index.md 中增加对应的 type 属性。
添加完之后如下:
categories下的index
1 | --- |
tags下的index
1 | --- |
新发布的文章也需要加上对应的标签和主题才可以被检索到,比如本文章。
1 | --- |
上面这个文章,属于
工具类别,标签加了两个hexo、blog.
4.2.4 首页不显示全文
网站首页默认会将文章全文显示,但是一般都不是我们想看的内容,可以选择把文章都只显示一个概要,然后可以点进去再看全文。
只需要在文章头部添加description字段即可。
1 | --- |
4.2.5 文章搜索功能
安装插件
1 | npm install hexo-generator-search --save |
安装效果如下
1 | XCHARGE-2024Q2-LT003@LAPTOP-F010DA3K MINGW64 ~/Desktop/imhaozi.github.io (hexo) |
Blog\_config.next.yml文件下,添加如下字段(默认是没有这个字段的)
1 | search: |
然后将以下字段修改使能
1 | # Local Search |
4.2.6 隐藏底部强力驱动
Blog\_config.next.yml文件下
1 | # Powered by Hexo & NexT |
4.2.7 目录自己编号
主题默认会给文章目录加编号,如果我们自己已经加了编号了就会重复,需要关掉此功能。
Blog\_config.next.yml文件下
1 | toc: |
4.2.8 文章默认格式
在 Hexo 根目录下 修改 scaffolds/post.md
1 | title: {{ title }} |
4.2.9 代码块格式和复制按钮
Blog\_config.next.yml文件下
1 | codeblock: |
4.2.10 文章阅读进度
Blog\_config.next.yml文件下
1 | # Reading progress bar |
4.2.11 文章和图片单独创建文件夹
Blog/_config.yml这个文件
1 | post_asset_folder: true |
4.3 重新运行
执行下面三行命令,重新生成静态文件。
1 | hexo clean |
执行完成后,将最后的地址http://localhost:4000/复制到浏览器即可看到修改后的主题博客效果。
5. github推送
打开Blog/_config.yml这个文件,找到最下面的deploy字段,添加如下信息,然后保存。其中repo为仓库的链接。
1 | # Deployment |
安装git部署插件
1 | XCHARGE-2024Q2-LT003@LAPTOP-F010DA3K MINGW64 ~/Desktop/Blog |
重新生成界面并推送到远端。
1 | hexo clean |
完成后在浏览器中访问用户名.github.io即可访问博客内容。
6. 多端同步
本机操作:
- 将远端仓库克隆到本地,并切换到
hexo分支。并将此分支下的文件都删掉,仅留下.git - 将创建的
Blog文件夹中的内容全部复制到,hexo分支的仓库文件夹,并删去.deploy_git文件夹 - 如果你在
Blog/themes文件夹下 clone 过其它主题文件,把其中的.git文件夹删除掉 - 将
hexo分支的内容推送到远端
异地操作:
- 首次创建博客的电脑需要先将首次创建完成的博客源码推送到远端(上面的步骤)
- 本机下载已经上传到远端的源码
- 本机安装环境
npm install hexo-cli -g、npm install hexo-deployer-git --save(如果创建的博客还需要其他的就分别安装) - 在本机的
hexo分支上继续写博客,写完之后生成并推送 - 博客推送完成后,记得把源码推送到远端。
7. 博客图片显示
安装图片插件
1 | npm install https://github.com/CodeFalling/hexo-asset-image --save |
修改配置,打开Blog/_config.yml这个文件,找到最下面的post_asset_folder字段
1 | post_asset_folder: true |
后面新建文章的时候,会自动创建同文件名的文件夹(或者手动创建md文件和文件夹),图片都可以放到这个文件夹下。
插入图片的时候,采用如下形式。
1 |  |