最近,无意中看到一个博客主题:hexo-theme-stellar ,第一眼就被它优雅的设计所吸引。随后我仔细阅读了它的使用文档和一些实际案例,越发觉得它强大而富有美感,尤其触动我的是文档中的一句话:

真正的简约远不止删繁就简,而是在纷繁中建立秩序

这句话彻底动摇了我之前一直追求的极简主义理念,之前我使用的是hexo-theme-A4,它确实非常简洁,但在功能和内容组织上略显单一。而 Stellar 不仅外观现代,还内置了丰富的模块和组件,支持博客、知识库、专栏、笔记等多种内容形式,真正做到了“简约而不简单”。
于是我决定动手试一试。按照官方文档,我把感兴趣的配置都体验了一遍后,经过几个小时冷静思考,决定当晚就把博客迁移到Stellar,并借此机会好好梳理一下自己的建站历程——毕竟之前尝试过不少博客平台和主题,却一直没有系统的记录,有些细节已经模糊甚至遗忘了。

前置说明

主题介绍

Stellar 是一个极为强大的综合型 Hexo 主题,包含博客系统、知识库系统、专栏系统、笔记系统,内置海量的标签和动态数据组件。

迁移流程

由于迁移前后站点的框架都是hexo,这个我的迁移工作降低了不少难度和时间。

主要迁移流程:

1
2
3
4
5
6
7
8
9
10
11
12
# 1. 初始化新站点
hexo init blogsite

# 2.安装Stellar主题
npm i hexo-theme-stellar

# 3.在_config.yml中,修改配置
theme: stellar

# 4.创建主题配置文件(在根目录新建 `_config.stellar.yml`,所有主题相关配置在此编辑。)
touch _config.stellar.yml

接下来,将原博客source目录下的所有内容全部拷贝到新站点对应目录中,基本实现无缝切换(主要还是因为我使文档中使用的语法都是通用语法,基本没有使用主题定制语法)。

发布流程

我采用Github + CI 的自动化发布方式:

  • 私有仓库 blogsite:存放 Hexo 源码,并设置 GitHub Actions 工作流
  • 公开仓库 sswfive.github.io:存放生成的静态页面,用于 GitHub Pages 展示
    撰写新文章后,推送至私有仓库触发 CI 流程(如 GitHub Actions),自动构建并发布到公开仓库,即可通过 https://sswfive.github.io 访问。

核心配置步骤

  1. 生成部署密钥对
1
2
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f github-actions-deploy

  • 将生成的 github-actions-deploy.pub 内容添加到公开仓库的 Deploy Keys(勾选允许写入)
  • 将 github-actions-deploy 私钥内容添加到私有仓库的 Secrets,命名为 DEPLOY_PRIVATE_KEY
  1. 创建 GitHub Actions 工作流文件
  • 在私有仓库创建 .github/workflows/deploy.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
name: Deploy to GitHub Pages

on:
push:
branches: [main]
workflow_dispatch:

jobs:
hexo-deployment:
runs-on: ubuntu-latest
env:
TZ: Asia/Shanghai
steps:
- name: 1. checkout 分支
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: 2. Node 环境安装
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'

- name: 3. 安装依赖和主题
run: |
npm ci --no-audit --no-fund
npm i hexo-theme-stellar
echo "✅ 依赖安装完成"

- name: 4. 恢复文章修改时间
run: |
git ls-files 'source/_posts/**/*.md' -z | while IFS= read -r -d '' file; do ts=$(git log -1 --format=%ct -- "$file" || true) if [ -n "$ts" ]; then touch -d "@$ts" "$file"; fi
done

- name: Generate static files
run: npm run build # 或 hexo generate

- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v3
with:
deploy_key: ${{ secrets.DEPLOY_PRIVATE_KEY }}
external_repository: sswfive/sswfive.github.io # 你的公开仓库
publish_branch: main # 公开仓库的分支
publish_dir: ./public # Hexo 生成目录
commit_message: '🚀 Deploy from private blogsite repo'

主要插件与配置


本站由 BluesSen 使用 Stellar 1.33.1 主题创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

本站总访问量