hexo基础教程(一)
过了这么久,才想起做一个hexo的配置教程,因为帮很多人搭了很多遍,现在总结记录一下吧,也方便下次我复制代码
本文参考猕猴桃大佬的文章,在基础上补充以及修改。
博客搭建与魔改系列教程导航🚥🚥🚥
1.环境与工具准备
本教程主要面对的是Windows用户
- 打开Node官网,下载和自己系统相配的Node的安装程序,否则会出现安装问题。下载地址:https://nodejs.org/en/download/
- 下载后安装,安装的目录可以使用默认目录【D:/Program Files/nodejs/】,也可以自定义路径。
- 这个环境路径切换坑也很多,如果大家C盘空间足够可以直接装C盘,如果想切换其他盘或者把环境遍历切换到自定义路径也可以,具体教程百度(不过坑比较多就是了)!
- 安装完成后,检查是否安装成功。在键盘按下win + R键,输入CMD,然后回车,打开CMD窗口,执行node -v命令,看到版本信息,则说明安装成功。
- 修改npm源。npm下载各种模块,默认是从国处服务器下载,速度较慢,建议配置成淘宝镜像。打开CMD窗口,运行如下命令:不过经过我的测试我觉得换成下面的国内告高速镜像源也不错
1
npm config set registry https://registry.npm.taobao.org
想要还原默认源的话,执行如下命令:1
npm config set registry https://registry.npmmirror.com
1
npm config set registry https://registry.npmjs.org
3.Hexo安装
- 在
Git BASH
输入如下命令安装1
npm install -g hexo-cli
- 安装完后输入hexo -v验证是否安装成功。
- 这里方便一次性安装和初始化,我们直接使用这个命令即可
1
2
3
4
5
6npm install hexo-cli -g
hexo init blog
cd blog
npm install
hexo server4.Github注册与创建仓库
- 进入官网 https://github.com/
点击右上角的 Sign up(注册) - 填写自己的邮箱、密码、用户名等信息,然后用邮箱验证即可完成。
- 注册完成后,点击右上角的
+
按钮,选择New repository
,创建一个<用户名>.github.io
的仓库。注意:
- 仓库的格式必须为:
<用户名>.github.io
(注意:前缀必须为用户名,不要等后面404了再来为什么!!!) - Description:为描述仓库(选填)
- 勾选 Initialize this repository with a README 初始化一个 README.md 文件
- 点击 Creat repository 进行创建
5. Git安装
- 进入官网:https://git-scm.com/downloads ,由于官网下载太慢可以通过淘宝的开源镜像下载 网址:https://registry.npmmirror.com/binary.html?path=git-for-windows/v2.36.1.windows.1/ ,下载版本更具自己的需求选择即可。
- 下载后傻瓜式安装Git即可,安装的目录可以使用默认目录【D:/Program Files/Git】,也可以自定义路径。
- 点击电脑左下角开始即可看见
Git Bash
。Git CMD
是windows命令行的指令风格Git Bash
是linux系统的指令风格(建议使用)Git GUI
是图形化界面(新手学习不建议使用) - 常用命令
1
2
3git config -l //查看所有配置
git config --system --list //查看系统配置
git config --global --list //查看用户(全局)配置 - 配置用户名和邮箱通过
1
2git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"git config -l
检查是否配置成功,至此git安装及配置全部完成。6.连接至Github
- 执行以下命令生成ssh公钥,此公钥用于你的计算机连接Github之后打开C盘下用户文件夹下的
1
ssh-keygen -t rsa -C "你的邮箱"
.ssh
的文件夹,会看到id_rsa.pub
用记事本打开上述图片中的公钥(id_rsa.pub),复制里面的内容,然后开始在github中配置ssh密钥。 - 将 SSH KEY 配置到 GitHub
进入github,点击右上角头像 选择settings
,进入设置页后选择SSH and GPG keys
,名字随便起,公钥填到Key
那一栏。 - 测试连接如果出现
1
ssh -T git@github.com
Hi XXX! You've successfully authenticated, but GitHub does not provide shell access.
,则说明连接成功,至此完成了环境准备工作。
如果出现ssh: connect to host github.com port 22: Connection timed out
,则说明连接失败,需要检查网络连接。
如果出现Are you sure you want to continue connecting (yes/no/[fingerprint])?
,输入yes
即可。7.初始化 Hexo 项目
- 在目标路径(我这里选的路径为【D:/hexo】)打开cmd命令窗口,执行
hexo init
初始化项目。魔改后不要输入hexo init,否则会重置
如果第三步安装hexo时你已经做过这个步骤,不需要做此步了,跳到第3点去看即可
1
hexo init blog(项目名)
- 进入
blog
,输入npm i
安装相关依赖。初始化项目后,1
2cd blog //进入blog文件夹
npm iblog
有如下结构:
- 【node_modules】:依赖包
- 【scaffolds】:生成文章的一些模板
- 【source】:用来存放你的文章
- 【themes】:主题
- 【.npmignore】:发布时忽略的文件(可忽略)
- 【_config.landscape.yml】:主题的配置文件
- 【config.yml】:博客的配置文件
- 【package.json】:项目名称、描述、版本、运行和开发等信息
- 输入
hexo server
或者hexo s
启动项目 - 打开浏览器,输入地址:
http://localhost:4000/
,看到下面的效果,说明你的博客已经构建成功了。8.将静态博客挂载到 GitHub Pages
- 安装
hexo-deployer-git
上传插件修改 _config.yml 文件1
npm install hexo-deployer-git --save
在blog目录下的_config.yml,就是整个Hexo框架的配置文件了。可以在里面修改大部分的配置。详细可参考官方的配置描述。
修改最后一行的配置,将repository修改为你自己的github项目地址即可,还有分支要改为main
代表主分支(注意缩进)。1
2
3
4deploy:
type: git
repository: git@github.com:用户名/用户名.github.io.git
branch: main - 修改好配置后,运行如下命令,将代码部署到 GitHub(Hexo三连)。
Git BASH终端vscode终端1
hexo clean && hexo generate && hexo deploy
1
hexo clean; hexo generate; hexo deploy
- hexo clean:删除之前生成的文件,若未生成过静态文件,可忽略此命令。可以用
hexo cl
缩写 - hexo generate:生成静态文章,可以用
hexo g
缩写 - hexo deploy:部署文章,可以用
hexo d
缩写如果出现注意:deploy时可能要你输入 username 和 password。
Deploy done
,则说明部署成功了。
稍等两分钟,打开浏览器访问:https://用户名.github.io
,这时候我们就可以看到博客内容了。9.无法连接至Github的解决方案
注意:当你在与Github进行ssh通信时候出现超时或者是连接被关闭的情况,可以尝试以下解决方案。
- 挂代理和换网络(这个就不用多说了)
- Git问题:解决“ssh:connect to host github.com port 22: Connection timed out”
这是评论区的朋友提供的,可以解决SSH连接超时等问题 - 开源项目Github520
通过修改Host文件的方法解决访问速度慢的问题
连接有效性检验:1
2
3# 任选其一即可
ping github.com
ssh -T git@github.com
10.安装主题
本教程用的 🦋 hexo-theme-butterfly 主题 v4.13.0
本教程用的是npm方式安装的 hexo-theme-butterfly
,后续魔改时更改的文件都是【D:/hexo/blog/node_modules/hexo-theme-butterfly】文件夹中的文件。如果你是git clone克隆方式安装的主题,请在【D:/hexo/blog/themes/butterfly】文件夹下修改对应的文件。
注意:此方法只支持 Hexo 5.0.0以上版本!
在你的博客根目录(我这里路径为【D:/hexo/blog】)打开Git BASH
命令窗口执行npm i hexo-theme-butterfly
1
npm i hexo-theme-butterfly
安装成功后可在【D:/hexo/blog/node_modules】文件夹下找到hexo-theme-butterfly文件夹
升级方法:在博客根目录下,运行 npm update hexo-theme-butterfly
。
升级前请将hexo-theme-butterfly
文件夹备份,npm更新会直接覆盖成新的包。
在你的博客根目录里(我这里路径为【D:/hexo/blog】),打开Git BASH
工具,执行命令即可。
1 | git clone -b 4.5.0 https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly |
安装成功后可在【D:/hexo/blog/themes】文件夹下找到butterfly
文件夹,可以将landscape
文件夹删掉。
升级方法:在主题目录下,运行git pull
。
在你的博客根目录里(我这里路径为【D:/hexo/blog】),打开Git BASH
工具,执行命令即可。1
git clone -b 4.5.0 https://gitee.com/iamjerryw/hexo-theme-butterfly.git themes/butterfly
升级方法:在主题目录下,运行git pull
。
11.应用主题
- 修改站点配置文件
_config.yml
,把主题改为butterfly
1
theme: butterfly
- 如果你没有
pug
以及stylus
的渲染器,请下载安装,这两个渲染器是Butterfly
生成基础页面所需的依赖包:为了减少升级主题后带来的不便,请使用以下方法(建议,可以不做,高度魔改的一般都不会升级主题了,不然魔改的会被覆盖掉)1
npm install hexo-renderer-pug hexo-renderer-stylus --save
把主题文件夹中的 _config.yml
复制到 Hexo
根目录里(我这里路径为【D:/hexo/blog】),同时重新命名为 _config.butterfly.yml
。以后只需要在 _config.butterfly.yml
进行配置即可生效。Hexo会自动合併主题中的_config.yml
和_config.butterfly.yml
里的配置,如果存在同名配置,会使用_config.butterfly.yml
的配置,其优先度较高。
12.快速安装汇总代码
确保Nodejs/Git环境已经安装好,然后打开Git BASH
工具或者cmd,执行以下命令安装hexo:1
2
3
4
5
6npm install hexo-cli -g
hexo init blog
cd blog
npm install
hexo server
安装主题及渲染器、deploy插件、word-count插件:1
2
3npm i hexo-theme-butterfly
npm install hexo-renderer-pug hexo-renderer-stylus --save
npm install hexo-deployer-git --save
下载插件(可选):1
npm install hexo-wordcount --save
13.解决问题
npm国内速度慢1
npm config set registry https://registry.npmmirror.com
如果是终端安装,提示不能运行npm脚本1
2. : 无法加载文件 C:\Users\用户名\Documents\WindowsPowerShell\profile.ps1
因为在此系统上禁止运行脚本。有关详细信息,请参阅
使用下述命令允许所有脚本运行即可1
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
配置文件复制
1 | # -------------------------------------- |
- post草稿
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16# 标题
title: {{ title }}
date: {{ date }}
author: #作者
# 简述
description:
# 标签
tags:
# 分类
categories:
# 使用自定义封面
# img:
# 是否置顶true,或者去掉
top:
# 轮播
cover: