<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>CloudWing</title><description>记录学习与折腾的过程</description><link>https://cloudwing.top/</link><templateTheme>Firefly</templateTheme><templateThemeVersion>6.16.8</templateThemeVersion><templateThemeUrl>https://github.com/CuteLeaf/Firefly</templateThemeUrl><lastBuildDate>2026年10月1日 16:31:26</lastBuildDate><item><title>AI 辅助建站复盘：从零上线到博客改造</title><link>https://cloudwing.top/posts/2026-09-30-ai-assisted-blog-retrospective/</link><guid isPermaLink="true">https://cloudwing.top/posts/2026-09-30-ai-assisted-blog-retrospective/</guid><description>精炼合并十二篇站点日志，复盘借助 AI 从零搭建个人博客的经历、踩过的坑与教训。</description><pubDate>Wed, 30 Sep 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;这个博客从 2025 年 12 月第一版上线，到 2026 年 9 月底把「作品站」改造成「博客归档」，前后十个月的迭代，绝大部分代码都是在 AI 辅助下写出来的。趁这次整理，把散落在各篇日志里的经历、雷点和教训收拢成一篇文章。&lt;/p&gt;
&lt;section&gt;&lt;h2&gt;经历：一条从「作品站」到「博客」的路&lt;a href=&quot;#经历一条从作品站到博客的路&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;2025-12 起步&lt;/strong&gt;：第一版只有首页、画廊、关于三块，Astro 纯静态输出，接 Cloudflare Pages，暗色玻璃基调定下来；紧接着配了一套基于 Chrome DevTools Protocol 的回归测试。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;2026 上半年&lt;/strong&gt;：平稳迭代，把 Cloudflare Pages 自动构建踩过的坑记了下来（见下）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;2026-09 密集迭代&lt;/strong&gt;：分类筛选、图片瘦身、首页接真实数据、动效 / SEO / RSS、三栏侧栏、一次三十来处的大改版、导航与强调色预设……&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;方向修正&lt;/strong&gt;：最初定位是「作品档案」，写着写着发现真正持续在产出的是文字。9 月 19 日把作品库下线，改成按年归档的博客，旧文章继续留在时间线里。&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;现在这个站长这样——首页是「hero 壁纸 + 三栏布局」，左栏个人资料、中栏文章流、右栏动态时间线：&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;/posts/screenshots/home.png&quot; alt=&quot;博客首页三栏布局&quot; /&gt;&lt;figcaption&gt;博客首页三栏布局&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;文章详情页是核心阅读场景，标题、日期、标签和正文沿用主题的卡片式容器：&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;/posts/screenshots/post.png&quot; alt=&quot;文章详情页&quot; /&gt;&lt;figcaption&gt;文章详情页&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;「作品」并没有完全消失，复刻的 RhineLab 三维终端作为第一个「复刻」项目收进了项目页：&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;/posts/screenshots/projects.png&quot; alt=&quot;项目页与复刻项目&quot; /&gt;&lt;figcaption&gt;项目页与复刻项目&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;日记是最近新增的独立模块，挂在「文章」导航下：&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;/posts/screenshots/diary.png&quot; alt=&quot;日记列表页&quot; /&gt;&lt;figcaption&gt;日记列表页&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;雷点：AI 快速踩过、又补回来的坑&lt;a href=&quot;#雷点ai-快速踩过又补回来的坑&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;构建与部署&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;lockfile 平台依赖：Windows 生成的 lock 缺平台可选依赖，云端 Linux &lt;code&gt;npm ci&lt;/code&gt; 报 &lt;code&gt;Missing @emnapi/*&lt;/code&gt;；解法是 lock 不提交、走 &lt;code&gt;npm install&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;浮动版本：&lt;code&gt;react&lt;/code&gt; 解到 19.3 撞上 &lt;code&gt;&amp;gt;=19 &amp;lt;19.3&lt;/code&gt; 的 peer 区间，构建期 ERESOLVE；锁 19.2.8 + legacy-peer-deps。&lt;/li&gt;
&lt;li&gt;「推送成功但线上没变」：判断上线别比对 chunk 哈希（本地与云端依赖解析差异会让哈希不同），要把这次改动的内容特征拿到线上搜。&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;资源与网络&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;180MB PNG 转 webp，压到 3MB 出头。&lt;/li&gt;
&lt;li&gt;jsDelivr 国内不稳，图床换回本地相对路径。&lt;/li&gt;
&lt;li&gt;MiSans 字体外链上游 404，从未生效却一直阻塞渲染，删掉。&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;前端交互&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;软导航后汉堡菜单失效：监听器没跟着 DOM 重建，改 document 级事件委托。&lt;/li&gt;
&lt;li&gt;粒子背景鼠标移动抛 RangeError：合成事件冒泡回 window 又触发监听器，加 &lt;code&gt;isTrusted&lt;/code&gt; 判断。&lt;/li&gt;
&lt;li&gt;背景高度写死 670px：补 resize 重测 + ResizeObserver。&lt;/li&gt;
&lt;li&gt;作品卡浅色下没轮廓：边框沿用了深色主题写法。&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;视觉与可访问性&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;三级文字对比度 2.49&amp;lt;1&amp;gt; → 4.87&amp;lt;1&amp;gt; 才过 WCAG AA，主题默认改为夜间。&lt;/li&gt;
&lt;/ul&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;教训：AI 快在写代码，稳在自己兜底&lt;a href=&quot;#教训ai-快在写代码稳在自己兜底&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;断言要「会红」&lt;/strong&gt;：几何断言优于肉眼；新断言先证明它在缺陷态会变红，否则就是恒真断言、绿灯给人假安心。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;字段少而稳&lt;/strong&gt;：posts 只留 title/date/tags/summary/link 五个字段，schema 用 zod 收编，写错直接构建报错。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;一个人也写交接文档&lt;/strong&gt;：CODEX.md 把硬规则和构建注意事项写下来，是「当时的自己留给现在」的说明。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;锁版本、本地化资源&lt;/strong&gt;：依赖精确锁、图床改本地，把环境差异和第三方稳定性提前填掉。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;方向顺应真正在持续产出的事&lt;/strong&gt;：作品档案是低频橱窗，文字才是高频产出，该改就改。&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;借助 AI 做站，最大的价值是把「写」的成本降下来，让十个月能完成三十来处改版；但 AI 不会替你记住坑——线上验证的顺序、可执行的断言、沉淀成文档的教训，得自己一条条守住，才守得住这个站。&lt;/p&gt;&lt;/section&gt;</content:encoded></item></channel></rss>