Hugo 博客自动化工作流完整指南

Hugo 博客自动化工作流完整指南 这是一份详尽的工作流文档,记录了从零搭建 Hugo + Obsidian + GitHub Actions 自动化博客系统的完整过程,包括所有细节、注意事项和故障排除方法。 📋 目录 系统架构 仓库结构 配置步骤 工作流详解 日常使用 故障排除 注意事项 进阶优化 🏗️ 系统架构 设计理念 目标: 实现"写作 → 提交 → 自动发布"的无缝工作流。 核心原则: 内容与配置分离 环境可复现 自动化部署 本地与 CI 一致 三仓库架构 hugo-server (主仓库) ├── jesse-blog/ │ ├── content/ → obsidian-notes (子模块) │ ├── public/ → JiashuaiXu.github.io (子模块) │ ├── themes/ │ └── hugo.toml └── flake.nix obsidian-notes (内容仓库) ├── posts/ ├── about/ ├── archive/ └── .github/workflows/deploy.yml JiashuaiXu.github.io (部署仓库) └── (Hugo 生成的静态文件) 职责划分 仓库 用途 操作频率 是否需要手动操作 hugo-server Hugo 配置、主题、Nix 环境 偶尔更新配置 是 obsidian-notes 编写内容(日常工作) 频繁提交 是 JiashuaiXu.github.io 托管静态网站 自动更新 否 📁 仓库结构 hugo-server (主仓库) hugo-server/ ├── .gitmodules # ⚠️ 关键:子模块配置 ├── flake.nix # Nix 环境定义 ├── deploy.sh # 本地部署脚本 └── jesse-blog/ ├── content/ # → obsidian-notes (子模块) ├── public/ # → JiashuaiXu.github.io (子模块) ├── themes/ │ └── hugo-PaperMod/ # 当前使用的主题 └── hugo.toml # Hugo 配置文件 obsidian-notes (内容仓库) obsidian-notes/ ├── .github/workflows/ │ └── deploy.yml # ⚠️ 自动部署工作流 ├── README.md ├── posts/ # 博客文章目录 ├── about/ └── archive/ ⚙️ 配置步骤 1. 创建 obsidian-notes 仓库 在 GitHub 创建空仓库: ...

 ·   ·  views

博客自动化部署配置全记录

博客自动化部署配置全记录 记录从零开始搭建 Hugo + Obsidian + GitHub Actions 自动化博客系统的完整过程。 🎯 目标 实现一个完全自动化的博客发布流程: 在 Obsidian 中编写 Markdown 文章 提交到 Git 仓库 自动编译并发布到 GitHub Pages 🏗️ 架构设计 仓库结构 hugo-server (主仓库) ├── jesse-blog/ │ ├── content/ → obsidian-notes (子模块) │ ├── public/ → JiashuaiXu.github.io (子模块) │ ├── themes/ │ └── hugo.toml └── flake.nix obsidian-notes (内容仓库) ├── posts/ ├── about/ ├── archive/ └── .github/workflows/ └── deploy.yml # 自动部署工作流 JiashuaiXu.github.io (部署仓库) └── (Hugo 生成的静态文件) 三个仓库的职责 仓库 用途 操作频率 hugo-server Hugo 项目配置、主题管理 偶尔更新 obsidian-notes 编写内容(日常操作) 频繁提交 JiashuaiXu.github.io 托管静态网站 自动更新 📝 实施步骤 1. 子模块化内容管理 问题: 原来 content/ 目录直接在主仓库中,不便于独立管理。 ...

 ·   ·  views

使用 Nix Flakes 管理 Hugo 开发环境

使用 Nix Flakes 管理 Hugo 开发环境 Nix Flakes 提供了可复现的开发环境,完美适配 Hugo 项目。 为什么选择 Nix? 可复现性:任何人都能获得完全相同的环境 隔离性:不污染系统环境 版本锁定:确保依赖版本一致 flake.nix 配置 { description = "Hugo Development Environment"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; }; outputs = { self, nixpkgs }: { devShells.default = pkgs.mkShell { buildInputs = [ pkgs.hugo pkgs.git ]; }; }; } 使用方法 # 进入开发环境 nix develop # 启动本地服务器 hugo server -D # 构建站点 hugo -D 简单高效!⚡

 ·   ·  views
total views · visitors