HEXO:github+hexo搭建个人博客流程
本文最后更新于:2024年4月21日 晚上
1、github建库
1.1、准备github账号
进入GitHub官网,点击右上角Sign up
注册账户:
填入邮箱,继续:
自定义登录密码:
之后填写用户名,当出现xxx is available时用户名可用:
之后出现订阅栏,可选非必填:
之后验证一下账户:
完成验证之后,就可以开始创建账户了:
之后会验证一下邮箱,填写接收到的验证码,即可成功创建账户。
1.2、创建xxx.github.io库
进入个人主页,点击页面右上角“+”,选择 New repository创建仓库:
创建github代码仓库。注意,库名一定要为xxx.github.io做结尾,xxx部分可自定义:
创建仓库文件:
新建文件一定要为index.html文件,且只能有1个html文件:
加入任意html内容:
1 |
|
1.3、开启github pages
新建好了仓库之后,进入setting
开启github pages
功能:
进入Pages
页面:
在Branch选择main分支,点击save,之后再点击GitHub Pages:
完成上面的步骤后,进入新的页面,选择Project site
以及Start from scratch
再下拉到页面底部,点击done即可:
之后再返回到自己的仓库,查看Pages页面,会查看到对应的网页地址已经启用:
**==注:==**由于我这边有两个仓库开放Github Pages,地址会叠加,可忽略。Github Pages功能为统一开启和统一关闭,无法单独为某个仓库开放。
然后进入到对应的地址,就可以正常访问了:
2、安装Node.js
进入Node.js官网,下载LTS版本,选择对应的平台下载即可:
双击安装程序,选择完安装路径后,根据引导面板一路安装即可:
在必要工具安装选框这,勾选上:
安装后会新增以下工具:
修改npm镜像源:
1 |
|
进入Node.js command prompt
,检查npm版本:
1 |
|
正常会返回对应的版本号。
3、安装HEXO工具
HEXO为基于Node.js的静态网页生成工具,用来搭建个人博客很适合。在安装完了Node.js之后,接下来就是安装HEXO工具了,使用npm指令安装:
1 |
|
正常返回:
检查hexo版本:
1 |
|
新建1个空目录,在shell面板cd到对应路径下:
1 |
|
初始化完成后会生成以下文件:
1 |
|
本地启动博客:
1 |
|
看到这个页面就大功告成了:
4、hexo与github仓库关联
4.1、Git配置
在博客路径下,右键选择Open Git Bash Here
:
配置github账号:
1 |
|
配置完成之后,可以通过git config --list
查看配置的内容:
生成密钥SSH Key:
1 |
|
生成的过程中一路enter
敲过去就行。
查看刚才生成的Key,后面需要将它放入github中:
1 |
|
在Github中,点击个人头像,进入setting
–》SSH and GPG keys
,添加新的ssh key。将刚才查看的key内容复制到下面的key栏中:
之后保存即可:
在bash面板中输入下面的指令验证key 连接:
1 |
|
出现successful authenticated
说明连接成功:
4.2、修改博客站点配置
hexo网站建立成功之后,则需要将其与我们GitHub的仓库相关联,进入博客路径,在博客根路径下,_config.yml_
为站点配置文件:
翻到最后,修改deploy这一段:
修改为:
1 |
|
填入的是仓库的地址,进入仓库,直接拷贝这个地址填入就行:
改好了之后保存站点文件:
4.3、连接github token
进入github,setting,找到Developer Settings
,进入Personal access tokens
:
新建一个token,勾选下面的访问权限,开多了不安全,过期时间保持默认就行,不建议开永不过期:
下拉到页面最下方,点击Generator token
即可。
在站点配置文件中,deploy改为以下内容,加入了一列token属性:
1 |
|
然后部署网站:
1 |
|
4.4、博客部署
安装git部署插件:
1 |
|
正常执行返回如下:
之后,再分别输入三条命令:
1 |
|
生成静态网页:
1 |
|
本地预览:
1 |
|
部署网站:
1 |
|
成功如下:
后面就可以直接在github上看到文件提交了,在我们的网站上看到自己的博客:
5、关联个人域名
如果有自己的域名,可以将其关联上。我这使用的是namesoli的域名:
在namesoli控制后台添加一个解析,类型为CNAME:
点击蓝球球:
之后在github中添加自定义域名:
这样就完成了域名配置,访问域名可以直接跳转到我们的博客了。
6、修改站点显示语言
修改站点路径下的_config.yml
文件来配置:
1 |
|
7、更换HEXO博客主题
这里我以fluid主题来演示:
7.1、下载主题源码
github官方库:https://github.com/fluid-dev/hexo-theme-fluid/releases
打开发布页,在最新版本下面找到Source code.zip
,点击加载到本地:
将压缩包解压,文件移动到hexo博客根目录下的theme目录:
并将主题目录重新命名为fluid(注意目录层级,主题路径后一定要为css等资源文件,不能嵌套目录):
名称也可以不更改,直接使用hexo-theme-fluid-1.9.5
,这样的话在_config.yml
配置文件中theme字段也填入这个名称来就行。
7.2、修改站点配置并部署
修改站点配置文件_config.yml
1 |
|
完成修改之后,本地预览:
1 |
|
成功生成会展示如下页面:
之后,就可以进一步部署到github了:
1 |
|
把博客页面重新刷新一下就可以啦,so happy。
8、添加页面
8.1、添加分类页面
创建分类页面:
1 |
|
创建成功如下:
根据上面的路径,找到index.md
这个文件,打开后默认内容是这样的:
1 |
|
添加type: "categories"
到内容中,添加后是这样的:
1 |
|
完成修改之后,后面每创建1篇文章,属性列中,支持”categories”这个属性。
8.2、添加标签页
创建标签页
与分类页面
操作类似,操作如下:
1 |
|
创建成功如下:
然后编辑生成的index.md
文件,添加tags属性
:
默认内容如下:
1 |
|
修改为:
1 |
|
后面每创建1篇文章,其中的属性列中,支持”tags”这个属性。
8.3、子导航栏
使用submenu来录入二级导航栏:
1 |
|
实际效果:
8.4、添加关于页
关于我
页面,需要手动创建:
1 |
|
会生成相应的页面:
根据自己需求,修改对应的MD文件,,添加layout属性:
1 |
|
添加完成后,重新生成页面,并本地预览后可部署:
1 |
|
9、发布新文章
9.1、markdown新建文章配置
文章以markdown格式进行存储,可以修改一些配置方便新建文章:
修改站点文件_config.yml
,修改下面的配置可以在新建文章的时候,生成一个同名的资源目录用于存放图片文件:
1 |
|
9.2、新建博文
1 |
|
执行完成之后,会在source\_posts
下生成一个新的md文件和一个同名的资源目录:
打开之后,是下面的这些内容:顶部为文章的一些属性信息,可以方便做文章归类
**==注意:==**在属性”:”符号后面,需要添加一个空格,否则文章不生效
可以添加的属性有这些:
1 |
|
9.3、博文Front-matter配置
hexo中有Front-matter这个概念,是文件最上方以 — 分隔的区域,用于指定个别文件的变量。配置tags和categories: 示例:
1 |
|
子标签和子分类支持多个,每个标签或分类占一行。
9.3、删除文章
如果需要删除一篇历史文章,只需要在source\_posts
下,删除相应的markdown文件和资源目录就行,然后重新生成静态页面,预览并部署:
1 |
|
9.5、文章管理
1)标签及分来管理
分类及标签管理:
创建了分类和标签页面之后,就可以在文章中配置分类和页签属性了,通过这两个属性来管理发布的文章了:
对上面的第一篇文章做修改,添加分类和标签如下:
1 |
|
重新生成静态页面并预览:
1 |
|
2)源文件夹分类管理
通过发布文章的资源文件夹来管理文章:
在hexo中,可以在_post
文章源路径下创建不同的路径来标识文章,方便自己管理。在生成页面的时候不会根据这个路径来标识,依旧会通过前面配置的分类和标签属性来标识,创建路径示例:
之后同样执行hexo g
生成静态页面:
文章依旧可以正常的访问,但页面URL会有所不同,方便自己本地进行文章管理。
9.6、新建草稿文章
如果文章还没写完,或者暂时不想公开,这时候可以将文章保存为草稿。
1 |
|
执行上面命令,会在 source/_drafts
目录下生成一个 new-draft.md 文件。但是这个文件不被显示在页面上,链接也访问不到。也就是说如果你想把某一篇文章移除显示,又不舍得删除,可以把它移动到 _drafts
目录之中。
如果你希望强行预览草稿,更改配置文件:
1 |
|
或者,如下方式启动 server:
1 |
|
下面这条命令可以把草稿变成文章,或者页面:
1 |
|
9.7、文章属性
属性名称 | 作用 | 属性名称 | 作用 |
---|---|---|---|
layout | Layout 类型 | excerpt_link | 摘要链接文本 |
title | 文章标题 | reward | 是否启用文章打赏功能 |
date | 创建日期 | reward_comment | 打赏功能的评论提示文本 |
updated | 修改日期 | no_reward | 是否禁用全局的打赏功能 |
comments | 是否开启评论 | hide_in_summary | 是否在文章列表中隐藏该文章 |
tags | 标签 | password | 访问文章所需密码 |
categories | 分类 | Disqus_shortname | 用于集成 Disqus 评论系统的短名称 |
permalink | 自定义 URL | Duoshuo_shortname | 用于集成多说评论系统的短名称 |
author | 作者 | Facebook_comments | 是否启用 Facebook 评论插件 |
excerpt | 文章摘要 | 嵌入 Instagram 相册到文章中 | |
top_img | 置顶图片 | Weibo_frame | 在文章中嵌入微博帖子 |
cover_img | 封面图片 | gitment_owner | Gitment 评论系统的仓库拥有者 |
toc | 是否启用目录 | gitment_repo | Gitment 评论系统的仓库名称 |
示例1:
1 |
|
示例2:
1 |
|
示例3:
1 |
|
9.8、添加文章脚注
主题内置了脚注语法支持,可以在文章末尾自动生成带有锚点的脚注,该功能在主题配置_config.yml
中默认开启:
1 |
|
脚注语法如下:
1 |
|
更优雅的使用方式,是将脚注写在文末,比如:
1 |
|
当然你也可以通过修改上方配置项 header
来自动加入节标题,如下所示:
1 |
|
9.9、多标签及子分类
1 |
|
9.10、文章在首页的封面图
1 |
|
将图片放入到img文件夹中。
9.11、文章页顶部大图
默认显示主题配置中的 post.banner_img
,如需要设置单个文章的 Banner,在 front-matter (opens new window)中指定 banner_img
属性。
本地图片存放位置同上。
1 |
|
10、删除页面
直接删除hexo/source
路径下的非_post路径即可,删除后,重新生成静态页面部署即可完成页面的删除:
11、启用404页面
通过github配置的站点,不需要额外配置404页面,主题默认支持。
12、修改头像等图片信息
图像资源路径:
1 |
|
修改其中的”default.png”为网站首页背景图、”avatar.png”为头像、”fliud.png”为网页图标、”loading.gif”为加载动图,另外一个为备案图标。
12.1、修改网页背景图
查询替换掉所有的”default.png”
12.2、启用头像并修改
在主题的_config.yml
配置文件中,修改about
关于页面中avatar
属性来配置头像,图源为上面的图源资源路径
:
1 |
|
12.3、修改网页图标
在主题的_config.yml
文件中修改下面的内容,j将其中的/img/fluid.png
替换为自己的图标:
1 |
|
13、版权声明
在主题下的_config.yml
配置文件下,开启:
**==注:==**需要文章设置author
字段值。
配置为’BY-NC-SA’类型:
1 |
|
实际效果:
关于许可协议,可以学习这篇文章: