# static-blog
**Repository Path**: zlmggg/static-blog
## Basic Information
- **Project Name**: static-blog
- **Description**: 禾光知寒(SRE Notes)是一个基于 VitePress 构建的个人 SRE 运维知识库,Markdown 驱动、构建为纯静态站点,通过 Docker + Nginx 部署。
内容覆盖 Linux 运维、服务部署、监控告警、日常排障、容器与云原生(Docker / Kubernetes)、自动化与 IaC、DevOps 与平台工程等方向,主要包含:
- 操作指南:原理讲解 + 可直接复制的
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2026-09-30
- **Last Updated**: 2026-10-15
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 禾光知寒 · SRE Notes
**一个基于 VitePress 的个人 SRE 运维知识库 —— 操作指南 · 命令速查 · 排障训练 · 面试整理**
[在线站点](https://www.sresec.com) · [快速开始](#-快速开始) · [代码结构](#-代码结构与功能说明) · [自定义站点](#-自定义改成你自己的站) · [部署上线](#-部署上线)



---
## 简介
禾光知寒(SRE Notes)是一个用 [VitePress](https://vitepress.dev/zh/) 构建的个人运维知识库,Markdown 驱动、构建为纯静态站点,通过 Docker + Nginx 部署。
内容覆盖 Linux 运维、服务部署、监控告警、日常排障、容器与云原生(Docker / Kubernetes)、自动化与 IaC、DevOps 与平台工程等方向。
> 建这个库的初衷,是让自己遇到问题时能快速搜到、快速回忆处理方法;也希望这些能直接抄走的方案,帮到同样在路上的运维同学。
## ✨ 特性
- **开箱即用的知识库结构**:操作指南 / 命令速查 / 排障训练场 / 面试专区四大板块,导航与目录已规划好;
- **命令速查**:Linux / 网络 / Docker / kubectl / Git / 云原生,按命令拆成独立页面,翻到即用;
- **排障训练场**:50 个典型故障场景,按「现象 → 定位 → 根因 → 解决」编排,练可复用的排查套路;
- **文章元信息条**:分类、难度(初级 / 中级 / 高级)、日期,以及自动估算的阅读时长;
- **Mermaid 图表**:浏览器端渲染架构图 / 流程图 / 时序图,自动跟随深浅色主题;
- **本地全文搜索**:`Ctrl + K` 纯前端搜索,无需服务端;
- **深色护眼主题**:玻璃态导航、终端风格首页、深浅色一键切换;
- **纯静态 + Docker 部署**:一份 Dockerfile,一条命令上线。
## 🧱 目录结构
```text
.
├─ docs/ # 站点内容(VitePress 的 srcDir)
│ ├─ .vitepress/
│ │ ├─ config.mts # ⭐ 站点配置:导航 / 侧边栏 / Markdown 增强
│ │ └─ theme/ # 自定义主题(组件与样式,功能见下节)
│ │ ├─ index.ts # 主题入口:注册组件、挂载 Layout
│ │ ├─ custom.css # ⭐ 全局样式 / 配色 / 玻璃态变量
│ │ ├─ Layout.vue # ⭐ 全局布局中枢
│ │ ├─ Mermaid.vue # Mermaid 图表渲染组件
│ │ └─ components/
│ │ ├─ Home.vue # ⭐ 首页(首屏 + 项目 + 分类)
│ │ ├─ MetaBar.vue # 文章元信息条
│ │ └─ ThemeToggle.vue # 主题切换按钮
│ ├─ index.md # 首页入口(挂载 )
│ ├─ about.md # 关于页
│ ├─ roadmap.md # 学习路线
│ ├─ guide/ # 操作指南(聚合页 + 系列文章)
│ ├─ reference/ # 命令速查(速查页 + cmd-* 详解)
│ ├─ cases/ # 排障训练场(t-* 案例 + 排障记录)
│ ├─ projects/ # 我的项目(项目总览 + 项目文章)
│ ├─ interview/ # 面试专区
│ └─ public/ # 静态资源(logo / fonts 字体 / 插图)
├─ scripts/
│ └─ gen-feed.mjs # 构建后生成 RSS 订阅源
├─ deploy/ # 部署示例(Dockerfile / compose / nginx)
├─ .github/workflows/build.yml # CI:push / PR 自动构建
├─ FILES.md # 英文文件名 ↔ 中文标题对照表
└─ package.json
```
## 🧩 代码结构与功能说明
这一节讲清楚每个组件、脚本、配置文件分别负责什么,方便你快速定位「想改某个效果,该动哪个文件」。
### 1. 主题入口 `theme/index.ts`
- 继承 VitePress 默认主题,挂载自定义 `Layout`;
- 全局注册两个组件:`Mermaid`(图表)、`Home`(首页);
- 引入全局样式 `custom.css`。
### 2. 全局布局中枢 `theme/Layout.vue`
全站级逻辑都在这里,分四块:
| 功能区 | 作用 |
|---|---|
| 主题切换 `provide('toggle-appearance')` | 从点击位置**圆形涟漪扩散**切换深浅色(View Transitions API);浏览器不支持时直接切换 |
| 右侧大纲自动滚动 | 监听大纲激活项变化,把当前标题自动滚进可视区;切换路由时重置 |
| 复制按钮增强 | 给代码块复制按钮注入「复制 / ✓ 已复制」文字;用 MutationObserver 应对 SPA 路由切换后出现的新按钮 |
| 插槽挂载 | `#layout-top` 全局背景、`#doc-before` 元信息条、`#nav-bar-content-after` 主题按钮、`#layout-bottom` 页脚 |
页脚内容(构建说明 / 版权 / 备案号)在这个文件的 `#layout-bottom` 插槽里。
### 3. 首页组件 `theme/components/Home.vue`(改动最频繁的文件)
**`