<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Shinakiの部屋</title><description>A Material 3 anime blog</description><link>https://shinaki.pages.dev/</link><language>zh_CN</language><item><title>命令速查</title><link>https://shinaki.pages.dev/posts/commands/</link><guid isPermaLink="true">https://shinaki.pages.dev/posts/commands/</guid><description>记录了一些常用的命令</description><pubDate>Tue, 10 Nov 2026 06:20:39 GMT</pubDate><content:encoded>&lt;h2&gt;一、日常改完 → 推送（最常用）&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;# 本地校验（改过代码/配置建议跑；只改文章也建议跑一次 build）
pnpm exec astro check
pnpm build

# 提交
git add -A
git commit -m &quot;post: 新增文章 xxx&quot;     # 或 feat: / fix: / docs: / chore:

# 推送
git push origin main
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;推送后 GitHub Actions 会自动构建并发布；Cloudflare（如果已连仓库）也会自动构建 &lt;code&gt;*.pages.dev&lt;/code&gt;。&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;二、只改文章内容时&lt;/h2&gt;
&lt;p&gt;文章在 &lt;code&gt;src/content/posts/&lt;/code&gt;，新建一篇：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pnpm new-post my-post-name
# 编辑 src/content/posts/my-post-name.md
pnpm build
git add -A
git commit -m &quot;post: my-post-name&quot;
git push origin main
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h2&gt;三、更新追番数据（需要走代理时）&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;NODE_USE_ENV_PROXY=1 HTTPS_PROXY=http://127.0.0.1:2080 node scripts/anime/sync.mjs --provider bangumi

