文章
关于前端工程、基础设施、AI 工具链的思考与记录。
2026
tutorial2026-07-04
React 19 + Next.js 16:三个 lint 错误如何引发 hydration mismatch
从 eslint error 到 dev 模式零报错,修复 client boundary 的实战经验
tutorial2026-07-04
Next.js Layout 重新挂载导致的主题闪烁:根因与完美解法
为什么切换语言时明亮模式会闪烁黑屏,以及用 React 状态同步 DOM 属性的 workaround
tutorial2026-07-04
Next.js 博客国际化:内容层与 UI 层的分离架构
两套独立的 i18n 体系如何协作,以及在 URL、阅读时间、Sitemap、SEO 上踩的坑
tutorial2026-07-04
Mermaid 图表:Remark 层 AST 改写与客户端渲染
在 Expressive Code 吃掉所有代码块之前,用 remark 插件把 mermaid 节点偷走
tutorial2026-07-04
MDX 组件架构:行内代码检测、图片 Lightbox 与动态导入
一个 mdx-components.tsx 背后的三个不显眼但关键的设计决策
tutorial2026-07-04
Expressive Code × React 19:脚本注入的三层 workaround
从 rehype 树剥离 script,到 Server Component 重注入,再到 Client 端 hydration 骗术
tutorial2026-07-04
深浅主题全站适配:从 CSS 变量到 Canvas 粒子
一个主题切换按钮,要协调 5 个彼此独立的子系统
tutorial2026-06-07
MDX 文章目录:从 rehype 提取到吸顶布局的踩坑记录
rehype-extract-toc、Portal 修复 fixed、以及「正文第一行到达才吸顶」的滚动逻辑
tutorial2026-06-07
MDX 能力演示
GitHub Alerts、数学公式、GFM 扩展与媒体嵌入
tutorial2026-06-07
Next.js App Router 页面切换动画:踩坑与最终方案
为什么 AnimatePresence 会闪、template.tsx 没效果,以及 pathname 作 key 为什么能 work