搭建Hexo博客部署到GitHub上(2022)
参照官网的文档进行安装和部署
Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。
hexo官网:https://hexo.io/zh-cn/
官方文档教你在mac/windows/Linux上搭建hexo博客:https://hexo.io/zh-cn/docs/
主要步骤
安装git,安装NodeJS长期版,安装hexo, 注册GitHub并创建一个特殊仓库(命名相同)
详细教程
安装Git,直接去官网安装

安装nodejs,直接去官网安装

打开cmd命令流窗口
npm -v
查看npm的版本号

结果失败了,提示npm版本太低
根据提示先升级一下npm到8.5.2版本
npm: NodeJS的包管理器,用于node插件管理(包括安装、卸载、管理依赖等)

用cnpm安装HEXO博客框架
利用npm来安装cnpm(因为cnpm比较快!指向淘宝的镜像源)
npm install -g cnpm --registry.npm.taobao.org
cnpm install -g hexo-cli
用HEXO搭建博客
新建一个空文件夹不妨叫blog(我怎么知道的呢?我一开始直接敲完,然后j警告提示要建一个空的folder)
hexo init

安装完成了
提示start blogging with hexo!(开心!!)
启动Hexo
首先命令窗口进入到hexo根目录
cd e:
cd holder/blog
输入:
hexo s

显示如图说明在本地localhost:4000端口顺利启动了
在网页输入这个端口地址就可以看到刚建起来的个人blog了!可以看到里面初始化生成了一篇HelloWorld的博客,里面介绍了hexo的一些指令。
写下第一篇Blog
然后你可以创建你自己的第一篇blog了
命令窗口进入hexo根目录然后输入:
hexo new "我的第一篇blog"

就会创建一个名为"我的第一篇blog"的markdown文件(.md),往后写blog也都是用这种md格式的文档。
- [ ] 推荐学习一下markdown语法,用于写md文档。这是一种广受技术人员喜爱的文档格式,确实很好用,语法也很简单。编辑工具可以下载一个Typora。

然后打开hexo根目录,打开我的"第一篇blog.md",写完然后保存
后续创建博客 可以自己用vs或者其他工具写博客,注意是md文件,放到这个文件夹里就行。可以新建一个text,把扩展名改成.md
写好了。然后运行hexo
hexo s
进网页输入这个端口进入就是刚创建的个人博客了!
里面有一篇默认生成的hello word和刚刚自己创建的blog
部署到远端
把博客从本地部署到远端!部署到github上,让全世界人都可以查看。
1,在github上创建一个存储库命名为:“github用户名”+“.github.io”
命令窗口用cnpm或npm安装一个git配置工具
npm install --save hexo-deployer-git

打开blog文件夹里的_config.yml文件,这是一个hexo的配置文件,里面可以修改title等大多数配置。
用vs可以打开,然后修改配置

github似乎取消了http远程访问权限,只支持通过ssh访问了。


2,将_config.fml文件的配置改了一下,把https改成了ssh公钥,branch改成了main。

这些跟你的github账号有关,github现在版本建立repository branch默认都是main了。
ssh公钥在github主页的setting里面创建。用git连接github的仓库时就要用到的,我这里密码就是之前用git向远程push代码时创建的。

3,然后在命令窗口将博客部署到远端
Hexo g -f (相当于hexo clean 再hexo g,清理缓存,发布网站)
Hexo d
然后就成功啦!
成功送到远程github的仓库了


问题
每次都要输入密码很麻烦
去git bash.exe(安装完Git就会有这个工具)里配置一下你的身份 就不用每次输入github的账号密码了
git config --global user.name "你的github用户名"
当输入hexo s -g发布博文并预览时出现下面的提示:
1 | YAMLException: can not read a block mapping entry; a multiline key may not be an implicit key at line x, column y: |
报错信息是提示hexo的yml配置文件
冒号后面少了空格,补上即可
有篇博客突然导致报错
C++这样的命名似乎允许,改名后就行了
