个人博客搭建日记(1)
Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。与其他博客框架相比,Hexo挂在github pages上,不需要购买服务器以及域名备案等操作,对于只想搭建一个个人Blog但不想花太多精力在服务器维护上面的,Hexo是最好的选择。
具体可以参照Hexo官网
准备环境
Node.js
Hexo是基于Node.js构建的,中文官网:去下载
选择版本node.js版本18-20左右。(不要太新也不要太旧)
如果主题想使用Sakura的,选择版本node.js版本12-14!!!
根据安装引导完成安装,打开命令行输入node -v验证是否安装成功。
node.js默认配置npm,因此我们不需要单独下载配置npm。
安装后便是配置环境变量,新建用户环境变量,变量名命名为NODE_PATH ,变量值为你的Node.js的安装路径,之后点击确定,在系统变量中找到“ Path ”,添加Nodejs全局文件夹,也就是刚才新建的 “ node_global ”文件夹的绝对路径。
Git
Git用于将本地项目推送到Github Pages上。
Git下载:去下载,根据安装引导完成安装。
下载的Git版本注意与Node.js兼容
选择安装组件处勾选与下图一样的复选框。

决定初始化新项目(仓库)的主干名字:这里我们选择main,因为github现在默认分支已经改为main。
https://blog.csdn.net/cat_bayi/article/details/128725230安装教程可以跟着这篇文章走一遍。
创建仓库
创建一个公开的仓库,名称为用户名/用户名.github.io(例如aliplin/aliplin.github.io)。
生成和添加SSH:
我们在github上push项目的时候,如果走https的方式,每次都需要输入账号密码,非常麻烦。而采用ssh的方式,就不再需要输入,只需要在github自己账号下配置一个ssh key即可。
检查是否已经存在ssh key(存在则调到第三步)
cd ~/.ssh |
生成ssh key
ssh-keygen -t rsa -C "your_email@example.com" |
获取ssh key 公钥内容
cd ~/.ssh |
添加公钥
github–>settings–>SSH and GPG keys–>new SSH key
将公钥复制粘贴上去即可。
验证
ssh -T git@github.com |
显示出现Hi xxx!You’ve successfully authenticated…即成功
设置成功后,即可不需要账号密码clone和push代码
注意之后在clone仓库的时候要使用ssh的url,而不是https!
安装Hexo
在电脑中某个位置创建博客根目录,这里我在D盘根目录下创建了Blog文件夹。
右键博客根目录,选择“Open Git Bash here”,输入
npm install hexo-cli -g |
终端执行hexo -version出现 Hexo 版本号,说明安装成功。
本地建站
初始化
hexo init ./ |
_config.yml 存放的是博客配置信息, source/_posts 是存放文章的地方。
hexo三件套(本地版):
hexo clean # 清除缓存文件,建议写完文章后执行一次 |
浏览器访问 http://localhost:4000/ 出现下图说明启动成功。
部署到github
安装Git 插件
npm install hexo-deployer-git --save |
打开博客目录下的_config.yml,拉到最后,填写deploy模块。
# Deployment |
注意更换用户名和仓库名。
部署三件套:
hexo c && hexo g && hexo d # hexo d 表示执行部署 |
hexo d要关闭网络加速器【steam++等】才能部署成功,因为他们可能会修改网络流量,甚至可能与
SSL证书验证机制发生冲突,导致失败。
执行成功可以通过 你的用户名.github.io 来访问博客了。
安装问题
- 本地部署和github部署效果不一样:
https://blog.csdn.net/clearloe/article/details/139879493
- 如何将本地项目推送到github的main分支上:
将要推送的文件git打开
git init |
- 本地合并时遇到refusing to merge unrelated histories的错误
https://blog.csdn.net/junruitian/article/details/88361895
Github Action自动化部署
Github Action是 GitHub于2018年10月推出的一个CI\CD服务。
每次部署Hexo都需要运行指令三件套,随着文章越来越多,编译的时间也随之越来越长,通过Github Action,我们只需要在每次完成博客的编写或修改以后,将改动直接push到远程仓库,之后的编译部署的工作统统交给CI来完成即可。
在网站搭建完成后,我还是推荐各位先尽早学习github action,首先,它的作用很明显,可以把最耗时的hexo g -d过程放到线上。而且每次git三部曲只需要提交增量更新的内容,节省大量时间,让我们可以专注于编写博客产出更多优质内容。而且配置github action时需要上传博客源码到git仓库,这一步本身就保证了你能实现源码的版本管理,这样后面即使出了错也可以立刻回滚补救。
在博客根目录下找到.github/workflows文件夹,在内创建文件autodeploy.yml,写入内容(自行修改对应分支):
# 当有改动推送到master分支时,启动Action |
上传具体教程参考:
https://akilar.top/posts/f752c86d/
可能遇到的情况:
自动化部署后,博客变成一片空白,原因可能是输入git add .时出现waring:
warning: in the working copy of 'package-lock.json', LF will be replaced by CRLF the next time Git touches it |
原因是git提示LF会被替换为CRLF。
LF和CRLF都是换行符,但LF(Line Feed)是Unix/Linux系统使用的换行符,而CRLF(Carriage Return + Line Feed)是Windows系统使用的。当Git在Windows上处理文件时,默认会将LF转换为CRLF,以确保文件在Windows上正确显示。反之,在Unix/Linux系统上,Git可能会将CRLF转换为LF。
现在的问题是,当我在Windows上使用Git时,Git检测到文件中的换行符是LF,它会在提交时自动转换为CRLF,或者在工作区转换回来。这会导致一些问题,尤其是在跨平台协作时,如果不同开发者的系统配置不同,可能会出现换行符不一致的情况。
这通常是因为Git的core.autocrlf配置被设置为true,这是Windows的默认设置。
我们修改 Git 全局配置,提交时统一转 LF,检出时不转换
git config --global core.autocrlf input |
再进行git add .三件套即可
git add . |