# 确认 src/data/anime-snapshots/bangumi.json 有变化后
git add src/data/anime-snapshots/bangumi.json
git commit -m &quot;chore: sync bangumi snapshot&quot;
git push origin main
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;说明：快照文件现在已提交进仓库，Cloudflare 和 GitHub Pages 构建时都会读它；本地 sync 后记得把 json 一起提交。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h2&gt;四、常见情况&lt;/h2&gt;
&lt;h3&gt;push 被拒（远端有新提交）&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;git pull --rebase origin main
git push origin main
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;&lt;code&gt;git status&lt;/code&gt; 突然冒出一大堆没动过的文件&lt;/h3&gt;
&lt;p&gt;多半是 Windows 换行（CRLF）差异。先看真实改动再决定：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git diff -w --stat          # 忽略空白后的真实改动
git diff --ignore-cr-at-eol --name-only
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;确认是纯换行的话，可以 &lt;code&gt;git checkout -- &amp;lt;那些文件&amp;gt;&lt;/code&gt; 还原，别直接 &lt;code&gt;git add -A&lt;/code&gt; 把噪声提交进去。&lt;/p&gt;
&lt;h3&gt;只想本地预览，不发布&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;pnpm dev          # http://localhost:4321
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Cloudflare 没更新&lt;/h3&gt;
&lt;p&gt;去 CF 项目 → Deployments，看最新一次是不是对应刚推的 commit；没有就点 Retry，或者推一个空提交：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git commit --allow-empty -m &quot;chore: trigger deploy&quot;
git push origin main
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h2&gt;五、整合命令&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;cd /d/Shirone &amp;amp;&amp;amp; pnpm build &amp;amp;&amp;amp; git add -A &amp;amp;&amp;amp; git commit -m &quot;chore: update site&quot; &amp;amp;&amp;amp; git push origin main
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;把 &lt;code&gt;chore: update site&lt;/code&gt; 换成实际做的事就行。&lt;/p&gt;
&lt;hr /&gt;
</content:encoded></item><item><title>Hello World</title><link>https://shinaki.pages.dev/posts/hello-world/</link><guid isPermaLink="true">https://shinaki.pages.dev/posts/hello-world/</guid><description>每一个博客都从一篇Hello World开始</description><pubDate>Mon, 09 Nov 2026 15:39:27 GMT</pubDate><content:encoded>&lt;p&gt;这里是秋生的第一篇文章。其实我并不知道写什么所以就让AI给我填充一篇了（&lt;/p&gt;
&lt;h2&gt;关于 Shirone&lt;/h2&gt;
&lt;p&gt;Shirone 是一个基于 Astro 的博客主题，使用 Svelte 5 编写交互组件、Tailwind CSS 4 与 Stylus 组织样式，整体遵循 &lt;strong&gt;Material 3 Expressive&lt;/strong&gt; 设计语言。它不只是一个排版外壳：侧边栏、顶栏、文章页、数据页面都由同一套 M3E 组件与设计令牌驱动。&lt;/p&gt;
&lt;p&gt;页面切换使用 Swup：顶栏、侧边栏这些持久外壳不会重新渲染，只有内容区域被替换，所以站内跳转没有整页刷新的闪烁。&lt;/p&gt;
&lt;h2&gt;设计上的几个选择&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;设计令牌优先&lt;/strong&gt;：颜色、圆角、字号、动效统一走 &lt;code&gt;--shape-corner-*&lt;/code&gt;、&lt;code&gt;--m3e-type-*&lt;/code&gt;、&lt;code&gt;--m3e-duration-*&lt;/code&gt; 这类变量，亮色与暗色主题共用一套结构。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;组件分层&lt;/strong&gt;：atoms → molecules → organisms → templates，跨层依赖有明确方向，页面只负责编排。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;可选功能零负担&lt;/strong&gt;：评论、统计、各种小部件都遵循同一条规则——关闭时不产生网络请求、不占布局、不进入首屏包体。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;图标服务端渲染&lt;/strong&gt;：所有图标在构建期从图标集中生成 SVG，浏览器不会去请求图标接口。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;内容能力&lt;/h2&gt;
&lt;p&gt;文章用 Markdown 或 MDX 编写，支持草稿、置顶、系列、标签分类、封面与摘要，也可以在 frontmatter 里单独开关评论、覆写版权声明，甚至给单篇文章加密。&lt;/p&gt;
&lt;p&gt;主题还扩展了一套作者可直接使用的 Markdown 语法，用来写更“像页面”的内容：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;提示框、标签页、分步步骤、字段参数卡片&lt;/li&gt;
&lt;li&gt;代码树、图片网格与图片尺寸控制&lt;/li&gt;
&lt;li&gt;数学公式、Mermaid 图表&lt;/li&gt;
&lt;li&gt;剧透、注解、缩写、GitHub 卡片、include 片段&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些语法不需要额外开关，写在文章里就会按需加载对应的样式与运行时。&lt;/p&gt;
&lt;h2&gt;数据驱动的页面&lt;/h2&gt;
&lt;p&gt;除了文章，站点还有一些由数据文件生成的页面：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;页面&lt;/th&gt;
&lt;th&gt;数据来源&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;追番&lt;/td&gt;
&lt;td&gt;Bangumi 收藏快照&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;游戏 / 设备&lt;/td&gt;
&lt;td&gt;&lt;code&gt;src/data/games.ts&lt;/code&gt;、&lt;code&gt;src/data/devices.ts&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;友链 / 项目 / 技能 / 时间线&lt;/td&gt;
&lt;td&gt;&lt;code&gt;src/data/*.ts&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;动态&lt;/td&gt;
&lt;td&gt;&lt;code&gt;src/content/moments/&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;每个页面都可以在 &lt;code&gt;src/config/&lt;/code&gt; 里单独启用或关闭；关掉之后，页面与导航入口会一起消失。&lt;/p&gt;
&lt;h2&gt;工程实现&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;静态构建：&lt;code&gt;pnpm build&lt;/code&gt; 生成页面，再用 Pagefind 建立全文搜索索引。&lt;/li&gt;
&lt;li&gt;内容分离：内容可以留在仓库里，也可以用 &lt;code&gt;CONTENT_DIR&lt;/code&gt; 指向另一个内容仓库，构建时再同步进来。&lt;/li&gt;
&lt;li&gt;可复用：主题本身也发布为 npm 包 &lt;code&gt;shirones&lt;/code&gt;，可以安装到任意 Astro 项目里作为博客层。&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item></channel></rss>