Hexo + Github搭建博客

  • ~3.04K 字
  • 次阅读
  1. 1. 需要的环境
  2. 2. 安装以及部署
    1. 2.1. Github上的操作
    2. 2.2. 本地操作
      1. 2.2.1. 准备环境
      2. 2.2.2. 修改配置
      3. 2.2.3. 写博客
      4. 2.2.4. 安装一个主题
    3. 2.3. 部署
  3. 3. 其他操作
    1. 3.1. 置顶文章
    2. 3.2. 升级Hexo
    3. 3.3. 本地Debug
    4. 3.4. 大小压缩
    5. 3.5. algolia
  4. 4. 文档
    1. 4.1. 命令文档
    2. 4.2. 相对连接
  5. 5. Note

Hexo可以作为一个Server使用(hexo server运行), hexo-deployer-git是官方开发的插件用于 Github 上搭建博客。

需要的环境

Hexo 基于 node.js ,故需要先装 nodejs(包含npm)。推荐装LTS的。

部署到 Github,需要手动安装 git,并确保 git 版本是最新的。

最好了解下nodejs项目

请注意 hexo-deployer-git 第一次登陆时不能设置 Socks5代理(蛋疼的是中文 cmd 下显示乱码),实际显示的是ServicePointManager 不支持具有 socks5 方案的代理

安装以及部署

Github上的操作

新增一个仓库(Repositories),仓库名为yourname.github.io

本地操作

准备环境

1
npm install hexo-cli -g

创建文件夹并进入

1
npm install hexo-deployer-git --save

其中-g--global的简写,使用后是安装到系统中,你可以在任何地方使用Hexo命令,而下面则是将hexo-deployer-git直接安装到文件夹(项目中)

初始化blog(下面命令blog的name可以改为你想要的名字)

1
hexo init blog

需要注意的是这个blog文件夹是一个独立的项目,你可以挪出来放到你想要的地方,或者改名都行

修改配置

找到”blog”文件夹里的_config.yml
改最下面

1
2
3
4
deploy:
type: git
repository: http://github.com/yourname/yourname.github.io.git
branch: master

另外注意可以加上 username 跟 mail

1
2
name: [git user]
email: [git email]

写博客

.\source\_posts
这里放的博客文本, hexo new [layout] <title>
用于生成一个新博客。
不过一般我会手动建

安装一个主题

这个就自己折腾吧,很多主题还要装依赖
还有很多的坑

部署

1
hexo d -g

意思可以看上面的命令文档,基本等同于hexo g -d

这里有个Issue

第一次使用的时候会需要你输入 username 和 token (虽然显示的是密码,但实际要输入 github token,至于怎么生成就自己去搜索下好了)

其他操作

置顶文章

最前面使用,数字越大越前面

1
top: 1000

升级Hexo

1
2
npm install -g hexo-cli
npm update --save

(我这好像没成功,因为cli版本其实没有升级,Hexo版本倒是到了6)

最终是看了这个成功的 –2022-06-29
https://novnan.github.io/Hexo/update_hexo/

而且是试了下就好了,完全没搞懂之前啥毛病。
可能跟npm update --save这个有关
只有用了这个才会更新项目的npm包


7.3.0 升级 -2024-09-14

1
2
npm install  hexo@7.3.0
npm update --save

之前的办法没法升级,估计是因为大版本更新的缘故。hexo 的官方文档感觉不太完善。默认给的安装方式是npm install -g hexo-cli,这个是装到全局目录,hexo-cli 是hexo这个可执行文件(添加了环境变量),所以是全局。然后hexo init blog创建一个博客(项目文件),hexo -v可以查看版本。

因此升级是在项目文件夹里更新包(我因为长期乱用命令,可能会有点乱,例如 hexo-cli也被我装到了博客的文件夹里,实际应该不需要)。

本地Debug

1
hexo s --debug

可以本地debug好了再提交,不用像逗逼的我一样每次提交了看有问题再改。

大小压缩

首先你需要知道的是,Hexo 每次生成的所有文件全部重新编译,因此部署变动是非常多的。commit 基本没办法追踪变动。历史提交是没有意义的。

如果你的commit已经超过300个了,那你可以考虑清理一下历史 commit。例如 squash。

另外因为hexo-deployer-git是force提交,所以你可以直接在本地.deploy_git起新空分支。记得之后删除老分支。

1
git checkout --orphan branchname

这时候你会发现本地文件夹大小没怎么变化,跑下gc清理下就好

1
git gc

BTW: 最近 Linux 下装了 git-gui 之后打开 gui 提示我数据库没有压缩(查了下就是 git gc,不过好像后续提交就要重新压缩)

algolia

不再使用,见Hexo theme

配置的一下问题可以看下这里
https://github.com/fi3ework/hexo-theme-archer/issues/304

1
2
3
4
5
6
7
8
9
10
11
12
13
 hexo algolia --help
INFO Validating config
Usage: hexo algolia

Description:
Index your content in Algolia Search API

Options:
--dry-run Does not push content to Algolia (default: false).
--flush Resets the Algolia index before starting the indexation (default: false).
--indexing-key An algolia API key with add/delete records permissions.
It should be different than the search-only API key configured in _config.yml.
--layouts A comma-separated list of page layouts to index (default: "page").

flush 什么的,很少有教程说,不过文件换路径会非常有用

文档

命令文档

https://hexo.io/zh-cn/docs/commands.html

相对连接

https://hexo.io/zh-cn/docs/asset-folders

Note

  • 网页有缓存,有时候 Github 更新页面没那么快
  • hexo 的相对链接只能在图片或者[]()里使用,<>里不会解析
  • Win 不区分大小写,文件名或者 tag 可能会造成问题,处理时需要手动删文件或文件夹(包括 public .git_deploy 里的),还要删掉 db.json
  • LF CRLF 可以看下博客的 git换行符问题,可以在 .git_deploy 里弄

可读性顺序调整,增加置顶的一些说明,集成了之前 Hexo 精简的文章

打赏
打赏提示信息
分享
分享提示信息