把 Hexo 文章文件名、URL 和排序分开管理 这次整理是从 source/_posts 的扫读体验开始的。 文章少的时候,把文件名直接写成公开 URL 的标题段很自然。比如: source/_posts/static-site-cache-control-oss.md source/_posts/mobile-webview-remote-debugging-android-ios.md 看到文件名,就能猜到文章 URL。这个关系很直接,也 2026-06-07
读《置身钉内》:AI 办公里的权力、责任和人的边界 导读原文 PDF 可以在这里下载:《置身钉内》。 这是一份 105 页的长文,作者以钉钉 ONE 项目亲历者的身份,复盘一个 AI 办公产品从立项、发布、共创、迭代到收缩的全过程。它后来被外部转述为一篇在阿里内网刷屏的长文,作者是钉钉悟空事业部 AI 产品经理滕雅辛(花名「幽素」),于 2025 年 6 月入职钉钉,是 ONE 项目较晚进入、也较晚离开的核心产品经理之一。 如果只看产品背景,ONE 2026-06-07
iOS WebKit 中 transform 和 z-index 的一次层级闪烁排查 一个移动 H5 弹窗里有三张奖励卡:中间卡片应该压住左右两张,左右两张轻微旋转并露在后面。Android 上切换 Swiper 时一直正常;iOS 上会在切换瞬间从「中间压着两边」变成「两边压着中间」,很快又恢复正常。 最后修复只改了一行: .reward--center { z-index: 3; transform: translateZ(0); } 这行代码没有 2026-06-05
一个 H5 装饰按钮在 Android WebView 和 iOS Safari 上的两次渲染排查 一个移动 H5 页面里有个固定在右下角的小按钮。按钮本身不复杂:圆角胶囊、渐变底色、生日图标、右侧气球纹理、左上角高光纹理,收起时会变成一个窄按钮。 麻烦点在装饰层。为了贴近设计稿,按钮里用了负坐标纹理、mix-blend-mode、半像素描边、overflow: hidden、圆角和动画。Chrome 桌面看起来正常,不代表移动 WebView 也稳定。这个按钮先后暴露了两个问题: Andro 2026-06-05
Codex Skill 里不应该明文保存密钥 有些配置看起来很像普通文档内容。 比如一个 Figma Personal Access Token。它只是为了让本地脚本调用 Figma REST Images API,把设计节点导成 PNG;放进 Skill 里,后续每次执行都不用再问,看起来最省事。 但这类值不应该写进 Skill。Skill 是可复用的长期指令,密钥是会过期、会泄露、需要轮换的私有凭据。把两者混在一起,短期方便,长期会把风险 2026-06-04
组件状态和就近差异样式 写组件样式时,经常会遇到一个很小但很烦人的问题:组件本身进入了某个状态,真正变化的却是里面一组子元素。 比如一个上传组件进入已选择文件、上传中、上传失败这几种状态时,预览图、按钮、提示文案都会跟着变。问题是,这个状态到底应该放在哪里。 如果状态全散在子元素上,模板很快会变乱;如果样式全堆在文件底部,读代码时又要来回跳。更好的入口是组件根元素:组件自己的状态放在根元素上,子元素只负责根据这个状态改变 2026-06-04
给 Vite Chrome Extension 补一个开发态自动 reload 写 Chrome Extension content script 时,最容易让人烦的是旧运行时:代码已经改了,浏览器还在跑旧版本。 真实开发链路通常是这样:vite build --watch 已经把 dist/content/index.js 和 dist/content/style.css 更新了,Chrome 扩展管理页里的已加载扩展还是旧运行时;就算手动点了 reload,已经打开的目标 2026-06-03
Chrome Extension 里缓存已观察数据该放哪里 最近给一个 Jenkins 页面写 Chrome Extension,最开始只是想把构建历史表格整理得清楚一点:谁触发、什么时候触发、用了什么参数、关联了哪些 Git 变更。 做到后面才发现,Jenkins 本身只保留当前可见窗口里的少量构建。页面上能看到最近 7 条,新的构建一出现,最老那条就掉出窗口。旧构建 URL 也不一定还能打开。扩展当然不能恢复 Jenkins 已经清理掉的数据,但它至少 2026-06-02
Android 和 iOS App WebView 远程调试排查记录 需要调试 App WebView 时,先按平台选入口。Android 11 及以上能无线就优先无线,解决不了再插线兜底;iOS 有线 Web Inspector 目前最稳,Wi-Fi 路线官方支持,但这次没有复现出可检查内容。 Android 的无线调试是不插 USB,不是不用 ADB。它仍然要通过 Android SDK Platform-Tools 里的 adb pair / adb 2026-06-02
静态站点缓存怎么配:从 Hexo 全站协商到 Astro 的 hash 资源 有一次检查自己的 Hexo 博客,发现线上几乎所有 URL 都带着同一个缓存头: Cache-Control: max-age=31536000, must-revalidate 这个配置看起来像是「一年内缓存,但过期后要重新验证」。问题在于,这个站点的 Hexo 产物没有文件 hash:/index.html、/css/main.css、/js/boot.js、/local-search.xm 2026-06-02