零成本从零开始基于GitHub pages搭建个人blog
本文最后更新于 2024年12月16日 上午
前言
本教程为入门级教程。适用于没有任何相关经验,想要自己搭建个人blog,并且可以自定义blog样式,并且追求blog无外部广告的网友。
整体流程大纲为,github上创建github page repository,上传本地网站project,配置部署文件,配置域名(可选),部署成功。如果有相关基础知识,可以自行跳过某些步骤。
前期准备
电脑(本教程使用的是windows电脑)。邮箱。你想好的blog域名。
教程开始
注册GitHub
❗ 重要: 注册的username将会成为你的blog的域名,所以请在注册时注意。
首先进入GitHub。
点击右上角Sign up按钮。
输入自己的邮箱以及自己的密码
接下来会要求你输入一个username,这里username后续无法修改,并且会变成blog的默认域名(网址)的开头。比如我这里使用了example77777作为用户名,那么github page的默认域名就是example77777.github.io,因此这里要想好自己的username。
点击continue,完成人机验证,创建成功。
接下来会给你的注册邮箱发验证码验证,国内邮箱可能需要耐心等几分钟,我这里使用的126邮箱等了五分钟左右。
可以跳过接下来的设置,也可以按需求点一点,这里无所谓。
创建账号成功.
blog本地搭建
安装node.js
本教程使用的blog框架是Hexo是基于node.js。若使用其他框架,可以自行安装。
请根据自己的电脑选择对应版本,大部分应该都是64位windows。
双击运行下载的文件node-v20.11.0-x64.msi(根据选择的版本号可能文件名有所区别)
按照提示安装完成。
可能需要重启电脑完成node.js的配置。
配置node.js国内源(可选,建议操作)
npm是nodejs的包管理器。如果国内网络不够流畅,可能使用npm包管理器会下载很慢,甚至卡顿。这时候配置国内镜像可以解决该问题。
快捷键win+x,点击powershell。
命令行中输入之前的tb的这个不对了,换了域名。改成了npm config set registry https://registry.npm.taobao.org
并回车。就可以将镜像源换成淘宝的。npm config set registry https://registry.npmmirror.com/
也可以参考腾讯云镜像源。在命令行中输入npm config set registry http://mirrors.tencent.com/npm/
就可以把镜像源换成腾讯的。
再放个中科大的镜像。
截图懒得修改了。
安装Git
在上一步中提到的powershell中,输入git --version
,检查有没有安装git。如果没有装,请前往Git官方网站下载 Git 安装程序。
安装时,确保选择 Add Git to PATH(将 Git 添加到系统环境变量)。
安装Webstorm
Webstorm是可以用来开发网页的IDE(Integrated development environment 也就是集成开发环境),是我个人比较喜欢的。你也可以选择自己喜欢的IDE。
- 进入jetbrains官方网站,点击download进行下载。
- 在登陆处可以选择使用github登录(比较方便),也可以后续再将账号链接到github。
- 这是一个收费软件(30天免费试用),可以申请学生免费(学生license一年有效期,到期后可续)
Jetbrains For Student - 安装完成后,打开软件,通过左下角设置图标,进入Licenses界面。
- 可以通过之前申请的学生免费激活,也可以点击start trial免费试用。
安装Hexo
可以使用webstorm插件直接创建hexo项目。
进入Hexo - IntelliJ IDEs Plugin | Marketplace,点击箭头所指向的蓝色按钮。
如果如图显示Install to WebStorm 2023.3.1
,点击即可完成安装。然后直接看下一步。
如果显示Get,点击Get,会跳转到版本界面,然后选择最新版下载。如果后续安装报错,请在网页检查一下下载的版本和你的WebStorm版本是不是对应的。
下载后,打开Webstorm,选择plugin,右上角小齿轮图标,点击Install Plugin from disk
,然后选择刚刚下载的文件进行安装。
这样就在Webstorm中将hexo插件安装完毕了。
新建Hexo项目
- 在Webstorm的Project页面,点击New Project。
- 选择Hexo,在location处输入你像存放该项目的位置,文件名可以用项目的名字来命名。
- 创建成功
Hexo简单介绍
- 在默认生成的
source
文件夹下,有一个叫做_post
的文件夹,以后在blog发布新的文章都通过在这里创建新的.md
文件完成。在_post
中,有一个hello-world.md。这里有很多基础指令可以点击绿色箭头尝试。 - 以
hexo server
为例,这是在本地启动服务的命令。可以点击hexo server
边上的绿色按钮,也可以Alt+F12呼出terminal直接输入。运行结果如下图,可以直接点击蓝色的网址进行预览。 - 可以看到一个示例blog已经生成。
- 后续可以通过使用别的hexo主题模板,或者调整默认模板的配置(项目中的
_config.yml
文件)等方式修改blog的样式。这里先不赘述。在教程后blog后续优化及更新教程中,会稍作介绍。
到这里,本地创建blog已经完成。
部署到github
新增修改配置文件
- 在项目页面,这里我们需要添加一份给github page使用的配置文件。
找到项目目录下的.github
文件夹,在该文件夹下新建名叫workflows
的文件夹。右键选择New,选择Directory,在弹出框中输入workflows
。 - 然后再右键这个新创建的
workflows
文件夹,new一个File,命名为pages.yml
然后将以下代码复制黏贴进入pages.yml
,代码来源官方教程GitHub Pages | Hexo
其中可能出问题的点在于第六行的main
,可能根据情况需要被修改成master
。后续会详细描述。
1 |
|
放一张我的截图
进入项目目录下的
_config.yml
文件,将第16行修改成https://你的username.github.io/
的形式(请不要按照官方注释的格式加上project,会出问题)。
截图中展示我的username,我的username是example77777
,所以输入https://example77777.github.io/
使用webstorm自带版本控制功能连接git
在webstorm中选择左上角菜单栏中选择setting。
找到
version control
,再选中github
。然后登陆你的Github账号。点击左上角的
version control
,再点击share project on
,最后选择Github
。这里将Repository name修改为
你的github username.github.io
的形式。比如我在教程中github注册用户名为example77777
,我这里就命名为example77777.github.io
。
然后注意将Private勾选掉,设置为private将没人可以访问你的网站。然后等待几秒,会出现第一次commit的页面,直接点击Add即可。
上传成功后,进入github.com,如果你保持一开始的登陆状态,在页面左上角将会看到成功创建的新repository。点击即可进入项目。
接下来要解释,上面的第四条提到的可能出现的问题如何确认排查了。 如果没有问题,直接跳到第12步。
git基本操作介绍
在上张截图中红框框圈出来的部分为master
,也就是当前仓库的主要分支名称。
而我们需要使得.github/workflows/pages.yml
中的第六行和你主要分支名称保持一致。
仓库的主要分支有时候在自动创建时叫master
,有的时候会叫main
,本质没什么区别。
- 前往之前创建的
.github/workflows/pages.yml
文件,修改第五行的branches:
,使起和你的分支名保持一致。 - 然后按照以下截图,commit操作,再push。
点击commit
git仓库设置,完成网页部署
- 然后接着上面第9步,点击setting,选中左边栏中的page
- 选中Source框,选择GitHub actions。
- 如果回到repository页面,不出意外的话(可能需要等几分钟),刷新一下,将会在右下角看到deployment已经成功的标志。
- 此时回到setting中的pages页面,可以看到网站已经成功部署。
- 可以点击链接查看网页,网站部署到这里就成功了。
自定义域名(可选,要花钱)
- 因为github不在国内设置服务器,不需要备案。
- 选择一个域名提供商,我这边选用了Squarespace Domains,国内用aliyun或者腾讯云应该差不多流程。
- 输入想要的域名,查看是否被占用。选择要使用的进行购买即可。
- 购买后,会出现一个管理界面。点击你的域名。
- 点击右下角的
Manage Domain Settings
按钮,然后不用修改选项,点击右上角的edit dns
。 - 在Custom Records这一栏(好像是这么叫的,默认的叫别的名字,我不记得了,删了就不见了),点击ADD RECORD,添加四个A类record,在各自的data中加入github page专用的ip地址如果想配置IPV6或者别的,参照github官方文档:Managing a custom domain for your GitHub Pages site
1
2
3
4185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153- 再添加CNAME类型的record
- host填
www
- data栏填写
你的github page域名
,比如教程中使用的是example77777.github.io
- 然后回到github repository中,进入setting的page页面,再custom domain中输入
www+你的域名
。 - 等待最多24小时(这个更新会比较慢)。
- 访问域名即可显示你的网站。
blog后续优化及更新教程
- 新建blog,可以直接在
/source/_posts
文件夹下新建.md
文件。可以嵌套多层目录。 - 每次修改后,本地预览之前,请执行
hexo clean
清除db.json
缓存文件。- 不是必须的,只是如果有缓存的话,有可能会出现渲染问题。例如:已经删掉的tag还出现在你的tag cloud列表中。
- github page不需要额外操作,在项目目录下的
.gitignore
中定义了不会pushdb.json
文件。 而每次push操作,github page都会从头部署一遍,不会出现问题。
- 选择合适的theme Themes | Hexo
- 下载了喜欢的模板后,将模板的文件夹放到Hexo项目的
/themes
文件夹下即可。 - 修改细节可参考模板自带的文档。
- 下载了喜欢的模板后,将模板的文件夹放到Hexo项目的
Reference: