<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>DevNotes · 开发手记</title>
    <link>https://example.com/</link>
    <description>记录 AI 编程学习、实战小项目、开发工具使用与 Bug 排查解决的全过程。</description>
    <language>zh-CN</language>
    <lastBuildDate>Fri, 09 Oct 2026 13:48:15 GMT</lastBuildDate>
    <atom:link href="https://example.com/rss.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>Git 提交信息怎么写：一套能坚持下来的规范</title>
      <link>https://example.com/posts/git-commit-convention.html</link>
      <guid isPermaLink="true">https://example.com/posts/git-commit-convention.html</guid>
      <pubDate>Thu, 08 Oct 2026 00:00:00 GMT</pubDate>
      <category>Git</category>
      <category>规范</category>
      <category>备忘录</category>
      <description>从「update」「fix bug」到能自动生成更新日志，记录我实际在用的提交规范，以及怎么用工具强制自己遵守。</description>
    </item>
    <item>
      <title>CORS 报错别急着加 Access-Control-Allow-Origin，先看清楚是谁拦的</title>
      <link>https://example.com/posts/cors-error-debug.html</link>
      <guid isPermaLink="true">https://example.com/posts/cors-error-debug.html</guid>
      <pubDate>Wed, 07 Oct 2026 00:00:00 GMT</pubDate>
      <category>CORS</category>
      <category>跨域</category>
      <category>前后端</category>
      <description>前端请求本地后端接口报跨域错误，改了三处配置都没用。最后发现请求根本没到后端——被 OPTIONS 预检挡住了。</description>
    </item>
    <item>
      <title>第一个 AI 小项目：命令行翻译助手，从调通 API 到处理各种异常</title>
      <link>https://example.com/posts/llm-cli-translator.html</link>
      <guid isPermaLink="true">https://example.com/posts/llm-cli-translator.html</guid>
      <pubDate>Mon, 05 Oct 2026 00:00:00 GMT</pubDate>
      <category>大模型</category>
      <category>API</category>
      <category>命令行工具</category>
      <description>用大模型 API 写了个命令行翻译工具。真正花时间的不是调通接口，而是处理超时、限流、输出格式不稳定这些现实问题。</description>
    </item>
    <item>
      <title>Python 虚拟环境备忘：venv、conda、uv 该用哪个</title>
      <link>https://example.com/posts/python-venv-guide.html</link>
      <guid isPermaLink="true">https://example.com/posts/python-venv-guide.html</guid>
      <pubDate>Fri, 02 Oct 2026 00:00:00 GMT</pubDate>
      <category>Python</category>
      <category>环境管理</category>
      <category>备忘录</category>
      <description>每次都记不住激活命令，干脆一次性整理清楚。附一份可以直接抄的日常工作流。</description>
    </item>
    <item>
      <title>Vite 保存后页面不热更新？三种原因和排查顺序</title>
      <link>https://example.com/posts/vite-hmr-not-working.html</link>
      <guid isPermaLink="true">https://example.com/posts/vite-hmr-not-working.html</guid>
      <pubDate>Tue, 29 Sep 2026 00:00:00 GMT</pubDate>
      <category>Vite</category>
      <category>前端</category>
      <category>热更新</category>
      <description>代码改了、终端也打印了 hmr update，但浏览器纹丝不动。按「文件是否被监听 → 是否真的改变 → 浏览器是否收到」三层顺序排查，五分钟能定位。</description>
    </item>
    <item>
      <title>GitHub Actions 自动部署到 Pages：改完文章 push 一下就上线</title>
      <link>https://example.com/posts/github-actions-deploy-pages.html</link>
      <guid isPermaLink="true">https://example.com/posts/github-actions-deploy-pages.html</guid>
      <pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate>
      <category>GitHub Actions</category>
      <category>部署</category>
      <category>CI/CD</category>
      <description>记录从手动上传 dist 到 push 后自动构建部署的完整过程，包含权限配置、base 路径这两个最容易踩的坑。</description>
    </item>
    <item>
      <title>用零依赖 Node 脚本搭一个博客：为什么我没选 Hexo 和 Next.js</title>
      <link>https://example.com/posts/build-static-blog.html</link>
      <guid isPermaLink="true">https://example.com/posts/build-static-blog.html</guid>
      <pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate>
      <category>静态站点</category>
      <category>建站</category>
      <category>部署</category>
      <description>对比几种博客方案后，我用不到 400 行的原生 Node 脚本把 Markdown 编译成了静态站。这篇记录选型思路、目录设计和构建流程。</description>
    </item>
  </channel>
</rss>
