Jekyll 博客项目架构文档 (AI 参考文档)
Jekyll 博客项目架构文档 (AI 参考文档)
项目元数据
- 项目名称: 个人博客
- 技术栈: Jekyll, GitHub Pages, Markdown, Ruby
- 仓库位置: GitHub - blog
- 部署状态: 已成功部署
- 访问地址: https://geyu210.github.io/blog
- Jekyll版本: 3.10.0 (GitHub Pages v232)
- 主题版本: minima 2.5.1
- 最后更新: 2024-03-17
项目概览
这是一个基于 Jekyll 的静态博客系统,使用 GitHub Pages 进行托管。项目采用 GitHub Pages 默认的 Jekyll 环境(v3.10.0),使用 minima 主题(v2.5.1),并集成了标准 Jekyll 插件。博客采用 Markdown 格式编写文章,通过 GitHub Actions 自动构建和部署。
项目目录结构与文件职责
blog/ # 项目根目录
├── _posts/ # 博客文章目录,所有文章均存放于此
│ └── YYYY-MM-DD-title.md # 文章文件命名格式
├── .github/ # GitHub相关配置
│ └── workflows/ # GitHub Actions工作流配置
│ └── pages.yml # 自动构建部署配置
├── _config.yml # Jekyll配置文件,定义站点设置和插件
├── Gemfile # Ruby依赖管理,定义博客所需的Ruby包
├── Gemfile.lock # Ruby依赖版本锁定
├── index.md # 网站首页
├── assets/ # 资源文件目录
│ └── main.scss # 主样式文件
├── PROJECT_ARCHITECTURE.md # AI参考文档(本文件)
├── BLOG_POST_GUIDE.md # 博客文章管理指南
├── AI_COLLABORATION_GUIDE.md # AI协作指南
├── .gitignore # Git忽略配置
└── README.md # 项目说明文档
核心组件与依赖关系
1. Jekyll 核心
- 版本: 3.10.0 (GitHub Pages v232)
- 主题: minima 2.5.1
- 主题路径: /usr/local/bundle/gems/minima-2.5.1
- 配置文件: _config.yml
- 主要功能:
- 静态站点生成
- Markdown 解析和转换
- 模板渲染
- 资源文件处理
2. Jekyll 插件系统
- 插件配置位置: _config.yml 和 Gemfile
- 核心插件:
jekyll-feed
: 生成RSS订阅源jekyll-seo-tag
: 添加SEO元标签jekyll-sitemap
: 生成站点地图jekyll-paginate
: 博客文章分页功能
- 其他启用的插件:
jekyll-coffeescript
: CoffeeScript支持jekyll-commonmark-ghpages
: CommonMark支持jekyll-gist
: GitHub Gist嵌入支持jekyll-github-metadata
: GitHub元数据支持jekyll-relative-links
: 相对链接支持jekyll-optional-front-matter
: 可选的Front Matterjekyll-readme-index
: 自动使用README作为索引jekyll-default-layout
: 默认布局支持jekyll-titles-from-headings
: 从标题生成页面标题
3. 解析器与处理器
kramdown-parser-gfm
: GitHub风格的Markdown解析器
4. 组件依赖图
graph TD
A[Jekyll Core v3.10.0] --> B[Minima Theme v2.5.1]
A --> C[Jekyll Plugins]
A --> D[Kramdown GFM Parser]
C --> E[核心插件]
C --> F[扩展插件]
E --> E1[jekyll-feed]
E --> E2[jekyll-seo-tag]
E --> E3[jekyll-sitemap]
E --> E4[jekyll-paginate]
F --> F1[jekyll-github-metadata]
F --> F2[jekyll-relative-links]
F --> F3[其他辅助插件]
G[GitHub Actions] --> H[Jekyll Build]
H --> I[GitHub Pages]
数据流动与处理逻辑
1. 内容处理流程
Markdown文章(_posts/*.md)
→ Jekyll解析器(处理Front Matter)
→ Kramdown GFM解析Markdown
→ 主题模板渲染(minima主题)
→ 生成静态HTML
→ 部署到GitHub Pages
2. 构建部署流程
Git Push到main分支
→ 触发GitHub Actions(.github/workflows/pages.yml)
→ actions/jekyll-build-pages@v1处理
→ 输出到_site目录
→ actions/upload-pages-artifact@v3上传
→ actions/deploy-pages@v4部署
3. URL路径映射
| 内容类型 | 文件位置 | 生成的URL路径 | |———|———-|————-| | 首页 | index.md | / | | 博客文章 | _posts/YYYY-MM-DD-title.md | /YYYY/MM/DD/title.html | | 分类页面 | 自动生成 | /categories/ | | 标签页面 | 自动生成 | /tags/ | | RSS订阅 | 插件生成 | /feed.xml | | 站点地图 | 插件生成 | /sitemap.xml |
配置文件解析
1. _config.yml 键值对说明
title: "博客标题" # 网站标题
description: "网站描述" # 网站描述,用于SEO
baseurl: "/blog" # 子路径,与GitHub仓库名对应
url: "https://..." # 完整URL前缀
theme: minima # 使用的主题
plugins: # 启用的插件列表
- jekyll-feed
- jekyll-seo-tag
- jekyll-sitemap
- jekyll-paginate
paginate: 5 # 每页显示的文章数
2. Gemfile 依赖说明
gem "github-pages" # GitHub Pages兼容环境(v232)
gem "webrick" # HTTP服务器(本地开发用)
3. GitHub Actions 配置说明
工作流文件 .github/workflows/pages.yml
定义了:
- 触发条件: 推送到main分支
- 构建步骤: 使用Jekyll官方构建Action
- 部署步骤: 上传并发布到GitHub Pages
文章格式规范
1. Front Matter 必要字段
---
layout: post # 使用的布局模板
title: "文章标题" # 文章标题
date: YYYY-MM-DD HH:MM:SS # 发布日期和时间
categories: [分类1, 分类2] # 文章分类(可多个)
tags: [标签1, 标签2] # 文章标签(可多个)
---
2. Markdown 语法支持
- 标准 Markdown: 标题、段落、列表、链接等
- GitHub Flavored Markdown: 表格、代码块高亮、任务列表等
- Kramdown GFM: GitHub风格的Markdown扩展语法
- Jekyll Liquid 语法: 模板标签、条件语句、循环等
开发与维护指南
1. 本地开发环境设置
- Ruby 环境: 2.6.0 或更高版本
- 依赖安装:
bundle install
- 本地预览:
bundle exec jekyll serve
- 预览地址: http://localhost:4000/blog/
2. 常见修改场景
- 添加新文章: 在
_posts
目录创建文件 - 修改主题: 更新
_config.yml
中的 theme 值 - 添加自定义样式: 创建或修改
assets/main.scss
文件 - 添加新页面: 在根目录创建 .md 或 .html 文件
3. 故障排除与调试
- 构建日志: GitHub Actions 构建日志
- 本地调试:
bundle exec jekyll build --verbose
- 依赖冲突: 注意 GitHub Pages gem 版本限制(v232)
AI助手操作指引
1. 访问文章内容
- 需查看现有文章: 检索
_posts
目录下的 .md 文件 - 了解站点结构: 参考
_config.yml
配置
2. 常见任务处理流程
- 创建新文章: 按
YYYY-MM-DD-title.md
格式在_posts
目录添加 - 修改站点配置: 编辑
_config.yml
文件 - 修改页面布局: 需理解 minima 2.5.1 主题结构
- 添加自定义样式: 修改
assets/main.scss
文件
3. 资源引用方式
- 内部链接:
[文本](/blog/YYYY/MM/DD/title.html)
- 图片引用:

- 其他页面:
[文本](/blog/page-name/)
4. Liquid语法注意事项
- 在Markdown文件中不要直接使用未转义的Liquid标签
- 避免使用Jekyll特定的链接标签如
post_url
- 使用常规Markdown链接语法和绝对/相对URL
- 如需展示Liquid语法示例,使用代码块并用反引号转义
项目演化计划
- 添加评论功能
- 实现自定义主题
- 增加搜索功能
- 添加分析统计
- 解决GitHub Pages依赖警告
- 添加分页索引模板