type
status
date
slug
summary
tags
category
icon
password
Status
接触前的感受
- 目前thinkxyz.top博客是采用notion-next的方法来做的,但缺点是不易被浏览器搜索出来出来,也就是SEO没做好,这是一个致命的缺点。尝试过去优化,感觉要删除的代码太多了,而且每次官方代码更新,都需要重新进行优化和覆盖。此前也尝试了解过替代方案,无奈其他方案的文章编辑管理方法都没有notion来得方便。也知道hexo是一个写文章比较麻烦的方案,不但没有专门的文章管理工具,而且要用纯md代码在终端框内进行写文章,那么格式的设置简直会让人抓狂,也没办法随时随地写文章,而且没发布文章好像都要做所有页面的更新,实属麻烦。但notion完全不存在这些问题。
- 但是有了nas,那么将hexo的后台部署在nas上,那么使得随时随地可以发博客成为了可能,同时可以借用obsidian编辑md可视化内容,然后自动同步到nas指定目录,接着自动发布。不确定能不能实现。
- 当然hexo有很多漂亮的主题也是一个原因,但是不是必要的原因,
- 在飞牛论坛里看到有用docker安装hexo的帖子,所有使我有了动力去探索一下。
开始搭建
我在的是macos环境。
一、本地部署
1. 安装node.js。
- 进入node.js的官网,下载安装包并直接安装,会自动安装node 和 npm 这2个工具。
- 验证是否安装成功。打开mac自带的终端工具。输入分别输入
node -v
和npm -v
两个命令,如果能够返回版本号,就说明安装成功了。


2. 安装Hexo
- 更换镜像源。由于默认npm安装包下载源速度慢,我们用一下命令换成华为的镜像源速度更快。
- 安装Hexo。输入命令
sudo npm install -g hexo-cli
后,再输入电脑的登陆密码,完成安装Hexo。

- 创建博客项目目录。执行
hexo init thinkblog
命令创建项目文件夹,用于存放全部博客文章。紧接着用cd my-blog
命令进入到文件夹,然后执行npm install
命令安装依赖包。若安装成功,博客项目文件夹内有以下内容。

- node_modules:依赖包
- scaffolds:生成文章的一些模板
- source:用来存放你的文章
- themes:主题
- .npmignore:发布时忽略的文件(可忽略)
- _config.landscape.yml:主题的配置文件
- config.yml:博客的配置文件
- package.json:项目名称、描述、版本、运行和开发等信
如果执行
npm install
命令你遇到以下错误犯反馈,由于 权限问题或缓存冲突 导致的。
那么可以使用以下三条命令来解决:
步骤 | 命令 |
清理缓存 | npm cache clean --force |
修复权限 | sudo chown -R $(whoami) ~/.npm |
重新安装 | npm install |

3. 把网页跑起来
接下来我们在终端继续执行
hexo generate
和 hexo server
这2条命令,在本地把 hexo 服务跑起来。这样我们就可以,在本地网址的4000端口http://localhost:4000/预览文章效果。

打开 http://localhost:4000/ 这个本地网址,已经可以正常访问了。
4. 安装vscode管理博客
- vscode可直观第管理博客项目文件夹,以及编辑包括文章在内的的文件,同时带有一个终端。进入vscode的官网,下载安装包直接安装。

- 安装完成后打开博客项目目录thinkblog。来看一下 thinkblog 里面的主要组成部分:
- _config.yml:博客的全局配置文件,网站的名称、描述、作者等,都可以在这里进行设置.
- source/_post:存放我们全部的文章,而且 hexo 自带了一篇 demo 文章 hello-world.
- themes:博客的主题配置文件,hexo 有一个默认主题,但不太好看,后面可以改成漂亮一些的主题.
上面这3部分,就是我们使用 hexo 写博客时需要重点关注的地方。


二、托管到github
通过第一步我们已经实现将网站部署到了本地,通过本地的链接访问,但互联网其他人无法直接访问。接下来,我们需要把
整个项目
托管到github上,通过github生成一个网址,互联网上其他人也可以访问博客内容。1. 新建空仓库
注册并登录GitHub,进入首页右上角“+”号,点击“New repository”。只需要填写Repository name为
<用户名>
.github.io,其中用户名建议设置为GitHub的用户名。然后直接点击Create repository完成创建。

