提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


如何创建个人博客

前段时间一直想弄一个真正属于自己的技术博客。

之前发文章基本都在各种平台上,虽然方便,但总感觉少点东西。
排版、风格、文章分类,包括内容本身,其实都还是依赖平台。

而且写久了会发现:

平台只是流量入口
个人博客才是真正属于自己的技术资产

所以这两天折腾了一下,最终选择了:GitHub Pages + Hexo + Redefine

在这里插入图片描述

(主要原因其实是因为这个,没法给大家分享好东西)

参考案例(本人的博客):https://tamoon1.github.io/

在这里插入图片描述

这套方案最大的优点就是:

- 免费
- 不需要服务器
- 不需要数据库
- 不需要公网 IP
- 部署非常轻量

非常适合搭建技术博客。

这篇文章就简单记录一下整个搭建过程,以及我踩过的一些坑。

------

# 为什么不用服务器?

很多人第一次搭博客,第一反应都是:

- 买云服务器
- 装 WordPress
- 配数据库
- 配 HTTPS

但实际上:

```text
技术博客完全没必要搞这么重

Hexo 本质上是:

静态博客生成器(SSG)

你平时写的 Markdown:

# Windows Token 原理

最终都会在本地生成 HTML 文件。

而 GitHub Pages 会帮你直接托管这些静态页面。

也就是说:

GitHub 仓库
↓
自动变成网站

整个过程根本不需要后端。

所以:

  • 不需要运维
  • 不需要防攻击
  • 不需要数据库
  • 甚至不需要服务器

这一点真的舒服很多。


环境准备

本地只需要安装两个东西:

  • Node.js
  • Git

Node.js 用来运行 Hexo。

Git 用来同步博客到 GitHub。

安装完成后验证一下:

node -v
npm -v
git --version

在这里插入图片描述

能正常输出版本号即可。


创建 GitHub Pages 仓库

登录 GitHub 后,新建一个公开仓库。

在这里插入图片描述

这里有一个特别关键的地方:

仓库名必须是:

你的用户名.github.io

比如我的用户名是:

TaMoon1

那仓库就必须叫:

TaMoon1.github.io

在这里插入图片描述

这个名字不能乱改。

创建仓库时保持空白即可,不用勾选 README。


初始化 Hexo

在本地终端执行:

# 初始化 Hexo 博客
hexo init my-blog

# 进入博客目录
cd my-blog

# 安装依赖
npm install

执行完成后,一个最基础的 Hexo 博客就已经搭好了。

本地启动:

hexo s

在这里插入图片描述

浏览器访问:

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

最后还是选择了:

Redefine

主要原因还是:

科技感很舒服

不会太花,也不会太素。

比较符合:

安全研究 / 技术博客

这种风格。


(1)安装 Redefine

执行:

npm install hexo-theme-redefine --save

然后修改博客根目录的 _config.yml

theme: redefine

接着初始化主题:

npx hexo-theme-redefine-cli init

基本就完成了。


(2)部署到 GitHub Pages

Hexo 默认不带 Git 部署插件。所以需要先安装:

npm install hexo-deployer-git --save

(3)修改 deploy 配置

打开博客根目录 _config.yml,在最下面添加:

deploy:
  type: git
  repo: https://github.com/你的用户名/你的用户名.github.io.git
  branch: main

例如:

deploy:
  type: git
  repo: https://github.com/TaMoon1/TaMoon1.github.io.git
  branch: main

(4)开始部署

执行:

# 清理缓存
hexo cl

# 生成静态页面
hexo g

# 部署到 GitHub
hexo d

也可以直接简写:

hexo cl && hexo g && hexo d

等待几分钟后:

https://你的用户名.github.io

即可访问自己的博客。


搭建过程中踩过的几个坑

1. ERROR Deployer not found: git

原因:没有安装部署插件。
解决方法:执行:

npm install hexo-deployer-git --save

即可。

2. LF will be replaced by CRLF

现象:终端出现大量 warning:

LF will be replaced by CRLF

原因:Windows 与 Linux 换行符差异导致。

解决方法:不用处理,Git 会自动转换。

3. Redefine CDN warning

现象:启动时出现:

WARN [redefine] CDNJS CDN is unavailable yet

原因:主题在自动检测 CDN 节点。
解决方法:只要后续出现:

INFO CDN available

即可正常使用。


后续规划

后面应该会继续往博客里放一些:

  • Windows 安全
  • 红蓝对抗
  • 工具分析
  • 内网渗透
  • AI Security
  • 安全研究相关内容

相比平台文章,我现在越来越觉得:

个人博客更像是自己的长期知识库

本人的博客:https://tamoon1.github.io/

很多东西只有真正沉淀下来,后面再回头看时才会发现价值。

这篇也算是博客正式上线后的第一篇文章了。

Logo

免费领 200 小时云算力,进群参与显卡、AI PC 幸运抽奖

更多推荐