<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="/rss/feed.xsl" type="text/xsl"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Moonlit Fate</title><description>如飞花般记录代码、题解与复盘</description><link>https://moonlit-fate.me</link><item><title>这个博客的文章发布流程</title><link>https://moonlit-fate.me/post/project/publishing-workflow</link><guid isPermaLink="false">project/publishing-workflow</guid><description>把写作、构建、评论和维护权限拆开，让博客既开放交流，又保持个人内容的稳定发布。</description><pubDate>Mon, 01 Jun 2026 02:35:00 GMT</pubDate><content:encoded>&lt;p&gt;这个站点的文章发布会保持一个简单原则：文章由我在仓库里维护，读者通过评论区交流。&lt;/p&gt;
&lt;p&gt;这样做的好处是边界很清晰。文章内容是长期沉淀，评论是围绕文章的讨论；一个负责表达，一个负责互动。&lt;/p&gt;
&lt;h2&gt;为什么不开放公共发文&lt;a href=&quot;#为什么不开放公共发文&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;个人博客最重要的是“声音的一致性”。&lt;/p&gt;
&lt;p&gt;如果把公共发文入口直接开放出去，站点很快会变成社区系统，需要登录、权限、审核、反垃圾、内容治理和数据库维护。那当然也能做，但它会把项目的重心从个人博客拉走。&lt;/p&gt;
&lt;p&gt;现在更适合的设计是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;我负责发布正式文章；&lt;/li&gt;
&lt;li&gt;读者在文章底部评论；&lt;/li&gt;
&lt;li&gt;有价值的讨论可以被整理进后续文章；&lt;/li&gt;
&lt;li&gt;OJ Tracker 的复盘结果可以逐步沉淀成项目日志或题解。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;当前发布方式&lt;a href=&quot;#当前发布方式&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;文章文件放在 &lt;code&gt;src/content/blog&lt;/code&gt; 中，按主题拆分目录。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;algorithm&lt;/code&gt;: 算法题解。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;project&lt;/code&gt;: 项目日志。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;review&lt;/code&gt;: 周复盘。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;life&lt;/code&gt;: 随笔。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;每篇文章都带有 frontmatter，用来声明标题、摘要、发布时间、封面、标签和分类。&lt;/p&gt;
&lt;h2&gt;发布前做什么&lt;a href=&quot;#发布前做什么&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;每次新增文章后，我会先做两类检查：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&lt;span&gt;&lt;span&gt;corepack&lt;/span&gt;&lt;span&gt; pnpm&lt;/span&gt;&lt;span&gt; check&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span&gt;corepack&lt;/span&gt;&lt;span&gt; pnpm&lt;/span&gt;&lt;span&gt; build&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;前者确认类型和 Astro 页面没有错误，后者确认整站可以完整生成。通过之后再提交并推送。&lt;/p&gt;
&lt;h2&gt;下一步&lt;a href=&quot;#下一步&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;后续会继续完善文章发布体验。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;给常见文章类型准备模板。&lt;/li&gt;
&lt;li&gt;让本地 CMS 更适合单人写作。&lt;/li&gt;
&lt;li&gt;把 OJ Tracker 生成的周报转成可编辑草稿。&lt;/li&gt;
&lt;li&gt;评论区启用后，建立一套简洁的互动规则。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;博客不需要急着变复杂。先让写作持续发生，系统就会自然长出它需要的形状。&lt;/p&gt;</content:encoded><category>category:项目日志</category><category>tag:project</category><category>tag:blog</category><category>tag:writing</category></item><item><title>Moonlit Fate 的下一阶段路线图</title><link>https://moonlit-fate.me/post/project/moonlit-fate-roadmap</link><guid isPermaLink="false">project/moonlit-fate-roadmap</guid><description>把个人博客、OJ Tracker、文章发布和读者互动串成一套可长期维护的系统。</description><pubDate>Mon, 01 Jun 2026 02:10:00 GMT</pubDate><content:encoded>&lt;p&gt;Moonlit Fate 现在已经不只是一个“刷题追踪页面”的外壳了。&lt;/p&gt;
&lt;p&gt;它更像一个长期站点：博客负责表达和沉淀，OJ Tracker 负责同步训练记录，评论区负责承接读者反馈，项目日志负责把每一次改动留下来。&lt;/p&gt;
&lt;h2&gt;第一阶段：把博客站稳&lt;a href=&quot;#第一阶段把博客站稳&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;这一阶段的目标是让站点本身成为一个完整的个人博客。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;首页能清晰展示最新文章、精选分类和周复盘入口。&lt;/li&gt;
&lt;li&gt;关于页、Now 页、项目页能说明我是谁、最近在做什么、站点长期会往哪里发展。&lt;/li&gt;
&lt;li&gt;文章页保留良好的阅读体验：目录、代码块增强、相关文章、评论区和 RSS。&lt;/li&gt;
&lt;li&gt;内容分类保持简单：算法题解、项目日志、周复盘、随笔。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;博客先站稳，后面的工具功能才不会显得像孤立的面板。&lt;/p&gt;
&lt;h2&gt;第二阶段：让 OJ Tracker 真正可用&lt;a href=&quot;#第二阶段让-oj-tracker-真正可用&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;OJ Tracker 不应该停留在 MVP。&lt;/p&gt;
&lt;p&gt;它需要持续同步公网数据，并且允许以后加入更多刷题网站。每个平台都应该被抽象成独立 provider：输入账号标识，输出统一的提交记录、比赛记录和题目信息。&lt;/p&gt;
&lt;p&gt;短期优先级：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;稳定同步 Codeforces、AtCoder、牛客、洛谷。&lt;/li&gt;
&lt;li&gt;给每个平台保留清晰的错误提示和同步状态。&lt;/li&gt;
&lt;li&gt;在页面上区分“同步成功但无数据”和“平台接口不可用”。&lt;/li&gt;
&lt;li&gt;为新增 OJ 网站准备统一的接入文档。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;第三阶段：把复盘做成核心能力&lt;a href=&quot;#第三阶段把复盘做成核心能力&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;刷题记录本身只是原材料。&lt;/p&gt;
&lt;p&gt;真正有价值的是复盘：最近常错什么题型，哪类题看起来会但写不稳，哪些平台题目适合下一轮训练。这里会逐步接入大模型，把原始提交记录变成可读的周报和训练建议。&lt;/p&gt;
&lt;p&gt;理想效果是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;自动总结一周的训练量、通过率和活跃平台；&lt;/li&gt;
&lt;li&gt;识别高频标签、薄弱标签和重复犯错模式；&lt;/li&gt;
&lt;li&gt;推荐值得补的题型和题目集合；&lt;/li&gt;
&lt;li&gt;把高质量复盘沉淀成正式文章。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;第四阶段：抽离成可复用模板&lt;a href=&quot;#第四阶段抽离成可复用模板&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;当博客中的 OJ Tracker 足够稳定后，会把它拆成独立模板或包。&lt;/p&gt;
&lt;p&gt;这个包应该允许别人快速接入自己的博客：配置账号、选择平台、生成追踪面板，然后按自己的节奏写复盘。也就是说，Moonlit Fate 会先作为样板站成长，再把其中通用的部分开放出去。&lt;/p&gt;
&lt;h2&gt;一个原则&lt;a href=&quot;#一个原则&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;这个站点会优先服务长期维护。&lt;/p&gt;
&lt;p&gt;功能可以慢慢加，但每一步都要留下文档、文章和可回溯的代码。这样它不会只是一次性做完的项目，而会成为一个能陪着训练和写作一起变化的地方。&lt;/p&gt;</content:encoded><category>category:项目日志</category><category>tag:project</category><category>tag:blog</category><category>tag:roadmap</category><category>tag:oj-tracker</category></item><item><title>ojblog 项目日志：迁移到 Astro Koharu</title><link>https://moonlit-fate.me/post/project/ojblog-koharu</link><guid isPermaLink="false">project/ojblog-koharu</guid><description>将原型替换为 astro-koharu 模板，并确认 AGPL-3.0 开源方向。</description><pubDate>Sat, 30 May 2026 08:15:00 GMT</pubDate><content:encoded>&lt;p&gt;这次重构决定直接使用 &lt;code&gt;astro-koharu&lt;/code&gt; 作为博客基础模板。&lt;/p&gt;
&lt;p&gt;原因很简单：它已经具备个人博客需要的大部分结构，包括首页、文章列表、分类、标签、归档、友链、搜索、Markdown 增强和 RSS。&lt;/p&gt;
&lt;h2&gt;设计方向&lt;a href=&quot;#设计方向&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;布局继承 Koharu 的博客体验，但视觉上会围绕爱莉希雅的角色气质重新定制：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;粉白、浅紫、晶蓝；&lt;/li&gt;
&lt;li&gt;玻璃卡片和柔光背景；&lt;/li&gt;
&lt;li&gt;飞花、水晶、梦幻花园；&lt;/li&gt;
&lt;li&gt;轻 ACG 氛围，但仍然以阅读体验为核心。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;因为 &lt;code&gt;astro-koharu&lt;/code&gt; 使用 AGPL-3.0，本项目也会按开源项目来维护。&lt;/p&gt;</content:encoded><category>category:项目日志</category><category>tag:astro</category><category>tag:koharu</category><category>tag:elysia</category><category>tag:project</category></item><item><title>区间 DP：从最后一步反推状态</title><link>https://moonlit-fate.me/post/algorithm/interval-dp</link><guid isPermaLink="false">algorithm/interval-dp</guid><description>用 Burst Balloons 和石子合并复盘区间 DP 的状态定义。</description><pubDate>Sat, 30 May 2026 07:20:00 GMT</pubDate><content:encoded>&lt;p&gt;区间 DP 最容易卡住的地方，通常不是转移公式本身，而是第一步：&lt;strong&gt;状态到底描述什么&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;以 Burst Balloons 为例，如果把思路放在“最先戳破哪个气球”，状态会很快变得混乱；但如果换成“最后戳破哪个气球”，左右边界就稳定下来了。&lt;/p&gt;
&lt;h2&gt;复盘重点&lt;a href=&quot;#复盘重点&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;先确定区间边界是否会变化。&lt;/li&gt;
&lt;li&gt;枚举最后一步操作，而不是第一步操作。&lt;/li&gt;
&lt;li&gt;用小样例手算一遍状态含义。&lt;/li&gt;
&lt;li&gt;写题解时记录“为什么这样定义状态”。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这类题后续会和 OJ Tracker 里的错题记录关联起来，形成可追踪的薄弱题型。&lt;/p&gt;</content:encoded><category>category:算法题解</category><category>tag:dp</category><category>tag:interval</category><category>tag:review</category></item><item><title>本周复盘：计数题需要先写暴力校验</title><link>https://moonlit-fate.me/post/review/weekly-oj-review</link><guid isPermaLink="false">review/weekly-oj-review</guid><description>总结最近 WA 集中的几类题，并安排下一组训练题。</description><pubDate>Fri, 29 May 2026 14:00:00 GMT</pubDate><content:encoded>&lt;p&gt;本周刷题最大的问题集中在组合计数和区间 DP。&lt;/p&gt;
&lt;p&gt;计数题的错误大多不是代码细节，而是没有先写出小规模暴力校验，导致推式子时缺少对照。&lt;/p&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;/li&gt;
&lt;li&gt;区间 DP 题解必须记录状态定义过程；&lt;/li&gt;
&lt;li&gt;把 WA 样例沉淀到博客文章里；&lt;/li&gt;
&lt;li&gt;从 Codeforces 1500-1700 中挑 3 道同类训练题。&lt;/li&gt;
&lt;/ul&gt;</content:encoded><category>category:周复盘</category><category>tag:review</category><category>tag:combinatorics</category><category>tag:training</category></item><item><title>真我花园开张记录</title><link>https://moonlit-fate.me/post/life/hello-garden</link><guid isPermaLink="false">life/hello-garden</guid><description>一个关于新博客风格、内容边界和长期维护的小随笔。</description><pubDate>Thu, 28 May 2026 12:00:00 GMT</pubDate><content:encoded>&lt;p&gt;这个博客会先从一个很小的地方开始：把我真正想长期记录的内容放在一起。&lt;/p&gt;
&lt;p&gt;它不只是刷题追踪，也不只是技术文章，而是一个能放下代码、题解、复盘、项目和生活碎片的地方。&lt;/p&gt;
&lt;p&gt;视觉上，我想让它有一点爱莉希雅式的轻盈和明亮：像飞花，像水晶，也像每一次重新开始时的温柔心情。&lt;/p&gt;</content:encoded><category>category:随笔</category><category>tag:life</category><category>tag:blog</category><category>tag:elysia</category></item></channel></rss>