Personal site

抽屉

一个刻意做小的个人主页。零依赖的静态站生成器、Cloudflare Pages 直接托管, 安全策略按 P2DR 动态模型落地。写完内容跑一次构建就是上线。

Cabinet

One drawer per section. See what is here before opening any of it.

Column

All →

Video

All →

Notes

All →
极简不是少做,是把做过的东西收好。抽屉合上时是平面,拉开才有内容。

Notices

All →
2026-09-28 站点改版:抽屉式首页上线
2026-09-20 托管迁到 Cloudflare Pages
2026-09-01 旧文章链接已变更

What I'm working on

This site

A zero-dependency static site: a ~700-line builder, Markdown content, hosted on Cloudflare Pages, security modelled on P2DR.

  • Node.js
  • Cloudflare Pages
  • 零依赖
View →

Cabinet information architecture

The homepage is a row of drawers, not a feed: see what's here before deciding which to open. Better for long-accumulated content.

  • 信息架构
  • 抽屉
View →

Constructivist design language

Teal base, heavy borders, asymmetric geometry: squares, circles, diagonals, numerals. Minimal but hard — built from form, not illustration.

  • 设计
  • 构成主义
View →

Command palette & search

Cmd / Ctrl + K opens a palette listing every section, video and the search entry; the search page filters by title, body and tags live.

  • 交互
  • 检索
View →

Inline video player

Videos store only a Bilibili BV id; click to play inline in a modal. Comments stay on Bilibili — zero bandwidth, zero transcoding here.

  • B 站
  • 前端
View →

Admin console & direct uploads

Write posts and upload files from the browser. Pre-signed URLs send bytes straight to object storage — the origin only sees a few bytes of signature. For self-hosted mode.

  • R2
  • SigV4
View →

Get in touch

Please don't send sensitive data over public channels. For security issues see docs/SECURITY.md.