什么是 Serverless Blog?

这是一个基于 Cloudflare Pages + Workers + D1 构建的无服务器博客系统。无需 VPS,无需 Node.js 长期运行实例,所有逻辑运行在 V8 Isolate 边缘节点上。

核心技术栈

  • 静态生成: Hexo + hexo-renderer-markdown-it
  • UI 框架: MDUI 2 原生 Web Components + Liquid Glass SVG 光学管线
  • 边缘计算: Cloudflare Pages + Workers (< 1 MiB)
  • 数据库: Cloudflare D1 (SQLite)
  • 内容发布: Telegram Bot API 10.2 InputRichMessage AST + GitHub REST API GitOps

Liquid Glass UI

本站采用物理光学建模的液态玻璃 UI,通过 SVG <feDisplacementMap> 模拟真实折射:

  • 色散: 红/绿/蓝三通道分别应用 scale="-20/-24/-28" 的错位折射
  • 高光: feSpecularLighting + fePointLight 计算动态法线光照
  • 性能: 所有玻璃元素强制 contain: layout style paint 隔离光栅化

Telegram 双向同步

博客评论和 Telegram 群组讨论实时同步:

  1. 博客 → TG: 新文章通过 sendRichMessage 广播到 Telegram 频道
  2. TG → 博客: Telegram 群组的回复自动写入 Cloudflare D1

使用 @telegraf/entity 库正确处理 UTF-16 代码点偏移,防止 emoji 导致的 Markdown 乱码。

GitOps 乐观锁

文章发布流程:

1
2
3
GET /api/admin/sha?path=_posts/xxx.md  → 获取 blob sha
PUT /api/admin/publish { sha, content } → 携带 sha 实现乐观锁
409 Conflict → 文件已被并发修改,需重新获取 sha

Author: ZGQ Inc.