Lazy loaded image
技术分享
Hexo+GitHub+Cloudflare Page部署
字数 2851阅读时长 8 分钟
2025-7-27
2025-8-7
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 -vnpm -v两个命令,如果能够返回版本号,就说明安装成功了。
notion image
notion image

2. 安装Hexo


  • 更换镜像源。由于默认npm安装包下载源速度慢,我们用一下命令换成华为的镜像源速度更快。
  • 安装Hexo。输入命令sudo npm install -g hexo-cli 后,再输入电脑的登陆密码,完成安装Hexo。
notion image
  • 创建博客项目目录。执行 hexo init thinkblog 命令创建项目文件夹,用于存放全部博客文章。紧接着用 cd my-blog 命令进入到文件夹,然后执行 npm install 命令安装依赖包。若安装成功,博客项目文件夹内有以下内容。
notion image
💡
  • node_modules:依赖包
  • scaffolds:生成文章的一些模板
  • source:用来存放你的文章
  • themes:主题
  • .npmignore:发布时忽略的文件(可忽略)
  • _config.landscape.yml:主题的配置文件
  • config.yml:博客的配置文件
  • package.json:项目名称、描述、版本、运行和开发等信
如果执行 npm install 命令你遇到以下错误犯反馈,由于 权限问题或缓存冲突 导致的。
notion image
那么可以使用以下三条命令来解决:
步骤
命令
清理缓存
npm cache clean --force
修复权限
sudo chown -R $(whoami) ~/.npm
重新安装
npm install
notion image

3. 把网页跑起来

接下来我们在终端继续执行 hexo generate 和 hexo server 这2条命令,在本地把 hexo 服务跑起来。这样我们就可以,在本地网址的4000端口http://localhost:4000/预览文章效果。
notion image
notion image
打开 http://localhost:4000/ 这个本地网址,已经可以正常访问了。

4. 安装vscode管理博客

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

二、托管到github

通过第一步我们已经实现将网站部署到了本地,通过本地的链接访问,但互联网其他人无法直接访问。接下来,我们需要把整个项目托管到github上,通过github生成一个网址,互联网上其他人也可以访问博客内容。

1. 新建空仓库

注册并登录GitHub,进入首页右上角“+”号,点击“New repository”。只需要填写Repository name为<用户名>.github.io,其中用户名建议设置为GitHub的用户名。然后直接点击Create repository完成创建。
notion image
notion image

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 密钥(如果你没有)
notion image
一路回车(不要设置密码),生成后的公钥会保存在:id_rsa.pub 内。

步骤三:将 SSH 公钥添加到 GitHub
存放.ssh文件夹一般是隐藏状态,那么使用用“前往文件夹”功能打开可以打开,或直接使用命令行打开公钥文件,复制公钥内容(别复制 .ssh 目录整个文件,复制的是 .pub 文件):
将输出的那一整行复制。或者找到id_rsa.pub 文件打开,复制公钥内容。
notion image
第四步骤:配置GitHub 账户公钥
登录 GitHub 账户,进入右上角头像 → Settings(设置)→ SSH and GPG keys,点击 New SSH key,Title 随便填(如 “MacBook Pro”),Paste Key 处粘贴你刚复制的内容,点击保存。
notion image
notion image
notion image
步骤四:测试连接
在终端测试 SSH 是否成功连上 GitHub:
首次会提示:Are you sure you want to continue connecting (yes/no)?输入:yes,如果一切正常你会看到:
notion image
不设置SSH,用 HTTPS 方式部署的方法
 

5. 可选步骤:配置 Git 用户信息

第一次用 Git 时,建议设置全局用户名和邮箱(用于生成提交记录):
查看当前配置:
notion image
user.nameuser.email 的作用是什么

6. 发布文章

当文章的markdown文件写好后,就可以运行以下命令发布。
💡
  • hexo clean:删除之前生成的文件,可以用hexo cl缩写。
  • hexo generate:生成静态文章(HTML + CSS + JS),可以用hexo g缩写
  • hexo deploy:部署文章,可以用hexo d缩写
注意:需要回到博客项目文件目录下运行该命令。
notion image
发布之后,通过仓库名thinkxyz8.github.io/就可以访问。
notion image

三、使用 Cloudflare 构建

为什么还要通过 Cloudflare Pages
网页其实已经托管到了GitHub,而且有网址,如果你拥有自己的域名,可以用通过CNAME类型的DNS解析将自己的域指向该网址。但国内访问GitHub的内容收到墙的限制,网站访问速度并不友好,但是将网页内容部署在Cloudflare上,不但访问速度更快,而且可绕过国内访问限制。

1. 连接GitHub构建和部署页面

登录cloudflare主页,进入【计算(Workers)】→【Workers 和 Pages】→点击【创建】
notion image
选择【Pages】→选择导入现有Git存储库【开始使用】
notion image
选择刚刚GitHub账号和项目库ThinkXYZ8.github.io,点击【开始设置】
notion image
在设置构建和部署界面直接点击【保存并部署】
notion image
等待2分钟左右即可完成构建和部署。看到提示“成功!您的项目已部署到以下区域:全球”既代表部署成功。那么可以通过下方提供的连接【https://thinkxyz8-github-io.pages.dev/】访问博客主页。
notion image
notion image
点击右下角【继续处理项目】

2. 绑定自定义域名

我是有自己的域名的,那我绑定一个自己的域名。点击【自定义域】→【设置自定义域
notion image
在输入框填写自定的域名,我这里天的是hexo.thinkxyz.top ,点击【继续】
notion image
可以看到他是新建了一个CNAME类型的域名解析。点击【激活域】
notion image
那么后续,我们可以通过hexo.thinkxyz.top来访问博客
notion image

四、发布你的第一篇文章

在终端运行以下指令
然后进入resource目录编辑“这是一篇新的博文.md”内容,要用标准的Markdown语法编写。
这是官方的写作教程:

编辑完文章保存后可以使用如下命令,生成本地页面 http://localhost:4000/ ,进行预览


确认无误后使用以下命令,将本地文章推送至GitHub仓库即可

扩展知识

Git是一个什么工具
  • MacOS和Windows系统的区别在与MacOS是自带Git的,直接在终端里使用git命令,而windows则需要下载和安装Git工具。
 
上一篇
如何在ahrefs中验证域名所有权
下一篇
阅读时“大脑思维变慢、脑袋快装满”的感觉

评论
Loading...