我自己使用的 Hexo 写作方案
May 15, 2025
Table of Contents
Table of Contents
准备
我自己用 Obsidian 写笔记,然后使用 git 直接部署,结合 GitHub action 进行联动,直接自动化部署 hexo 三部曲。这里只是我自己的方案,仅供参考。
Obsidian
我的方法是直接将 hexo 的 source 文件夹作为 obsidian 的一个库,我写笔记直接在里面写好。
但是,但是如果你不想折腾(不想学习有关 git 的奇怪知识),我建议直接把整个 hexo 博客文件夹作为 obsidian 的一个仓库,这样你的 git 自动化部署会非常非常方便!

我自己使用的写作辅助 obsidian 插件有:
- Templater(hexo 模板解决)
- Image auto upload (图床方案)
- Git (上传到远程仓库) 基本只要这三个就可以流畅在 obsidian 进行博客写作了。
Templater
Hexo 的文章需要一个 fronter 才可以正常被读取,在 hexo 输入命令行 hexo new post 其实是一件麻烦事,我这里使用的是 obsidian 的 Templater 插件,设置如图:

我自用的 Template 模板如下,可以在你的 source 文件夹内创建一个 Templates 文件夹,新建一个 md 文件,名字任你取,然后复制粘贴输入以下内容:
---
title: <% tp.file.title %>
date: <% tp.date.now("YYYY-MM-DD HH:mm:ss") %>
tags:
categories:
description:
cover:
---
# <% tp.file.title %>
写好一篇 md 文章后,点击侧边栏的 templater 插件,选择你的模板,这样你的 md 文章就自动变成了 hexo 的可识别形式。
Image auto upload
没有图床部署的同学可跳过。
如果你想了解图床部署,我自己使用的是 lskypro 图床配合 cloudflare R2 存储的方法,结合 picGO 使用(我自己将 picGO 替换为了 picList,因为它有云端删除功能)。
你可以查看 picGO官方文档和更好用的 picList 文档 , 配合此插件,即开即用。

至于本地图片的存放方案,我一直苦恼于 hexo 要将图片放到 image 文件夹的操作,并且要克服 obisdian 复制的路径问题,我觉得还是趁早部署一个图床比较好,方便又快捷😉。
Git
在电脑端,你的文件夹内如果有 git 文件夹,该插件可以自动识别,你在里面的 git commit 和 git push 的操作和 vscode 那个自带的没什么区别。
但是我的 obisidian 的笔记库单独只是 source 文件夹,我得自己先 git init 后绑定 submodule 连接源码仓库… 非常麻烦,我这里只建议将整个博客文件夹放入其中吧。
GitHub Action
我参考的是 akilar 大佬 给的教程,这里我只是做出一些自己的 workflow 编写。 ❗先参考操作,我只是给出配置 GitHub Action 的自用配置!
注意不要直接复制粘贴,把里面你的配置改了先。
# GitHub Actions: 自动部署 Hexo 博客
name: 自动部署
on:
push:
branches:
- main # 监听 main 分支,触发部署,如果你的分支不是 main,比如 master 那后面的 main 都要改掉。
release:
types:
- published
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: 检查分支
uses: actions/checkout@v3 # 更稳定
with:
ref: main
submodules: true # 让 GitHub Action 自动拉取 submodule,没配置的可以不写
token: ${{secrets.GITHUBTOKEN }}
- name: 安装 Node
uses: actions/setup-node@v3
with:
node-version: "18"
cache: npm # 让 GitHub 自动缓存 npm 依赖,加快执行速度
- name: 设置时区
run: |
export TZ='Asia/Shanghai'
- name: 缓存 Hexo 依赖
uses: actions/cache@v3
with:
path: node_modules
key: hexo-${{ runner.os }}-${{ hashFiles('package-lock.json') }}
restore-keys: |
hexo-${{ runner.os }}-
- name: 安装 Hexo
run: |
npm install hexo-cli -g
- name: 安装依赖
run: npm install # 直接 `npm install`
- name: 生成静态文件
run: |
hexo clean
hexo generate
- name: 部署到 GitHub Pages
run: |
cd ./public
git init
git config --global user.name '你的github名'
git config --global user.email '你配置的git的邮箱'
git add .
git commit -m "更新博客 $(date +"%Z %Y-%m-%d %A %H:%M:%S") Updated By Github Actions"
git branch -M main
git push --force --quiet "https://你的GitHub名:${{ secrets.GITHUBTOKEN }}@github.com/你的GitHub名/你的GitHub的github.io仓库名.git" main
注意,GitHub 用户名并不是你自己写的名字,而是进入个人主页后,红框位置的名字。
这里也可以参考原教程将名字设为环境变量后,单引号区域填入 ${{ secrets.GITHUBUSERNAME }} 和 ${{ secrets.GITHUBEMAIL }} 也可以。

配置好后,在 git 的直接提交可以同步触发 hexo 三部曲,可以不需要手动进行复制粘贴和命令输入操作咯。
结束
基本操作就这些了,要是有什么更好的优化可以敲敲我,我也想快乐写笔记并且发布😉。 用手机写小文章并且发布,那还是 typecho 之类的动态博客比较方便,和写 qq 空间一样。但是 hexo 稳定并且不需要服务器维护,写点东西更省心一些。玩的开心!