提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
-
- 如何创建个人博客
- 环境准备
-
- [创建 GitHub Pages 仓库](#创建 GitHub Pages 仓库)
- [初始化 Hexo](#初始化 Hexo)
- 日常更新和上传文章非常简单,只需在终端(命令行)里执行以下两步:
- [为什么选择 Redefine](#为什么选择 Redefine)
-
- [(1)安装 Redefine](#(1)安装 Redefine)
- [(2)部署到 GitHub Pages](#(2)部署到 GitHub Pages)
- [(3)修改 deploy 配置](#(3)修改 deploy 配置)
- (4)开始部署
- 搭建过程中踩过的几个坑
-
- [1. ERROR Deployer not found: git](#1. ERROR Deployer not found: git)
- [2. LF will be replaced by CRLF](#2. LF will be replaced by CRLF)
- [3. Redefine CDN warning](#3. Redefine CDN warning)
- 后续规划
如何创建个人博客
前段时间一直想弄一个真正属于自己的技术博客。
之前发文章基本都在各种平台上,虽然方便,但总感觉少点东西。
排版、风格、文章分类,包括内容本身,其实都还是依赖平台。
而且写久了会发现:
平台只是流量入口
个人博客才是真正属于自己的技术资产
所以这两天折腾了一下,最终选择了:GitHub Pages + Hexo + Redefine

(主要原因其实是因为这个,没法给大家分享好东西)
参考案例(本人的博客):https://tamoon1.github.io/

text
这套方案最大的优点就是:
- 免费
- 不需要服务器
- 不需要数据库
- 不需要公网 IP
- 部署非常轻量
非常适合搭建技术博客。
这篇文章就简单记录一下整个搭建过程,以及我踩过的一些坑。
------
# 为什么不用服务器?
很多人第一次搭博客,第一反应都是:
- 买云服务器
- 装 WordPress
- 配数据库
- 配 HTTPS
但实际上:
```text
技术博客完全没必要搞这么重
Hexo 本质上是:
text
静态博客生成器(SSG)
你平时写的 Markdown:
markdown
# Windows Token 原理
最终都会在本地生成 HTML 文件。
而 GitHub Pages 会帮你直接托管这些静态页面。
也就是说:
text
GitHub 仓库
↓
自动变成网站
整个过程根本不需要后端。
所以:
- 不需要运维
- 不需要防攻击
- 不需要数据库
- 甚至不需要服务器
这一点真的舒服很多。
环境准备
本地只需要安装两个东西:
- Node.js
- Git
Node.js 用来运行 Hexo。
Git 用来同步博客到 GitHub。
安装完成后验证一下:
bash
node -v
npm -v
git --version

能正常输出版本号即可。
创建 GitHub Pages 仓库
登录 GitHub 后,新建一个公开仓库。

这里有一个特别关键的地方:
仓库名必须是:
text
你的用户名.github.io
比如我的用户名是:
text
TaMoon1
那仓库就必须叫:
text
TaMoon1.github.io

这个名字不能乱改。
创建仓库时保持空白即可,不用勾选 README。
初始化 Hexo
在本地终端执行:
bash
# 初始化 Hexo 博客
hexo init my-blog
# 进入博客目录
cd my-blog
# 安装依赖
npm install
执行完成后,一个最基础的 Hexo 博客就已经搭好了。
本地启动:
bash
hexo s

浏览器访问:
text
http://localhost:4000

就能看到博客页面。
日常更新和上传文章非常简单,只需在终端(命令行)里执行以下两步:
日常更新和上传文章非常简单,只需在终端(命令行)里执行以下两步:
第一步:新建文章
在博客根目录下执行命令,创建一篇全新的 Markdown 空白文章:
hexo new "文章标题"
执行后,终端会提示你在 source/_posts/ 目录下生成了一个 文章标题.md 文件。你只需用编辑器打开它,写下你的正文内容即可。
第二步:一键编译并发布上线
文章写完并保存后,在根目录下直接执行下面这行日常最常用的发布连招:
hexo cl && hexo g && hexo d
这个连招会自动帮你完成:清理旧缓存 ------> 重新将 Markdown 渲染成精美的网页静态文件 ------> 打包推送到 GitHub 仓库 。看到终端输出 INFO Deploy done: git 之后,直接去线上刷新你的博客网址即可看到新文章!
为什么选择 Redefine
一开始其实看了很多主题:
- Butterfly
- Volantis
- NexT
- Fluid
最后还是选择了:
text
Redefine
主要原因还是:
text
科技感很舒服
不会太花,也不会太素。
比较符合:
text
安全研究 / 技术博客
这种风格。
(1)安装 Redefine
执行:
bash
npm install hexo-theme-redefine --save
然后修改博客根目录的 _config.yml:
yaml
theme: redefine
接着初始化主题:
bash
npx hexo-theme-redefine-cli init
基本就完成了。
(2)部署到 GitHub Pages
Hexo 默认不带 Git 部署插件。所以需要先安装:
bash
npm install hexo-deployer-git --save
(3)修改 deploy 配置
打开博客根目录 _config.yml,在最下面添加:
yaml
deploy:
type: git
repo: https://github.com/你的用户名/你的用户名.github.io.git
branch: main
例如:
yaml
deploy:
type: git
repo: https://github.com/TaMoon1/TaMoon1.github.io.git
branch: main
(4)开始部署
执行:
bash
# 清理缓存
hexo cl
# 生成静态页面
hexo g
# 部署到 GitHub
hexo d
也可以直接简写:
bash
hexo cl && hexo g && hexo d
等待几分钟后:
text
https://你的用户名.github.io
即可访问自己的博客。
搭建过程中踩过的几个坑
1. ERROR Deployer not found: git
原因:没有安装部署插件。
解决方法:执行:
bash
npm install hexo-deployer-git --save
即可。
2. LF will be replaced by CRLF
现象:终端出现大量 warning:
text
LF will be replaced by CRLF
原因:Windows 与 Linux 换行符差异导致。
解决方法:不用处理,Git 会自动转换。
3. Redefine CDN warning
现象:启动时出现:
text
WARN [redefine] CDNJS CDN is unavailable yet
原因:主题在自动检测 CDN 节点。
解决方法:只要后续出现:
text
INFO CDN available
即可正常使用。
后续规划
后面应该会继续往博客里放一些:
- Windows 安全
- 红蓝对抗
- 工具分析
- 内网渗透
- AI Security
- 安全研究相关内容
相比平台文章,我现在越来越觉得:
text
个人博客更像是自己的长期知识库
本人的博客:https://tamoon1.github.io/
很多东西只有真正沉淀下来,后面再回头看时才会发现价值。
这篇也算是博客正式上线后的第一篇文章了。