Zen Architecture 6.0: 生产级博客构建系统架构白皮书
本文件记录了博客系统在经过 Zen 6.0 (Production Resource Pipeline) 阶段重构后的终极形态。该架构实现了从语义对齐、性能爆发到交互精修的全链路工业级闭环。
一、 目录结构分析 (Directory Hierarchy)
项目采用了模块化原子任务(Task-Based Atomic)设计,源码与产出物理隔离,逻辑与执行高度解耦。
.
├── content/ # 【真理之源】Markdown 博文源文件
├── layouts/ # 【表现层】EJS 全量视觉模板
│ ├── common/ # 公共基类:Header, Footer, Head, Styles
│ └── content/ # 内容特化:Body, Action, Header
├── public/ # 【原始资产】不参与编译但参与管线的预设资源
│ ├── assets/ # 全局 JS/CSS (Prism 等)
│ ├── pages/ # 静态 HTML 页面 (Zen 6.0 深度纳管)
│ └── pwa/ # PWA 协议资产 (Manifest, Icons, Worker)
├── build/ # 【产出层】极致压缩、哈希对齐后的全量静态输出
└── scripts/ # 【逻辑引擎】
├── tasks/ # 原子化任务:Init, RSS, Sitemap, Search
├── utils/ # 核心引擎:MD解析、资源哈希、HTML压缩、路径中心
├── build.js # [指挥总线] 协调 BATCH 并发与管线流转
├── content.js # [内容引擎] 博文处理逻辑封装
└── config.js # [配置中心] 单一事实来源 (SSoT)
二、 技术栈架构 (Technology Stack)
系统严守“低熵”原则,去除了所有非必要的重型框架,确立了极致的性能表现与可维护性。
| 维度 | 技术选型 | 核心优势 |
|---|---|---|
| 构建引擎 | Node.js (ESM) | 原生异步 I/O,支持并行批次处理(Batch Size)。 |
| 模板逻辑 | EJS (Embedded JS) | 极轻量,提供完美的 JavaScript 逻辑注入能力。 |
| 资产处理 | Cheerio | 轻量化 DOM 优化,负责资源哈希拦截与语义包装。 |
| 压缩引擎 | Zen Minifier | 自研零依赖正则压缩,实现静态资产极致减脂。 |
| 检索系统 | Tokenized Search | 自研分词加权检索,实现工业级的检索精度。 |
| 离线生态 | PWA v5 | 基于哈希感应的分层缓存策略,实现弱网秒开。 |
三、 数据流运行机制 (Data Pipeline)
内容的生成是一个从“文本描述”到“哈希化、压缩化生产产出”的闭环过程:
graph TD
A[Markdown 文件 @content/] -->|1. 解析| B(Front-matter & Metadata)
B -->|2. 转换| C[Showdown HTML 渲染]
C -->|3. 语义增强| D[Cheerio Processor: 图注/WebP]
D -->|4. 资源拦截| E{Resource Hashing}
E -->|5. 引用对齐| F{ejs.renderFile}
G[静态页面 @public/pages/] -->|6. 接管| E
F -->|7. 极致脱脂| H[Zen Minifier]
H -->|8. 原子同步| I[build/ 生产目录输出]
I -->|9. 索引构建| J[Search-Data / RSS / Sitemap]
四、 核心规范约定 (Design Specs)
- 分词检索契约 (Search Tokenization):检索系统采用 AND 逻辑与权重评分。标题命中分数权重为描述命中的 5 倍。
- 哈希感应策略 (Hash Sensing):任何带有 8 位指纹的路径被视为永久缓存资源。Service Worker 必须在拦截层对此类资源执行极速 Cache-First 策略。
- 原子化准备 (Atomic Sync):构建初始化阶段严禁使用盲目的
rm -rf,必须通过识别哈希指纹与年份目录进行精准清理,以保护宿主环境(如.git目录)。 - 排版呼吸感规范:博文正文必须强制激活衬线字体栈(Serif Stack),并维持
1.64黄金阅读行高,以确保阅读的沉浸。 - 零污染部署:产出的所有 HTML 必须经过 Zen Minifier 压缩,确保源代码中无任何冗余空格与开发注释。