<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>南月之星河</title>
    <link>https://moonstream.cn</link>
    <description>全栈工程、工具链与人机界面的长文与笔记。</description>
    <language>zh-CN</language>
    <atom:link href="https://moonstream.cn/rss.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>用 Nuxt 4 和 Content 把博客钉在静态文件上</title>
      <link>https://moonstream.cn/posts/ship-a-static-blog-with-nuxt4</link>
      <guid isPermaLink="true">https://moonstream.cn/posts/ship-a-static-blog-with-nuxt4</guid>
      <pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate>
      <description>不要数据库，不要管理后台。文章是仓库里的 Markdown 文件，构建命令跑完，整个站点变成一叠可以扔到任何地方的 HTML。这篇文章记录这套工作流的完整思路。</description>
    </item>
    <item>
      <title>滚动驱动动画：让 scroll 监听器退休</title>
      <link>https://moonstream.cn/posts/css-scroll-driven-animations</link>
      <guid isPermaLink="true">https://moonstream.cn/posts/css-scroll-driven-animations</guid>
      <pubDate>Thu, 18 Jun 2026 00:00:00 GMT</pubDate>
      <description>animation-timeline 把滚动位置直接变成动画进度，浏览器在合成线程完成一切。本文用阅读进度条和入场动效两个例子，把这套原生 API 讲清楚。</description>
    </item>
    <item>
      <title>Markdown 排版全要素测试</title>
      <link>https://moonstream.cn/posts/markdown-kitchen-sink</link>
      <guid isPermaLink="true">https://moonstream.cn/posts/markdown-kitchen-sink</guid>
      <pubDate>Sat, 02 May 2026 00:00:00 GMT</pubDate>
      <description>一篇用来检验站点排版系统的文章：标题层级、列表、引用、表格、多语言代码块、图片与分隔线全部在场。改动样式之后，先来这里看一眼。</description>
    </item>
    <item>
      <title>satisfies、as const 与类型收窄的日常</title>
      <link>https://moonstream.cn/posts/typescript-satisfies-in-practice</link>
      <guid isPermaLink="true">https://moonstream.cn/posts/typescript-satisfies-in-practice</guid>
      <pubDate>Sat, 21 Mar 2026 00:00:00 GMT</pubDate>
      <description>satisfies 解决的是一个很具体的矛盾：既要校验值符合某个宽类型，又不想丢掉字面量本身的精确类型。三个日常场景说明它和 as const 怎么配合。</description>
    </item>
    <item>
      <title>本地优先软件笔记：数据先是你的，然后才是云的</title>
      <link>https://moonstream.cn/posts/local-first-notes</link>
      <guid isPermaLink="true">https://moonstream.cn/posts/local-first-notes</guid>
      <pubDate>Sat, 14 Feb 2026 00:00:00 GMT</pubDate>
      <description>云应用把「打开自己的文件」变成了需要网络许可的操作。本地优先是对这件事的系统性纠偏：本地是事实源，同步只是增强。这篇是我的阅读与实践笔记。</description>
    </item>
    <item>
      <title>开站：为什么是 Moonstream</title>
      <link>https://moonstream.cn/posts/hello-moonstream</link>
      <guid isPermaLink="true">https://moonstream.cn/posts/hello-moonstream</guid>
      <pubDate>Tue, 06 Jan 2026 00:00:00 GMT</pubDate>
      <description>给这个站点起名、定规矩的短文。写作的部分留给深夜，工程的部分留给白天，两件事在这里汇合。</description>
    </item>
    <item>
      <title>如何自定义处理Golang Cmd的日志输出</title>
      <link>https://moonstream.cn/posts/golang-logger-out</link>
      <guid isPermaLink="true">https://moonstream.cn/posts/golang-logger-out</guid>
      <pubDate>Thu, 21 Mar 2024 00:00:00 GMT</pubDate>
      <description>当前基于Golang 1.22.2 版本实现</description>
    </item>
    <item>
      <title>Golang在linux跨区移动文件失败</title>
      <link>https://moonstream.cn/posts/golang-linux-file</link>
      <guid isPermaLink="true">https://moonstream.cn/posts/golang-linux-file</guid>
      <pubDate>Tue, 19 Mar 2024 00:00:00 GMT</pubDate>
      <description>当前基于Golang 1.22.2 版本实现</description>
    </item>
    <item>
      <title>Golang exec.Cmd在Kill后不能关闭进程</title>
      <link>https://moonstream.cn/posts/golang-exec-kill</link>
      <guid isPermaLink="true">https://moonstream.cn/posts/golang-exec-kill</guid>
      <pubDate>Sun, 17 Mar 2024 00:00:00 GMT</pubDate>
      <description>当前基于Golang 1.22.2 版本实现</description>
    </item>
    <item>
      <title>Golang基于Redis生成唯一序列</title>
      <link>https://moonstream.cn/posts/golang-redis-seq</link>
      <guid isPermaLink="true">https://moonstream.cn/posts/golang-redis-seq</guid>
      <pubDate>Fri, 15 Mar 2024 00:00:00 GMT</pubDate>
      <description>当前基于Golang 1.22.2 版本实现</description>
    </item>
  </channel>
</rss>