```html 陈鑫杰web陈鑫杰的web不是那种一眼惊艳的页面。我第一次打开它的陈鑫时候,甚至觉得有点简陋——没有花哨的陈鑫入场动画,没有满屏的陈鑫渐变卡片,连字体都只是陈鑫默认的 他管这个叫“个人工作台”,陈鑫其实更像一个公开的陈鑫草稿本。左上角固定着一个深色模式切换按钮,陈鑫点下去整个页面会从冷灰过渡到炭黑,过渡时间精确到200毫秒——我特意用开发者工具看过, 为什么是web,不是app他试过用Notion搭知识库,也用过Obsidian发布插件。最后回到手写HTML+CSS+一点点原生JS。原因特别实在:Notion的数据库视图在移动端会横向溢出,Obsidian的发布服务要绑定域名还得付费。“我就想放点代码片段、读书笔记和偶尔写的工具函数,犯不着为这个学一套新的构建工具。” 于是他的web结构简单到粗暴:一个 一个细节:他的 main.js里有一段处理代码块复制功能的逻辑,只有12行。但他在clipboard.writeText外面包了一层try...catch,catch里只写了一句console.warn('复制失败,可能是浏览器权限')。他说“用户不需要知道为什么失败,但我自己调试的时候需要”。 内容比框架重陈鑫杰web上最长的文章是《用原生JS写一个带撤销的待办列表》,全文贴了完整代码,没有一句废话。他甚至在代码里用注释标出了“这里故意不用框架,为了演示事件委托”。底下有个读者留言说“现在谁还手写DOM”,他回:“手写DOM让我记得住 这种态度延伸到了整个站点。侧边栏的标签云不是自动生成的,是他手动维护的一个 // 陈鑫杰web里的一段真实注释 // 下面这个函数用来高亮当前导航项 // 别用querySelectorAll('a')然后forEach,性能没差 // 但记得加{ passive: true },滚动的时候不卡 window.addEventListener('scroll', highlightNav, { passive: true }); 他还在页脚放了一个“最后构建时间”,不是自动生成的,是每次手动改 那些“不web”的坚持陈鑫杰web的移动端适配做得不完美。导航栏在小屏上会折行,代码块偶尔需要横向滚动。但他拒绝用 最让我意外的是他的404页面。没有卖萌插画,没有“返回首页”的大按钮,只有一行字:“这个地址不存在。如果你确定没输错,那可能是我的锅——去这里看看有没有你要的东西。”那个“这里”链向他的GitHub仓库的issue页面。他说:“与其让用户猜,不如让他直接骂我。” 陈鑫杰web至今没有统计代码,没有评论系统,没有RSS订阅。他只在每篇文章底部留了一个 这种态度在2025年显得有点轴。但每次我打开他的页面,看到那个手动维护的标签云、那个200毫秒的背景过渡、那个只有12行的复制函数,我就觉得——web本来就应该这样。不是所有东西都需要框架,不是所有交互都需要动画,不是所有个人站点都需要“增长策略”。 陈鑫杰web就是一个人的web。代码能跑,内容能看,剩下的,他不在乎。 |
