Github Pages+Hexo博客搭建记录

本文最后更新于:2021年11月16日

Github Pages

在GitHub上建立一个与自己名字相同的存储库(不同也行),详细可以看新建多个Github Pages并迁移Pages,然后在Settings中的Pages选项将Source选择到该存储库的根目录。

Hexo

其实Hexo官网上怎么建说得已经很详细了,我这里再精简下。

安装

下载并安装node.jsGit

在命令行(win+R输入cmd打开)中使用下面三条命令检查版本验证安装成功与否。

1
2
3
node -v
npm -v
git -v

在命令行输入以下命令安装Hexo,安装位置好像没法改变,不是想网上说的在哪个路径下运行就安装到哪里。

1
npm install hexo-cli -g

初始化博客

新建一个文件夹用于存放你的博客及各项配置,这里将其命名为blog。

1
2
3
hexo init blog
cd blog #进入blog文件夹
npm install

可看到我们的blog目录已经变成以下结构,其中_config.yml文件用于记录网站的配置信息。themes用于存放主题,source的_posts存放你所有博客文章,scaffolds存放页面及文章的模板。

1
2
3
4
5
6
7
8
.
├── _config.yml
├── package.json
├── scaffolds
├── source
| ├── _drafts
| └── _posts
└── themes

在blog文件夹路径下的命令行中输入以下命令打开hexo的本地服务器,然后在你浏览器的地址栏输入localhost:4000就能看到你建完的站了。

1
hexo s

这里简要说下几个常用命令及其简写。

命令 简写 作用
hexo server hexo s 在本地启动博客服务
hexo new “题目” hexo n “题目” 新建题目为题目的博客
hexo generate hexo g 生成public文件夹(即要放在GitHub Pages中的东西)
hexo clean 清除本地生成文件(即public文件夹)
hexo deploy hexo d 把本地public文件夹进行部署(一般使用hexo d -g进行生成并部署)

发布网站

要发布网站还需要在网站配置_config.yml中最后一项deploy,以下是我的配置,大家把repo改为自己建的用户名同名仓库即可。

1
2
3
4
deploy:
type: git
repo: https://github.com/ChangcongWang/ChangcongWang.github.io.git
branch: main

使用hexo d -g进行生成并部署。

需要Github的身份验证时输入自己创建的SSH keys中的SHA256即可,部署完就能在 username.github.io (username为你Github的用户名)中看到自己部署完的博客了,这时候别人也能通过这个网站访问到你的博客,如果是之前的hexo s是只有你一个人能够看到。

网站配置_config.yml中还有需要修改的信息就是第一项Site,参数如下,其他根据自己需要改(一般除了网站的url不需要大改了)。

参数 描述
title 网站标题
subtitle 网站副标题
description 网站描述
keywords 网站的关键词(别人可以通过搜关键词搜到你的网站)使用半角逗号隔开
author 您的名字
language 网站使用的语言。一般根据主题设定
timezone 网站时区,我设置为Asia/Shanghai

写博客

hexo n "题目"即可,编辑/blog/source/_posts中的题目.md即可写一篇博客,markdown编辑器暂推荐Vscode+Markdown All in One插件,具体markdown语法请自行查阅。

新增存储库的README.md

在source文件夹下新建README.md,然后在网站配置中设置skip_render参数为README.md。

Fluid或其他主题

主题使用的是Fluid,主题请别太用心,重点在写博客。

配置主题流程大概是:

  1. npm或其他方式下载到themes文件夹中
  2. 修改hexo的网站配置_config.yml中的themes和language

Fluid安装过程:

npm下载或到Fluid的Release页面下载并解压到themes中,解压完的文件夹重命名为fluid

1
npm install --save hexo-theme-fluid

修改网站配置_config.yml的themes为fluid和language为zh-CN

将fluid中的 _config.yml(主题配置,不同于前文提到的网站配置)复制到\blog文件夹下,修改其名字为_config.fluid.yml,这样之后进行更新主题不会把自己的_config.yml给覆盖掉。

然后根据自己的爱好按Fluid文档修改主题配置吧。

hhhh我也陷入陷阱了,搭了老久的博客结果一篇都没写,羞愧至极,所以从建站这篇博客作为一个开始吧。

屏幕前的你也可以将自己的建站记录下来,说不定会帮到更多的人,所以赶紧hexo n一篇吧。


题外话

本来想用树莓派或其他Linux搭一个服务器(主要用于写博客和组NAS及其他服务),但目前是在校状态没办法整公网IP等骚操作,本着如无必要,勿增实体的概念,最终还是选(tuo)择(xie)了GitHub Pages搭建博客,NAS选择玩客云进行改装。

这里记录下总结到的连接家中服务器(内网穿透)的方法,无非就两种(个人粗见,欢迎指正):

  1. 申请公网IP(一般为动态IP)+DDNS(动态域名解析)
  2. Frp/ngrok相关服务+有公网IP的机器(作为跳板)

SakuraFrpuulap及各种公网IP盒子基本用的都是第2种方法.

目前使用的markdown是有道云笔记(同步功能香但快捷键垃圾)+部分VScode,准备全面迁移去VScode(云端使用GitHub同步(暂定))。

目前个人博客未完成工作

  • Latex插件
  • RSS订阅
  • 评论区

参考资料