我自己使用的 Hexo 写作方案

This post is not yet available in English. Showing the original version.

May 15, 2025

Table of Contents
Table of Contents

给可爱的安宝 @wiliyaya 的,我的 hexo 笔记在我的笔记本中。

准备

我自己用 Obsidian 写笔记,然后使用 git 直接部署,结合 GitHub action 进行联动,直接自动化部署 hexo 三部曲。这里只是我自己的方案,仅供参考。

Obsidian

我的方法是直接将 hexo 的 source 文件夹作为 obsidian 的一个库,我写笔记直接在里面写好。 但是,但是如果你不想折腾(不想学习有关 git 的奇怪知识),我建议直接把整个 hexo 博客文件夹作为 obsidian 的一个仓库,这样你的 git 自动化部署会非常非常方便!

我自己使用的写作辅助 obsidian 插件有:


Templater

Hexo 的文章需要一个 fronter 才可以正常被读取,在 hexo 输入命令行 hexo new post 其实是一件麻烦事,我这里使用的是 obsidian 的 Templater 插件,设置如图: 只设置了一个 Template folder location 指定了模板文件夹

我自用的 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 commitgit 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 稳定并且不需要服务器维护,写点东西更省心一些。玩的开心!