每篇文章开头要填十几个字段,写错了构建还不报错。我花了两天做了个本地写作台 CloakWriter:表单管元数据、编辑器管正文、预览直接复用博客自己的渲染链。这篇写它为什么存在,以及几个我反复权衡过的决定。
CATEGORY · TECH
技术
代码、系统、构建,以及过程中遇到的问题与解法。
58 Articles · 2024—2026
不是一篇「怎么拆」的技术文档,而是一篇「为什么拆」的实践记录。当写一句话要先穿过一整套提交仪式,文章和代码就该研究各回各家了。122 篇文章、45 张图,现在住在独立的私有仓库里。
两次更新做的是同一件事。v2.3.0 把散落的旧文章收进七部书系、写了三篇总纲;v2.4.0 给每篇文章加上 TL;DR、阅读路线、继续阅读和内容类型。文章一篇没多,但读完一篇之后你知道下一条路在哪。
Astro Content Layer、Cloudflare Pages、GitHub Actions 定时构建、filterPublished 日期过滤——博客的完整技术链路拆解。
SSH 加固、防火墙、fail2ban、定期备份。这四件事做对了,服务器被黑的概率降九成,剩下的交给运气。
wiki 站点建好以后内容一直不怎么动,我给它加了个每天自动发一条 60 秒新闻的脚本。这篇写这个脚本怎么来的、改了几轮,以及自动发布这类东西真正难的地方在哪。
缓存策略、权限陷阱、cron 延迟、密钥管理,半年里踩过的 7 个坑,每个都附解决方案。
v1.9.5 是一次偏「工程化 + 体验打磨」的更新:深色模式支持系统跟随、此刻页新增 GitHub 风格发布热力图、站内搜索支持缩略图与 tag:/category: 筛选、集成 KaTeX 数学公式、新增建文与断链扫描脚本、接入 Lighthouse CI 自动审计,并补全了结构化数据与安全响应头。
给博客加上了「划词高亮 + 读书笔记」(数据只存本地),把站内搜索升级成 Pagefind(中文分词、模糊匹配、全文检索),还顺手修掉了几个藏了很久的 bug。
记录本轮 Grove 主题的视觉改造:活力蓝主色、增强型侧边栏、全站衬线字体、固定页脚、首页区块重构,以及两个顺手修掉的隐藏 bug。
从旧版 content collections 迁移到 Astro 5 的 Content Layer API,构建速度提升 5 倍,内存少了一半。记录踩坑过程和实际改动。
Codex CLI 开源免费上手快,Claude Code v2.1 记忆体系成熟适合长期项目。用了三个月后,我的结论是:不是二选一,是按场景分配。
从零开始在服务器上用 Docker 部署 Misskey 和 Mastodon 两个主流 Fediverse 平台,从环境准备到配置细节全程实录,并做横向对比,帮你选最适合自己那个。
不依赖 GitHub,不担心代码被平台拿走,一台小主机跑一切。从零开始装 Gitea,配邮件通知,接 Cloudflare 隧道,全程可跑。
用了三年 npm,半年 yarn,最后在 pnpm 上停下来了。不是跟风,是硬盘不够用了——node_modules 占了 12GB。
VisualEditor、Cargo、PageForms、Cite、ConfirmEdit……从编辑器到知识管理,从安全防护到页面美化,聊一聊我这些年折腾 MediaWiki 扩展踩过的坑和留下的精华。
从 Obsidian 到博客评论系统,拆解本地优先的核心组件:本地存储、后台同步、冲突解决,以及如何在不过度工程的前提下真正落地
从博客到数字花园:我是怎么用 seed/bud/bloom 重新组织的,这套系统怎么用代码实现,以及 v1.5.0 全站花园主题化改造。
Vaultwarden 自部署完整流程,10 分钟跑起来,从此只记一个主密码。
用黄金圈法则穿透用户表象,从What、How、Why三层拆解需求本质,避免把资源浪费在昙花一现的产品上。
厌倦了 Twitter/X 的算法和审核?用 Docker 在你自己的服务器上跑一个 Mastodon 实例,加入联邦宇宙(FediVerse),找回社交媒体的主动权。
厌倦了被中心化平台绑架?用 Synapse 搭一个自己的 Matrix 服务器,实现端到端加密、去中心化联邦、安全自托管的即时通讯。
从实用主义角度讲解 TypeScript 高级类型技巧,包括内置工具类型、条件类型、映射类型的实战用法,避开学术化的表述,用真实场景驱动理解。
从镜像、容器、仓库的基础概念入手,结合实战案例讲清楚 Dockerfile 编写技巧、docker-compose 多服务编排,以及日常开发中那些容易踩的坑。
很多人觉得读源码就是 clone 下来从头看。错了。读源码的正确方式是带着具体问题去翻特定文件。这篇讲我的四步源码阅读法。
Anthropic 推出的 MCP 协议正在成为 AI Agent 连接外部工具的事实标准。OpenAI、Google 都已支持。这篇讲清楚它是什么、为什么重要、怎么上手。
明明有大站可以直接注册,我还是在自己那台服务器上装了一个 Mastodon。这篇写清楚为什么这么选、部署时撞了哪些具体的坑,以及一个人维护一个实例到底有多麻烦。
GitHub Copilot、Cursor、Claude Code 用了半年,AI 编程工具的最佳用法不是让它写完整功能,而是让它干你不愿意干的活。
Vue 4 还没来,React 19 稳了,Vite 6 和 Bun 才是真主角。2025 年前端的战场从框架之争转向了工具链之争。
从选题到成稿的完整写作框架,覆盖知识延伸、示例构建、架构取舍和高阶技法,让每篇技术文章既有干货又有可读性。
不用服务器、不用数据库,用 Cloudflare Workers + KV 在边缘节点记录页面访问。完整的路由设计、数据存储和避坑指南。
面向静态博客站长安全防御指南,覆盖 DNS 配置、CDN WAF、评论安全、API 保护和爬虫对抗。
回顾博客字体从系统字体到 Google Fonts 到 Noto Serif SC 阅读优先演进过程,每个阶段选择理由、踩坑和反思。
从系统默认字体到 Google Fonts 到自托管,从随手引入到用脚本批量下载 woff2,字体方案这件事,我前后改了四版。
从图片压缩到首屏加载,记录云图札记博客的性能优化历程。Sharp WebP 压缩、响应式 srcset、字体加载策略——每个百分点都值得争取。
从实际迁移经验出发,深入 Astro 的两种渲染模式,分析适用场景、性能差异和架构选择。
三篇博文在 Cloudflare Pages 上返回 404,而本地预览正常。记录排查过程、根因和修复方案。
从集成难度、搜索速度、构建开销、成本四个维度对比博客搜索的五种主流方案。
面向已有 Astro 博客基础、想进阶部署运维的读者。覆盖 CI-CD 流水线、多环境部署、监控告警、回滚策略、性能优化等实战内容。
CSS 变量不只是"可以改的颜色值"——它是设计系统的骨架。从色板、间距、字体到暗色模式,看看如何用 CSS 变量构建可维护的全站设计体系。
一篇文章从写完到渲染给读者,经历了哪些步骤?深入 Astro 的 Markdown 处理流程。
从构建速度、学习曲线、生态、灵活性四个维度对比主流静态站点生成器,给出选型建议。
深入 Astro Content Collections 的高级能力:自定义路由映射、分页策略、schema 联合校验、内容关系建立。
深入 Astro scoped CSS 的编译过程,解释为什么动态 DOM 无法匹配 scoped 样式。