2. 安装博客部署插件
那么如何将本地的博客项目文件快速上传至GitHub进行托管呢?通过以下命令安装
hexo-deployer-git
插件。 3. 配置_config.yml文件
在项目根目录下,_config.yml是整个Hexo框架的配置文件了。配置说明相见官网文档。
修改最后一行的配置,将repository修改为你自己的github项目地址即可,还有分支要改为
main
代表主分支(注意缩进)。4. 为电脑配置 GitHub 的 SSH 公钥认证
Hexo 默认用 SSH 协议(
git@github.com:...
)部署到 GitHub,但是你的电脑可能没有配置 SSH 公钥,出现GitHub 不允许你连接的情况。那么我们配置 SSH 公钥到 GitHub。步骤一:检查是否已有 SSH
打开终端,输入:
如果你看到了文件,比如:
那你就已有密钥(跳到 步骤三),否则进入下一步。
步骤二:生成 SSH 密钥(如果你没有)

一路回车(不要设置密码),生成后的公钥会保存在:
id_rsa.pub
内。步骤三:将 SSH 公钥添加到 GitHub
存放.ssh文件夹一般是隐藏状态,那么使用用“前往文件夹”功能打开可以打开,或直接使用命令行打开公钥文件,复制公钥内容(别复制
.ssh
目录整个文件,复制的是 .pub
文件):将输出的那一整行复制。或者找到
id_rsa.pub
文件打开,复制公钥内容。
第四步骤:配置GitHub 账户公钥
登录 GitHub 账户,进入右上角头像 → Settings(设置)→ SSH and GPG keys,点击 New SSH key,Title 随便填(如 “MacBook Pro”),Paste Key 处粘贴你刚复制的内容,点击保存。



步骤四:测试连接
在终端测试 SSH 是否成功连上 GitHub:
首次会提示:
Are you sure you want to continue connecting (yes/no)?
输入:yes
,如果一切正常你会看到:
5. 可选步骤:配置 Git 用户信息
第一次用 Git 时,建议设置全局用户名和邮箱(用于生成提交记录):
查看当前配置:

user.name
和 user.email
的作用是什么6. 发布文章
当文章的markdown文件写好后,就可以运行以下命令发布。
- hexo clean:删除之前生成的文件,可以用
hexo cl
缩写。
- hexo generate:生成静态文章(HTML + CSS + JS),可以用
hexo g
缩写
- hexo deploy:部署文章,可以用
hexo d
缩写
注意:需要回到博客项目文件目录下运行该命令。

发布之后,通过仓库名thinkxyz8.github.io/就可以访问。

三、使用 Cloudflare 构建
为什么还要通过 Cloudflare Pages网页其实已经托管到了GitHub,而且有网址,如果你拥有自己的域名,可以用通过CNAME类型的DNS解析将自己的域指向该网址。但国内访问GitHub的内容收到墙的限制,网站访问速度并不友好,但是将网页内容部署在Cloudflare上,不但访问速度更快,而且可绕过国内访问限制。
1. 连接GitHub构建和部署页面
登录cloudflare主页,进入【计算(Workers)】→【Workers 和 Pages】→点击【创建】

选择【Pages】→选择导入现有Git存储库【开始使用】

选择刚刚GitHub账号和项目库
ThinkXYZ8.github.io
,点击【开始设置】
在设置构建和部署界面直接点击【保存并部署】

等待2分钟左右即可完成构建和部署。看到提示“成功!您的项目已部署到以下区域:全球”既代表部署成功。那么可以通过下方提供的连接【https://thinkxyz8-github-io.pages.dev/】访问博客主页。


点击右下角【继续处理项目】
2. 绑定自定义域名
我是有自己的域名的,那我绑定一个自己的域名。点击【自定义域】→【设置自定义域

在输入框填写自定的域名,我这里天的是
hexo.thinkxyz.top
,点击【继续】
可以看到他是新建了一个CNAME类型的域名解析。点击【激活域】

那么后续,我们可以通过hexo.thinkxyz.top来访问博客。

四、发布你的第一篇文章
在终端运行以下指令
然后进入resource目录编辑“这是一篇新的博文.md”内容,要用标准的Markdown语法编写。
这是官方的写作教程:‣
编辑完文章保存后可以使用如下命令,生成本地页面 http://localhost:4000/ ,进行预览
确认无误后使用以下命令,将本地文章推送至GitHub仓库即可
扩展知识
Git是一个什么工具- MacOS和Windows系统的区别在与MacOS是自带Git的,直接在终端里使用git命令,而windows则需要下载和安装Git工具。
- 作者:ThinkXYZ
- 链接:https://thinkxyz.org/article/Hexo%20publish
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。