<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="/feed/rss2.xsl" type="text/xsl"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>辰渊尘站</title><description>ChenDusk</description><link>https://blog.mcxiaochen.top/</link><language>zh_CN</language><item><title>Astro框架Fuwari主题实现仿hexo-abbrlink功能</title><link>https://blog.mcxiaochen.top/posts/p403bf94e/</link><guid isPermaLink="true">https://blog.mcxiaochen.top/posts/p403bf94e/</guid><description>实现仿hexo-abbrlink功能，就是不知道改的史山有没有副作用，自己目前用着没发现问题就分享出来了，建议先自行本地部署测试后再并入生产力</description><pubDate>Thu, 26 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;:::tip
修改前必读：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;本帖基于 &lt;code&gt;Astro框架&lt;/code&gt; 进行修改方案编写，因此请读者优先掌握 &lt;a href=&quot;https://docs.astro.build/&quot;&gt;Astro Docs&lt;/a&gt; 的内容后再来进行魔改。&lt;/li&gt;
&lt;li&gt;由于修改内容较多，以及可能会导致意料之外的事情，推荐使用 &lt;code&gt;Github&lt;/code&gt; 配合 &lt;code&gt;VSCode&lt;/code&gt; 进行修改，方便随时备份恢复
:::&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;好久没写文章都生疏了，好在这个框架上手挺快的，配合ai一下午就实现了短链的功能，代码拼拼改改，也不知道有没有隐藏的bug，反正我用到现在一切正常，想要在自己的博客可以接着读下去&lt;/p&gt;
&lt;h2&gt;解析&lt;/h2&gt;
&lt;p&gt;先来讲一下这到底是个什么玩意，如果你不知道hexo-abbrlink的话，当然我也只是个草台班子，所以尽量讲的简单点&lt;/p&gt;
&lt;p&gt;默认情况下，Astro 生成文章链接通常会基于文件路径或 slug。例如你有一篇文章文件：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;src/content/blog/how-to-build.md
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;默认情况下生成出来的访问地址是：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/web/post/how-to-build/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这种链接可读性强，但有两个问题：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;文件名一旦改动，会影响链接&lt;/li&gt;
&lt;li&gt;链接长度不固定，SEO 迁移时不够稳定&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;而 &lt;code&gt;hexo-abbrlink&lt;/code&gt; 的思路是：给每篇文章生成一个固定的短 ID 作为访问路径，以后不管文件名或者内容怎么改，链接都不变。&lt;/p&gt;
&lt;p&gt;比如原本地址是：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/web/post/how-to-build/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;改造后变成：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/web/post/p2wt8g7/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;那么 &lt;code&gt;p2wt8g7&lt;/code&gt; 就是这篇文章的唯一标识符。&lt;/p&gt;
&lt;h3&gt;生产力环境下&lt;/h3&gt;
&lt;p&gt;假设你写了一篇文章：Astro框架Fuwari主题实现仿hexo-abbrlink功能&lt;/p&gt;
&lt;p&gt;然后文件名是 &lt;code&gt;astro-fuwari-theme-implement-hexo-abbrlink-feature.md&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/web/post/astro-fuwari-theme-implement-hexo-abbrlink-feature/
&lt;/code&gt;&lt;/pre&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;/ul&gt;
&lt;p&gt;如果你后期重命名文件，改成：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;astro-abbrlink.md
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;那访问地址就会变成：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/web/post/astro-abbrlink/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;原来的链接：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/web/post/astro-fuwari-theme-implement-hexo-abbrlink-feature/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;就直接 404 了。&lt;/p&gt;
&lt;p&gt;如果已经被搜索引擎收录，或者别人引用过，就会造成失效链接。&lt;/p&gt;
&lt;h3&gt;引入 abbrlink 后的效果&lt;/h3&gt;
&lt;p&gt;构建时在 frontmatter 加入：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;abbrlink: p403bf94e
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;访问地址就会变成：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/web/post/p403bf94e/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;此时无论你修改标题、文件名、内容、标签、分类等，路径都不会变，这就是 &lt;code&gt;abbrlink&lt;/code&gt; 的优势所在。&lt;/p&gt;
&lt;h2&gt;修改&lt;/h2&gt;
&lt;p&gt;那么废话说了那么多，相信你已经理解了 &lt;code&gt;abbrlink&lt;/code&gt; 究竟是什么东西，有什么作用，接下来就是教程了。&lt;/p&gt;
&lt;h3&gt;安装依赖&lt;/h3&gt;
&lt;p&gt;我们需要一个生成哈希值的库，这里推荐使用 &lt;code&gt;crc-32&lt;/code&gt;，它生成的 ID 简短且碰撞率低。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pnpm add crc-32
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;定义内容 Schema&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;// src/content/config.ts
		tags: z.array(z.string()).optional().default([]),
		category: z.string().optional().nullable().default(&quot;&quot;),
		lang: z.string().optional().default(&quot;&quot;),
+		abbrlink: z.string(),

		/* For internal use */
		prevTitle: z.string().default(&quot;&quot;),
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;编写自动生成脚本&lt;/h3&gt;
&lt;p&gt;为了不用手动去写那个复杂的 ID，我们可以写一个脚本，在开发或构建时自动扫描没有 &lt;code&gt;abbrlink&lt;/code&gt; 的文章并为其生成。&lt;/p&gt;
&lt;p&gt;创建文件：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;// scripts/generate-abbrlink.mjs
import fs from &quot;fs&quot;;
import path from &quot;path&quot;;
import crc32 from &quot;crc-32&quot;;

const POSTS_DIR = &quot;./src/content/posts&quot;;

// 收集已有 abbrlink（用于冲突检测）
const usedAbbrlinks = new Set();

function walk(dir) {
  return fs.readdirSync(dir).flatMap(file =&amp;gt; {
    const fullPath = path.join(dir, file);
    if (fs.statSync(fullPath).isDirectory()) {
      return walk(fullPath);
    }
    return fullPath.endsWith(&quot;.md&quot;) ? [fullPath] : [];
  });
}

const files = walk(POSTS_DIR);

// 先扫描所有已有 abbrlink
for (const file of files) {
  const content = fs.readFileSync(file, &quot;utf-8&quot;);
  const match = content.match(/abbrlink:\s*(\S+)/);
  if (match) {
    usedAbbrlinks.add(match[1]);
  }
}

// 开始处理
for (const file of files) {
  const content = fs.readFileSync(file, &quot;utf-8&quot;);

  if (content.includes(&quot;abbrlink:&quot;)) continue;

  const match = content.match(/^---\r?\n([\s\S]*?)\r?\n---/);

  if (!match) {
    console.log(`⚠ 跳过无 frontmatter 文件: ${file}`);
    continue;
  }

  // 生成唯一 hash
  let salt = 0;
  let hash;
  let finalAbbr;

  do {
    const base = path.basename(file) + (salt || &quot;&quot;);
    hash = (crc32.str(base) &amp;gt;&amp;gt;&amp;gt; 0).toString(16);
    finalAbbr = &quot;p&quot; + hash;
    salt++;
  } while (usedAbbrlinks.has(finalAbbr));

  usedAbbrlinks.add(finalAbbr);

  const newFrontmatter = `---\n${match[1].trimEnd()}\nabbrlink: ${finalAbbr}\n---`;

  const newContent = content.replace(match[0], newFrontmatter);

  fs.writeFileSync(file, newContent);

  console.log(`✓ Generated ${finalAbbr} for ${file}`);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后在 &lt;code&gt;package.json&lt;/code&gt; 中配置脚本，确保每次运行前都执行生成：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&quot;scripts&quot;: {
  &quot;gen:abbr&quot;: &quot;node scripts/generate-abbrlink.mjs&quot;,
  &quot;dev&quot;: &quot;pnpm gen:abbr &amp;amp;&amp;amp; astro dev&quot;,
  &quot;build&quot;: &quot;pnpm gen:abbr &amp;amp;&amp;amp; astro build&quot;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;修改路由逻辑&lt;/h3&gt;
&lt;p&gt;这是最关键的一步。我们需要让 Astro 使用 &lt;code&gt;abbrlink&lt;/code&gt; 而不是文件名作为路由。&lt;/p&gt;
&lt;p&gt;修改 &lt;code&gt;src/pages/posts/[...slug].astro&lt;/code&gt;：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;// src/pages/posts/[...slug].astro
export async function getStaticPaths() {
	const blogEntries = await getSortedPosts();
-	return blogEntries.map((entry) =&amp;gt; ({
-		params: { slug: entry.slug },
-		props: { entry },
-	}));
+	return blogEntries.flatMap((entry) =&amp;gt; {
+		if (!entry.data.abbrlink) {
+			throw new Error(
+				`Post &quot;${entry.id}&quot; missing abbrlink`
+			);
+		}
+
+		return [
+			// 新短链
+			{
+				params: { slug: entry.data.abbrlink },
+				props: { entry },
+			},
+		];
+	});
+}

...

                &amp;lt;Content /&amp;gt;
            &amp;lt;/Markdown&amp;gt;

-            {licenseConfig.enable &amp;amp;&amp;amp; &amp;lt;License title={entry.data.title} slug={entry.slug} pubDate={entry.data.published} class=&quot;mb-6 rounded-xl license-container onload-animation&quot;&amp;gt;&amp;lt;/License&amp;gt;}
+            {licenseConfig.enable &amp;amp;&amp;amp; &amp;lt;License title={entry.data.title} slug={entry.data.abbrlink || entry.slug} pubDate={entry.data.published} class=&quot;mb-6 rounded-xl license-container onload-animation&quot;&amp;gt;&amp;lt;/License&amp;gt;}

        &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;适配工具函数&lt;/h3&gt;
&lt;p&gt;由于 Fuwari 主题内部很多地方（如分类、标签、上下篇文章）都依赖 &lt;code&gt;slug&lt;/code&gt;，我们需要在 &lt;code&gt;src/utils/content-utils.ts&lt;/code&gt; 中统一将 &lt;code&gt;slug&lt;/code&gt; 替换为 &lt;code&gt;abbrlink&lt;/code&gt;。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;// src/utils/content-utils.ts
export async function getSortedPosts() {
	const sorted = await getRawSortedPosts();

+	for (let i = 0; i &amp;lt; sorted.length; i++) {
+		sorted[i].slug = sorted[i].data.abbrlink ?? sorted[i].slug;
+	}
+
	for (let i = 1; i &amp;lt; sorted.length; i++) {
		sorted[i].data.nextSlug = sorted[i - 1].slug;
		sorted[i].data.nextTitle = sorted[i - 1].data.title;
	}
	for (let i = 0; i &amp;lt; sorted.length - 1; i++) {
		sorted[i].data.prevSlug = sorted[i + 1].slug;
		sorted[i].data.prevTitle = sorted[i + 1].data.title;
	}

	return sorted;
}
export type PostForList = {
	slug: string;
	data: CollectionEntry&amp;lt;&quot;posts&quot;&amp;gt;[&quot;data&quot;];
};
export async function getSortedPostsList(): Promise&amp;lt;PostForList[]&amp;gt; {
	const sortedFullPosts = await getRawSortedPosts();

	// delete post.body
	const sortedPostsList = sortedFullPosts.map((post) =&amp;gt; ({
-		slug: post.slug,
+		slug: post.data.abbrlink ?? post.slug,
		data: post.data,
	}));

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;同时，确保 &lt;code&gt;src/utils/url-utils.ts&lt;/code&gt; 中的 &lt;code&gt;getPostUrlBySlug&lt;/code&gt; 函数能够正确处理这些短链：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;export function getPostUrlBySlug(slug: string): string {
    return url(`/posts/${slug}/`);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;写在最后&lt;/h2&gt;
&lt;p&gt;通过以上几步，我们就成功在 Astro 的 Fuwari 主题中实现了类似 Hexo 的 &lt;code&gt;abbrlink&lt;/code&gt; 功能。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;这样做的好处显而易见：&lt;/strong&gt;&lt;/p&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;：短小精悍的 ID 比一长串中文转义字符好看得多。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;自动化&lt;/strong&gt;：配合脚本，几乎不需要手动干预。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;当然，如果你是中途切换到这种模式，记得给旧链接做 301 跳转，希望这篇教程能帮到正在折腾 Astro 的你！&lt;/p&gt;
&lt;p&gt;最后，新年第一更，在新的一年，愿你眼中有光，心中有爱，脚下有路；&lt;/p&gt;
&lt;p&gt;愿所有努力都有回响，所有期待都不被辜负；&lt;/p&gt;
&lt;p&gt;在平凡的日子里收获踏实的幸福，在忙碌的时光中守住内心的从容，让过去成为底气，让未来充满希望，带着勇气与热情，奔赴下一场山海。&lt;/p&gt;
&lt;p&gt;新年快乐！Happy new Year!!!&lt;/p&gt;
</content:encoded></item><item><title>免费领取网易云音乐7天会员</title><link>https://blog.mcxiaochen.top/posts/p6eae1621/</link><guid isPermaLink="true">https://blog.mcxiaochen.top/posts/p6eae1621/</guid><description>网易云音乐免费7天会员的领取</description><pubDate>Mon, 16 Feb 2026 15:51:56 GMT</pubDate><content:encoded>&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;建站两个月了，送点福利好了，每月我会不定时的发出链接，大家纯靠手速抢，抢到就是赚到，下面的是按月分类，可以在文章目录直接选择日期。&lt;/p&gt;
&lt;p&gt;非常抱歉咕了2个月，这两个月确实太忙了，完全顾不上博客&lt;/p&gt;
&lt;h2&gt;黑胶学生优惠链接(5元自动续费)&lt;/h2&gt;
&lt;p&gt;{% link 网易云会员学生优惠链接, 网易云音乐, https://y.music.163.com/g/m/at/daydayup230505Astudyup?page=2ade783a2638439591ca02a78c0f85ca&amp;amp;extChannel=sms-3, https://s1.music.126.net/style/favicon.ico %}&lt;/p&gt;
&lt;h2&gt;会员领取&lt;/h2&gt;
&lt;h3&gt;2025年9月&lt;/h3&gt;
&lt;p&gt;1http:/$YBVbqu18b39705$【復淛整段文案并咑閞「网易云音乐」，领免费会员】 黑胶邀请官 辰*尘 送你网易云音乐会员卡，领取享20+会员权益。https://163cn.tv/KkbP3J0&lt;/p&gt;
&lt;h3&gt;2025年10月&lt;/h3&gt;
&lt;p&gt;1http:/$3iuaMv19761cb9$【復淛整段文案并咑閞「网易云音乐」，领免费会员】 黑胶邀请官 辰*尘 送你网易云音乐10月黑胶会员卡，领取享20+会员权益。https://163cn.tv/LaRJVKA&lt;/p&gt;
&lt;h3&gt;2025年11月&lt;/h3&gt;
&lt;p&gt;1http:/$uEzeay20957a3f$【復淛整段文案并咑閞「网易云音乐」，领免费会员】 黑胶邀请官 辰*尘 送你网易云音乐11月黑胶会员卡，领取享20+会员权益。https://163cn.tv/U3NLFUF&lt;/p&gt;
&lt;h3&gt;2026年2月&lt;/h3&gt;
&lt;p&gt;1http:/$qEVJRf2596f99f$【復淛整段文案并咑閞「网易云音乐」，领免费会员】 黑胶邀请官 辰*尘 送你网易云音乐2月黑胶会员卡，领取享20+会员权益。https://163cn.tv/1DFwOxy&lt;/p&gt;
</content:encoded></item><item><title>重大通知</title><link>https://blog.mcxiaochen.top/posts/p562369c9/</link><guid isPermaLink="true">https://blog.mcxiaochen.top/posts/p562369c9/</guid><description>博客迁移通知 博客备案通知</description><pubDate>Sat, 14 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;博客迁移通知&lt;/h2&gt;
&lt;p&gt;近期博客迁移，全面从Hexo迁移到Astro，期间博客访问异常，敬请谅解，友链等外围为最先恢复项&lt;/p&gt;
&lt;h2&gt;博客备案通知&lt;/h2&gt;
&lt;p&gt;其次，我购买了国内云服务器作为评论等系统的搭建与部署，正在进行ICP备案流程，故博客部分时段可能无法访问，特此通知！&lt;/p&gt;
</content:encoded></item><item><title>观《鬼灭之刃：无限城篇 第一章 猗窝座再袭》首映有感</title><link>https://blog.mcxiaochen.top/posts/pf21cf686/</link><guid isPermaLink="true">https://blog.mcxiaochen.top/posts/pf21cf686/</guid><description>观看《鬼灭之刃：无限城篇 第一章 猗窝座再袭》首映的经历</description><pubDate>Sat, 15 Nov 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;{% tip info %}
更新日志&lt;/p&gt;
&lt;p&gt;2025/11/23：补完辣，在车站候车的时候写de。
{% endtip %}&lt;/p&gt;
&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;虽说标题是观后感，但我这人文笔不好，记性也很差，虽然就是14号凌晨去看的，但是让我写观后感真的写不出来，文笔也很垃圾，所以本篇更多是日常记录加一点废话杂谈形式，也可能写的比较烂，轻喷，这类文章不是我擅长的领域，&lt;s&gt;但人总喜欢挑战自己的短板&lt;/s&gt;&lt;/p&gt;
&lt;h2&gt;我与鬼灭的契机&lt;/h2&gt;
&lt;p&gt;其实我不算是鬼灭的死忠粉（现在算是了），在此（11月7号）之前只是听过鬼灭之刃这部动漫的名字，b站的首页也推过几次，但从来没点开看过。&lt;/p&gt;
&lt;p&gt;契机就在7号那天，我的同桌是鬼灭死忠粉（&lt;s&gt;傻逼二次元&lt;/s&gt;），忽然问我能不能帮她找一下鬼灭新剧集的资源（我也是&lt;s&gt;傻逼二次元&lt;/s&gt;，但番看的不是很多，主要还是二游和galgame），我当时就答应了，起初我还以为 &lt;strong&gt;鬼灭之刃无限城&lt;/strong&gt; 是日映TV，寻思去acg网上找找就有，结果翻了半天没找到，转头一搜，发现这是部电影，就 7月中旬 日本本土上映，国内也定档了，那基本不用想有DVD或者数字版本放出来了，自然是找不到的，我告诉了她这个残酷的事实。&lt;/p&gt;
&lt;p&gt;之后，她就说其实鬼灭挺好看的，让我也去看，这样上课的时候唠嗑就有更多的共同话题了？？？&lt;/p&gt;
&lt;p&gt;就这样，我在当晚打开了&lt;a href=&quot;https://www.bilibili.com/bangumi/media/md22718131&quot;&gt;鬼灭之刃第一部&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;自那之后就一发不可收拾了，耗时5天看完了tv版全季全集，期间在晚上掉了n次小珍珠，&lt;s&gt;吾峠呼世晴！！！为什么要如此刀我！！！&lt;/s&gt;&lt;/p&gt;
&lt;p&gt;以上就是我入坑鬼灭的过程了，接下来说说首映的事&lt;/p&gt;
&lt;h2&gt;历经波折观首映&lt;/h2&gt;
&lt;p&gt;鬼灭·无限城 好巧不巧，就选在 周五凌晨 ，让我这个刚入坑正是瘾大的人如何是好，偏偏周四周五还是我期中考试两天，得亏我爸妈开明，我爸也是老二次元了，肥肠智齿我期中考一半去看。&lt;/p&gt;
&lt;p&gt;于是火速购票并在微信朋友圈晒了购买记录，接着。。。就被我的班主任看到了，遂其于我朋友圈下回复： &lt;strong&gt;不考试了？&lt;/strong&gt; ，直接给孩子吓一激灵，我可不想在第二天被班主任单杀，于是装傻： &lt;strong&gt;不是周三周四考试嘛，那我改签周末的场次好了😭&lt;/strong&gt; 成功蒙混过关&lt;/p&gt;
&lt;p&gt;但是吧，改签是不可能改签的，说归说，但嘴和腿都长在我身上，做就是另一回事了，自然还是准时赶首映&lt;/p&gt;
&lt;p&gt;如此，爸妈和老师那关都过了，最后也是愉快的看上了首映&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/11/15/6918975404fec.jpg&quot; alt=&quot;首映散场1&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/11/15/6918975414536.jpg&quot; alt=&quot;首映散场2&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/11/15/691897542c459.jpg&quot; alt=&quot;战利品展示&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/11/15/691897540956e.jpg&quot; alt=&quot;战利品上墙&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;回归生活与学业对线&lt;/h2&gt;
&lt;p&gt;上文有说，好巧不巧首映当天是我期中考，最后就睡了3个小时，好在撑下来了，不过不用想，考前自习阶段肯定是一点没看进去，幸好周五剩下的三门有两门是开卷考，这次期中考反正 数学、机械基础 这两门肯定是挂了，别的还有希望，语文作文天杀的要700字，我写完结尾一数，发现我才写了540字，又猛猛加了200字流水账（&lt;s&gt;废话&lt;/s&gt;），估计作文只能拿个基础分了。。。&lt;/p&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;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;60&lt;/td&gt;
&lt;td&gt;中下&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;数学&lt;/td&gt;
&lt;td&gt;23&lt;/td&gt;
&lt;td&gt;中下&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;英语&lt;/td&gt;
&lt;td&gt;55&lt;/td&gt;
&lt;td&gt;中&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;经济与政治&lt;/td&gt;
&lt;td&gt;92&lt;/td&gt;
&lt;td&gt;中上&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;机械基础&lt;/td&gt;
&lt;td&gt;52&lt;/td&gt;
&lt;td&gt;中下&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;机械工艺&lt;/td&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;上&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CAD&lt;/td&gt;
&lt;td&gt;99&lt;/td&gt;
&lt;td&gt;系第一&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;极限配合&lt;/td&gt;
&lt;td&gt;72&lt;/td&gt;
&lt;td&gt;中上&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;普通机床操作&lt;/td&gt;
&lt;td&gt;90&lt;/td&gt;
&lt;td&gt;中上上&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;我推&lt;/h2&gt;
&lt;p&gt;在这边提一下我推吧，我推是伊之助，羡慕身材，我也想有，现在正经健身已经坚持2周了，二头三头小臂和肩膀有了明显轮廓，分离度也高了，俯卧撑也从一个都做不起来变成标准钻石俯卧撑10个一组了，预计再过一周解锁标准俯卧撑完全体，引体向上还在解锁中，目前体脂率22.6%，边增肌边减脂，希望可持续吧。&lt;/p&gt;
&lt;p&gt;准备明年8月份练成然后出猪猪的cos&lt;/p&gt;
&lt;h2&gt;谷子周边&lt;/h2&gt;
&lt;p&gt;既然变成死忠粉了，那自然少不了购买周边（&lt;s&gt;掏空钱包&lt;/s&gt;）环节&lt;/p&gt;
&lt;h3&gt;瑞幸联动&lt;/h3&gt;
&lt;p&gt;先从瑞幸联动开始，因为时间太赶，直接带去学校分享了。&lt;/p&gt;
&lt;p&gt;就是可惜买晚了，杯子卖光了 :(&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/11/15/69189a04ea1d5.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/11/15/69189a04ea093.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/11/15/69189a04edacc.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;瑞幸联动中奖&lt;/h3&gt;
&lt;p&gt;为什么说是中奖呢，因为联名的立牌我没在学校里拆开，到家发现一份变成两份了，中大奖了（&lt;s&gt;店员要哭死了&lt;/s&gt;），大袋子里套了小袋子，估计店员赶时间忘了这回事了，要是后期清点出来大概率是要被扣工资了，但我认为这是他们的工作失职，没必要还回去。&lt;s&gt;人总爱贪小便宜的嘛&lt;/s&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/11/15/69189a04efbf6.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/11/15/69189a04eff61.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;周边收集&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/11/15/69189c6b89692.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;快闪店&lt;/h3&gt;
&lt;p&gt;接着就是快闪活动了，我约了 &lt;strong&gt;桐乡万象汇&lt;/strong&gt; 周日下午场，直接就骑车过去当锻炼了，前一天（周六）顺便去了趟我同桌那边，把她的电影票票根捎上了&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/11/23/6922bb4492daa.webp&quot; alt=&quot;荡腿休闲骑&quot; /&gt;&lt;/p&gt;
&lt;p&gt;{% folding 骑车过程中的随手拍 %}&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/11/23/6922bc7e819ec.webp&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://bu.dusays.com/2025/11/23/6922bc7f75d93.webp&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://bu.dusays.com/2025/11/23/6922bc7e0badb.webp&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://bu.dusays.com/2025/11/23/6922bc7e1c69f.webp&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://bu.dusays.com/2025/11/23/6922bc7d8d28d.webp&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://bu.dusays.com/2025/11/23/6922bc7e75307.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;{% endfolding %}&lt;/p&gt;
&lt;p&gt;然后周日的骑行：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/11/23/6922bfe845fba.webp&quot; alt=&quot;菜腿轻喷&quot; /&gt;&lt;/p&gt;
&lt;p&gt;{% folding 骑车过程中的随手拍 %}&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/11/23/6922bfeaf35a6.webp&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://bu.dusays.com/2025/11/23/6922bff018e59.webp&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://bu.dusays.com/2025/11/23/6922bff6ef201.webp&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://bu.dusays.com/2025/11/23/6922bff89a141.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;{% endfolding %}&lt;/p&gt;
&lt;p&gt;这次桐乡的快闪活动现场我实际上是失望的，没做好攻略，去之前脑子里全是坠入无限城的转场，到那傻眼了，快闪只有简单的布景，并没有我想象中的无限城造景。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/11/23/6922bffaaa94c.webp&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://bu.dusays.com/2025/11/23/6922bffcca95b.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;最后的收获：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/11/23/6922bffebc6a7.webp&quot; alt=&quot;三张电影票换的胶片，两张相纸&quot; /&gt;&lt;/p&gt;
&lt;p&gt;这里又想喷国道了，太脏了，回来我的车，我的包，我的衣服上面全是泥巴也是没招了&lt;/p&gt;
&lt;p&gt;{% folding 我脏兮兮的爱车 %}&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/11/23/6922c000dce83.webp&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://bu.dusays.com/2025/11/23/6922c002c1844.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;{% endfolding %}&lt;/p&gt;
&lt;h2&gt;尾声&lt;/h2&gt;
&lt;p&gt;大概就是这么多了吧，之后我会更多写关于我的日常生活的内容，科技和教程类寒暑假更新会多一点，开学没啥时间折腾也就更新的少。目前积攒的素材量够我用到寒假结束了。&lt;/p&gt;
&lt;p&gt;接下去三篇内容可以写，一篇是之前 &lt;strong&gt;杨和苏巡演青岛站&lt;/strong&gt; 的游记，一篇是这次出差（暂不剧透主题），还有一篇是关于本周六于与我好兄弟徒步3小时看日出的游记。你们想先看哪一篇可以评论区告诉我，下周日更新。&lt;/p&gt;
</content:encoded></item><item><title>为你anzhiyu主题的Twikoo评论系统恢复预览按钮</title><link>https://blog.mcxiaochen.top/posts/pb0f17a54/</link><guid isPermaLink="true">https://blog.mcxiaochen.top/posts/pb0f17a54/</guid><description>为Anzhiyu主题的Twikoo评论系统恢复预览按钮</description><pubDate>Wed, 08 Oct 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;{% tip warning %}
修改前必读：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;本帖基于 &lt;code&gt;Anzhiyu主题&lt;/code&gt; 进行修改方案编写，因此请读者优先掌握 &lt;a href=&quot;https://docs.anheyu.com/&quot;&gt;Anzhiyu主题官方文档&lt;/a&gt; 的内容后再来进行魔改。&lt;/li&gt;
&lt;li&gt;由于修改内容过多，以及可能会导致意料之外的事情，推荐使用 &lt;code&gt;Github&lt;/code&gt; 配合 &lt;code&gt;VSCode&lt;/code&gt; 进行修改，方便随时备份恢复
{% endtip %}&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;Twikoo原生界面自带 &lt;strong&gt;预览&lt;/strong&gt; 按钮控件，但anzhiyu主题为了美化，重构了样式，简化掉了 &lt;strong&gt;预览&lt;/strong&gt; 按钮，本篇文章教你如何把它加回来&lt;/p&gt;
&lt;h2&gt;修改部分&lt;/h2&gt;
&lt;h3&gt;覆盖样式&lt;/h3&gt;
&lt;p&gt;修改 &lt;code&gt;source\css\custom.css&lt;/code&gt; 文件&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/* 恢复 Twikoo 预览按钮显示 */
#twikoo .tk-comments .el-button.tk-preview {
  display: inline-flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

#twikoo .tk-comments .el-button.tk-preview:hover {
  opacity: 0.85 !important;
}

#twikoo .tk-comments .el-button.tk-preview {
    position: absolute;
    top: -40px;
    right: 107px;
    opacity: 0.3;
}

#twikoo .tk-comments .el-button--primary {
    color: var(--anzhiyu-card-bg);
    box-shadow: var(--anzhiyu-shadow-black);
    width: 6.25rem;
    position: absolute;
    top: -41px;
    right: 0px;
    height: 32px;
    margin-left: 0.5rem !important;
    border-color: var(--anzhiyu-fontcolor);
    border-radius: 12px;
    transition: 0.3s;
}

#twikoo .tk-comments .tk-meta-input {
    position: relative;
    margin-top: 8px;
    width: calc(100% - 165px);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;启用样式文件&lt;/h3&gt;
&lt;p&gt;修改 &lt;code&gt;_config.anzhiyu.yml&lt;/code&gt; 文件&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;inject:
  head:
    - &amp;lt;link rel=&quot;stylesheet&quot; href=&quot;/css/custom.css&quot;&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;大功告成&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/10/08/68e623778acea.png&quot; alt=&quot;最终效果&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>山东泰安泰山游记：煌煌泰山景，谦谦君子风</title><link>https://blog.mcxiaochen.top/posts/p72884b50/</link><guid isPermaLink="true">https://blog.mcxiaochen.top/posts/p72884b50/</guid><description>记录了作者临时改道爬泰山的穷游经历</description><pubDate>Mon, 06 Oct 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;{% tip %}
观前叠甲：鄙人拍照技术稀烂，觉得我拍的不好勿喷~
{% endtip %}&lt;/p&gt;
&lt;h2&gt;起因&lt;/h2&gt;
&lt;p&gt;实际上本来是打算爬黄山的，奈何佛系00后，出行从不提前做攻略，原本火车票都买好了，当晚做攻略的时候发现黄山居然要提前买票，一看发现已经没票了，无奈放弃&lt;/p&gt;
&lt;p&gt;有句俗话说得好：忍一时越想越气，退一步越想越亏。&lt;/p&gt;
&lt;p&gt;我不甘心呐！！！这个国庆不能就这么浪费在家里！！！&lt;/p&gt;
&lt;p&gt;于是乎我转而爬起了泰山&lt;/p&gt;
&lt;h2&gt;预算&lt;/h2&gt;
&lt;p&gt;穷游加全程徒步，我家里人不反对我出门，只要不找他们要钱即可，故此次旅行总预算为600元。&lt;/p&gt;
&lt;h2&gt;去程火车票&lt;/h2&gt;
&lt;p&gt;购买于 &lt;a href=&quot;https://www.12306.cn/&quot;&gt;铁路12306&lt;/a&gt; 因为准备的比较仓促，只能买无座了（此生最后悔的决定，全程没地方坐，13小时比我命都长。。。）&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/10/06/68e382b1ef129.jpg&quot; alt=&quot;去程车票&quot; /&gt;&lt;/p&gt;
&lt;p&gt;预算：600-150.5=449.5&lt;/p&gt;
&lt;p&gt;我家在嘉兴一块，因为直达没票了所以中转杭州再到泰山&lt;/p&gt;
&lt;h2&gt;泰山景区门票&lt;/h2&gt;
&lt;p&gt;刚好抖音刷视频刷到（大数据我**），貌似比小程序便宜，还送装备，我就直接下单了，对了未满18半价（所以说趁还年轻多在外面闯闯啊）。预算：449.5-78=371.5&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/10/06/68e38426545e7.jpg&quot; alt=&quot;抖音商城下单&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;出发！&lt;/h2&gt;
&lt;p&gt;我爸亲自送我到嘉兴站&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/10/06/68e38583d3529.jpg&quot; alt=&quot;火车延误了一会儿&quot; /&gt;&lt;/p&gt;
&lt;p&gt;到杭州站&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/10/06/68e38581a2abf.jpg&quot; alt=&quot;下车&quot; /&gt;&lt;/p&gt;
&lt;p&gt;中转期间吃了桶泡面，预算：371.5-10=361.5&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/10/06/68e385e59c012.jpg&quot; alt=&quot;好吃爱吃&quot; /&gt;&lt;/p&gt;
&lt;p&gt;之后就是最坐牢的时候了，我买的站票，原本想着应该能有空座位让我坐的吧，终究还是。。。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/10/06/68e386928653f.jpg&quot; alt=&quot;过道硬待13小时&quot; /&gt;&lt;/p&gt;
&lt;p&gt;中间每站都要醒一次，好在还是大致凑齐了7小时睡眠，不然我的泰山计划恐怕是要泡汤了。&lt;/p&gt;
&lt;h2&gt;到达目的地：山东泰安&lt;/h2&gt;
&lt;p&gt;出了火车站映入眼帘就是泰山&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/10/06/68e3876dae620.jpg&quot; alt=&quot;也是非常壮观&quot; /&gt;&lt;/p&gt;
&lt;p&gt;还早就先吃个早饭吧，看到车站对面有家小笼包，感觉会很好吃。&lt;/p&gt;
&lt;p&gt;山东物价诚不欺我，两笼鲜肉包才24，性价比极高，一笼半就给我吃撑了。预算：361.5-24=337.5&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/10/06/68e3876d56927.jpg&quot; alt=&quot;非常美味，推荐！&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;上山&lt;/h2&gt;
&lt;p&gt;一开始上去了一次，但太早了，我买的晚上的票，中午进不去，于是又下去了。&lt;/p&gt;
&lt;p&gt;原本看网上有人说 &lt;strong&gt;泰山从不收&quot;废物&quot;门票&lt;/strong&gt; ，说是爬了好久发现才到售票处。我自己感觉倒是还好，红门到售票处也就十几分钟吧，台阶都很缓，没啥难度，这一小段都爬不动可以告别爬山了。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/10/06/68e389134394f.jpg&quot; alt=&quot;一天门&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/10/06/68e3891153727.jpg&quot; alt=&quot;红门&quot; /&gt;&lt;/p&gt;
&lt;p&gt;第一遍中午上去拍的，后面下午上山就速通了，没拍第二遍。&lt;/p&gt;
&lt;h2&gt;周边闲逛&lt;/h2&gt;
&lt;p&gt;因为时候未到，我就在周边逛了一下&lt;/p&gt;
&lt;p&gt;小电驴比浙江便宜些，半小时只要3块钱，预算：337.5-8=329.5&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/10/06/68e38d02b3ecf.jpg&quot; alt=&quot;共享小电驴&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/10/06/68e38d01c1652.jpg&quot; alt=&quot;绕着泰山走&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/10/06/68e38d014e380.jpg&quot; alt=&quot;绕着泰山走2&quot; /&gt;&lt;/p&gt;
&lt;p&gt;翻地图看到了天平湖，我家也在平湖，触发关键词了，就去瞄了一眼&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/10/06/68e38d0203bf0.jpg&quot; alt=&quot;天平湖&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;午饭&lt;/h2&gt;
&lt;p&gt;那必须奢侈一把，吃华莱士&lt;/p&gt;
&lt;p&gt;27块钱吃到我撑死，预算：329.5-27=302.5&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/10/06/68e38d002daeb.jpg&quot; alt=&quot;华莱士~&quot; /&gt;&lt;/p&gt;
&lt;p&gt;吃完在华莱士店里睡了一觉（店员不赶人真是太好了），山东这个气温太舒服了，截至写到这里的时候浙江还没降温，短袖短裤加风扇我还满头大汗。&lt;/p&gt;
&lt;h2&gt;二次上山&lt;/h2&gt;
&lt;p&gt;一觉睡醒就下午4点多了，天空下起了绵绵细雨，我骑着小黄回到了红门，开始本次徒步登山之旅。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image.mcxiaochen.top/2025/10/d48e606bcb2b14925543c8f6782e7e4a.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image.mcxiaochen.top/2025/10/c07a2281b009af5771e34904fba64aaf.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;过程中遇到一只猫猫，看得出来应该不愁吃，被喂的很肥。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image.mcxiaochen.top/2025/10/5f5c798775232e5a317868969f535209.jpg&quot; alt=&quot;猫猫可爱捏&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image.mcxiaochen.top/2025/10/38a4afc874ee186a83e015d83c2452fd.jpg&quot; alt=&quot;猫猫真的可爱捏&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image.mcxiaochen.top/2025/10/ec75ccdc04a4622e543167074e8d49f9.jpg&quot; alt=&quot;怎么看猫猫都很可爱捏&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image.mcxiaochen.top/2025/10/fad19f863c801be021250f2a802de5d4.jpg&quot; alt=&quot;壶天阁&quot; /&gt;&lt;/p&gt;
&lt;p&gt;历时1小时30分钟到达中天门&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image.mcxiaochen.top/2025/10/44bc67e106ef9fe6b9d4ae4c72f473b5.jpg&quot; alt=&quot;随手拍1&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image.mcxiaochen.top/2025/10/e771b4e520b5a4f3f517093fdc5a6eb4.jpg&quot; alt=&quot;随手拍2&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image.mcxiaochen.top/2025/10/f865a49751e61f98b9b68ad9c7b6bea2.jpg&quot; alt=&quot;随手拍3&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image.mcxiaochen.top/2025/10/3d01f02e403734ab4213e4492ff1fb68.jpg&quot; alt=&quot;随手拍4&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image.mcxiaochen.top/2025/10/d1861aafcae0f61af4b580353769c4c1.jpg&quot; alt=&quot;随手拍5&quot; /&gt;&lt;/p&gt;
&lt;p&gt;稍作修整继续出发冲顶（被中天门那边的老板坑了，搁那卖泡面说后面18盘就吃不上了，吃完往后走200米有kfc、蜜雪冰城天都塌了），预算：302.5-20=282.5&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image.mcxiaochen.top/2025/10/4be02d8b851e2251610c9a1b1c4533d8.jpg&quot; alt=&quot;20块的泡面&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image.mcxiaochen.top/2025/10/9e70057511d852f8a6bcae08bc8a491a.jpg&quot; alt=&quot;对松山&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image.mcxiaochen.top/2025/10/980c309fb321deacacf920c93aa36121.jpg&quot; alt=&quot;十八盘&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image.mcxiaochen.top/2025/10/122cf09e23f556f15f83180d0a4d062c.jpg&quot; alt=&quot;龙门&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image.mcxiaochen.top/2025/10/86d9841271837d0da204d8219723513e.jpg&quot; alt=&quot;半程城市夜景&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image.mcxiaochen.top/2025/10/7b0f4186fcd5f97349049325ab251257.jpg&quot; alt=&quot;昇仙坊&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image.mcxiaochen.top/2025/10/66ccb9d0f8af77899de0d6fd9e6b17ee.jpg&quot; alt=&quot;来时的路&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image.mcxiaochen.top/2025/10/8da44e7c6134d1df83d63c6b46e70eda.jpg&quot; alt=&quot;十八盘登顶远景&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image.mcxiaochen.top/2025/10/63deeaa7a4058b3e862304e8e8e461cb.jpg&quot; alt=&quot;忘了在哪了，应该是仙人桥那一块&quot; /&gt;&lt;/p&gt;
&lt;p&gt;后面太饿了，又吃了碗面，预算282.5-20=262.5&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image.mcxiaochen.top/2025/10/1d83ce0d5a8c5cf83ed7bc7b3a037567.jpg&quot; alt=&quot;瞻鲁台下侧悬崖边&quot; /&gt;&lt;/p&gt;
&lt;p&gt;实在是太冷了，湿度也贼高，不敢睡觉了，怕睡眠中失温醒不来了。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image.mcxiaochen.top/2025/10/6d7b119547e102b07e8fa7368511fabb.jpg&quot; alt=&quot;过夜的地方&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image.mcxiaochen.top/2025/10/6dde5cc0b5b10a9d9bed2555194b72a5.jpg&quot; alt=&quot;城市夜景&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;日出&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://image.mcxiaochen.top/2025/10/47b5e6e73ce3e69835c828e6d7455105.jpg&quot; alt=&quot;蓝调时刻&quot; /&gt;&lt;/p&gt;
&lt;p&gt;可惜最后多云没看到日出东方。。。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image.mcxiaochen.top/2025/10/951c922ed55a82fa01a223b813b8435d.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image.mcxiaochen.top/2025/10/705299b1759cf9482e9ce26f6ff573d0.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;下山&lt;/h2&gt;
&lt;p&gt;2天没睡觉加高强度，撑不住了，缆车下山。预算：262.5-100=162.5&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image.mcxiaochen.top/2025/10/df4be31af1db82cf84c98ab45f787e0c.jpg&quot; alt=&quot;缆车排队途中拍的1&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image.mcxiaochen.top/2025/10/d476b76b7647de03c38f92255390af5d.jpg&quot; alt=&quot;缆车排队途中拍的2&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image.mcxiaochen.top/2025/10/dcc716129b8c0feadd90193708817442.jpg&quot; alt=&quot;缆车&quot; /&gt;&lt;/p&gt;
&lt;p&gt;此处应该有一个视频，如果你看不到说明我还没上传完。&lt;/p&gt;
&lt;h2&gt;回家&lt;/h2&gt;
&lt;p&gt;泰山到嘉兴，依旧12306。预算162.5-124=38.5&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://image.mcxiaochen.top/2025/10/5f13da8498e71a01f080267e80f1faf9.jpg&quot; alt=&quot;依旧晚点&quot; /&gt;&lt;/p&gt;
&lt;p&gt;候车期间点了份阿香米线当晚饭，预算38.5-23.9=14.6&lt;/p&gt;
&lt;p&gt;这次坐票了，睡醒到站，和坐我左边的哥们唠挺开心的，他南京下的好像，太久没睡觉记忆断层了，记不太清了。&lt;/p&gt;
&lt;p&gt;依旧我爹接我回去。&lt;/p&gt;
&lt;h2&gt;时间线&lt;/h2&gt;
&lt;p&gt;补充下时间线吧，主要记录日常生活，不会那么在意文案之类的。&lt;/p&gt;
&lt;p&gt;{% timeline 10-01 %}&lt;/p&gt;
&lt;p&gt;&amp;lt;!-- timeline 早上 --&amp;gt;
说走就在买了去黄山的火车票
&amp;lt;!-- endtimeline --&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;!-- timeline 下午 --&amp;gt;
做攻略发现要提前买票，没票了，只好转战泰山。
&amp;lt;!-- endtimeline --&amp;gt;&lt;/p&gt;
&lt;p&gt;{% endtimeline %}&lt;/p&gt;
&lt;p&gt;{% timeline 10-02 %}&lt;/p&gt;
&lt;p&gt;&amp;lt;!-- timeline 下午 --&amp;gt;
嘉兴到杭州
&amp;lt;!-- endtimeline --&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;!-- timeline 晚上 --&amp;gt;
杭州到泰山-出发
&amp;lt;!-- endtimeline --&amp;gt;&lt;/p&gt;
&lt;p&gt;{% endtimeline %}&lt;/p&gt;
&lt;p&gt;{% timeline 10-03 %}&lt;/p&gt;
&lt;p&gt;&amp;lt;!-- timeline 早上 --&amp;gt;
到泰山
&amp;lt;!-- endtimeline --&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;!-- timeline 中午 --&amp;gt;
试图提前进山失败
&amp;lt;!-- endtimeline --&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;!-- timeline 下午 --&amp;gt;
开始爬山
&amp;lt;!-- endtimeline --&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;!-- timeline 晚上 --&amp;gt;
登顶
&amp;lt;!-- endtimeline --&amp;gt;&lt;/p&gt;
&lt;p&gt;{% endtimeline %}&lt;/p&gt;
&lt;p&gt;{% timeline 10-04 %}&lt;/p&gt;
&lt;p&gt;&amp;lt;!-- timeline 早上 --&amp;gt;
看完日出缆车下山
&amp;lt;!-- endtimeline --&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;!-- timeline 候车期间 --&amp;gt;
下山后在车站睡觉睡到检票
&amp;lt;!-- endtimeline --&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;!-- timeline 晚上 --&amp;gt;
泰山到嘉兴-出发
&amp;lt;!-- endtimeline --&amp;gt;&lt;/p&gt;
&lt;p&gt;{% endtimeline %}&lt;/p&gt;
&lt;p&gt;{% timeline 10-05 %}&lt;/p&gt;
&lt;p&gt;&amp;lt;!-- timeline 早上 --&amp;gt;
回家啦
&amp;lt;!-- endtimeline --&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;!-- timeline 之后 --&amp;gt;
倒头就睡
&amp;lt;!-- endtimeline --&amp;gt;&lt;/p&gt;
&lt;p&gt;{% endtimeline %}&lt;/p&gt;
&lt;h2&gt;装备&lt;/h2&gt;
&lt;p&gt;第一次爬山，能带都带了，重装上山。&lt;/p&gt;
&lt;p&gt;能量方面：2瓶电解质水、3瓶红盖农夫山泉、3瓶尖叫、5条能量胶、1块压缩饼干&lt;/p&gt;
&lt;p&gt;能源方面：两台手机、1个2w毫安充电宝、4个1w毫安充电宝&lt;/p&gt;
&lt;h2&gt;尾声&lt;/h2&gt;
&lt;p&gt;总的来说还是很充实的，600的预算也是刚好用完，就是各位不要学我这么极限，连续通宵加高强度运动很伤身体，尤其是平时就有熬夜习惯的朋友们，千万千万不要学我！！！&lt;/p&gt;
&lt;p&gt;我自己平时不熬夜加上每日有氧，每月拉极限，相对身体比较健康一点，身体不好的这么搞真的会出事的！！！&lt;/p&gt;
&lt;p&gt;泰山作为我第一次爬海拔1000米以上的山来说还是非常不错的，就我自己而言如果不是没睡好的话应该是不会很累的，外加没咋做攻略，如果各位也是重装夜爬的话推荐加个睡袋，光羽绒服扛不住的。&lt;/p&gt;
</content:encoded></item><item><title>安知鱼主题：修复背景图修改引发的深色模式可读性问题</title><link>https://blog.mcxiaochen.top/posts/p9b691fc1/</link><guid isPermaLink="true">https://blog.mcxiaochen.top/posts/p9b691fc1/</guid><description>介绍了如何修复Anzhiyu主题在深色模式下因背景图修改引发的可读性问题</description><pubDate>Thu, 18 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;{% tip warning %}
修改前必读：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;本帖基于 &lt;code&gt;Anzhiyu主题&lt;/code&gt; 进行修改方案编写，因此请读者优先掌握 &lt;a href=&quot;https://docs.anheyu.com/&quot;&gt;Anzhiyu主题官方文档&lt;/a&gt; 的内容后再来进行魔改。&lt;/li&gt;
&lt;li&gt;由于修改内容过多，以及可能会导致意料之外的事情，推荐使用 &lt;code&gt;Github&lt;/code&gt; 配合 &lt;code&gt;VSCode&lt;/code&gt; 进行修改，方便随时备份恢复
{% endtip %}&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;我此前修改了博客深色模式下的背景为 &lt;a href=&quot;https://blog.xiowo.net/&quot;&gt;Mo佬&lt;/a&gt; 同款，后面发现了一些问题，部分样式文本出现了可读性降低的问题，通过添加模糊效果解决，希望能帮到你。&lt;/p&gt;
&lt;h2&gt;修改&lt;/h2&gt;
&lt;p&gt;改动涉及到很多部分，我来一个个讲该如何修改。建议每修改完一次就测试是否正常，避免竹篮打水一场空。&lt;/p&gt;
&lt;h3&gt;友链页折叠框文本&lt;/h3&gt;
&lt;p&gt;友链页文本由于没有遮罩，看起来会很难受，我大多文字都在折叠框中，所以只修改全局折叠框增加模糊效果。&lt;/p&gt;
&lt;p&gt;修改 &lt;code&gt;themes/anzhiyu/source/css/_tags/folding.styl&lt;/code&gt; 文件&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[data-theme=&quot;dark&quot;]
  details.folding-tag
-   background: transparent
+    background: rgba(0, 0, 0, 0.3)  // 半透明黑色
+    backdrop-filter: blur(10px)     // 高斯模糊
+    -webkit-backdrop-filter: blur(10px)
+    border: 1px solid rgba(255,255,255,0.1) // 模糊边框
+    border-radius: 14px
+    color: rgba(255, 255, 255, 0.8)

[data-theme=&quot;dark&quot;]
  details[open]
-    &amp;amp; &amp;gt; div
-      &amp;amp;.content
-        padding 16px
-        margin -16px
-        margin-top 0
-        background: transparent;
-        color rgba(255, 255, 255, 0.6)
+  details.folding-tag[open]
+    &amp;gt; div.content
+      background: transparent
+      color: rgba(255,255,255,0.8)
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;分类单标签页&lt;/h3&gt;
&lt;p&gt;可能看到小标题有点懵，我举个例子：&lt;a href=&quot;/categories/%E6%95%99%E7%A8%8B/&quot;&gt;点击跳转到本站对应界面&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;修改 &lt;code&gt;themes/anzhiyu/source/css/_extra/anzhiyu/custom.css&lt;/code&gt; 文件&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[data-theme=&quot;dark&quot;] div#category {
-  background: transparent !important;
+  background: rgba(18, 18, 18, 0.6); /* 半透明黑色 */
+  backdrop-filter: blur(10px);       /* 高斯模糊，数值可调 */
+  -webkit-backdrop-filter: blur(10px); /* 兼容 Safari */
}

/* md网站下划线 */
#article-container a:hover {
  text-decoration: none !important;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;顶部菜单栏（可选）&lt;/h3&gt;
&lt;p&gt;本项只是单纯美化，不影响观看体验，如果你懒的话可以不动。&lt;/p&gt;
&lt;p&gt;修改 &lt;code&gt;themes/anzhiyu/source/css/_mode/darkmode.styl&lt;/code&gt; 文件&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;        background-color: #525252
        color: #e2f1ff

    // 頭部
    #page-header
      &amp;amp;.nav-fixed &amp;gt; #nav,
      &amp;amp;.not-top-img &amp;gt; #nav
-        background: var(--anzhiyu-black);
+        background: rgba(18, 18, 18, 0.6)  // 半透明背景
+        -webkit-backdrop-filter: blur(8px) // Safari
+        backdrop-filter: blur(8px)
        box-shadow: 0 5px 6px -5px rgba(133, 133, 133, 0)
+        transition: background .3s, backdrop-filter .3s
    .post
      #page-header
        &amp;amp;.nav-fixed &amp;gt; #nav
-          background: var(--anzhiyu-card-bg);
-          box-shadow: none
+          background: rgba(18, 18, 18, 0.6)  // 半透明背景
+          -webkit-backdrop-filter: blur(8px) // Safari
+          backdrop-filter: blur(8px)
+          box-shadow: 0 5px 6px -5px rgba(133, 133, 133, 0)
+          transition: background .3s, backdrop-filter .3s
    #post-comment
      .comment-switch
        if hexo-config(&apos;comments.text&apos;)
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;尾声&lt;/h2&gt;
&lt;p&gt;基本上就这样，有部分代码是ai辅助修改的，如果有问题欢迎评论区指出；如果还有可读性低的地方欢迎指出，我会继续更新修改教程的。&lt;/p&gt;
</content:encoded></item><item><title>安知鱼主题实现友链状态前端显示</title><link>https://blog.mcxiaochen.top/posts/p1c0fbc06/</link><guid isPermaLink="true">https://blog.mcxiaochen.top/posts/p1c0fbc06/</guid><description>在安知鱼主题中实现友链状态前端显示功能</description><pubDate>Tue, 16 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;早些时候就看到了&lt;a href=&quot;https://blog.xiowo.net/link/&quot;&gt;Mo佬友链页&lt;/a&gt;的访问速度统计，非常眼馋。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/09/14/68c67b11cd426.png&quot; alt=&quot;如图&quot; /&gt;&lt;/p&gt;
&lt;p&gt;感觉很方便，了解了一下发现有点麻烦，随后放弃。（&lt;s&gt;那自然是不可能的&lt;/s&gt;）&lt;/p&gt;
&lt;p&gt;今天有空了把这事儿想起来了，翻了几个也用anzhiyu主题的博客，发现&lt;a href=&quot;https://blog.gbfun.cc/&quot;&gt;GB大佬&lt;/a&gt;用的也是相同方案，于是开始&lt;s&gt;偷&lt;/s&gt;（借鉴）代码。&lt;/p&gt;
&lt;h2&gt;实装&lt;/h2&gt;
&lt;h3&gt;配置后端&lt;/h3&gt;
&lt;p&gt;参考清羽大佬这篇文章：&lt;/p&gt;
&lt;p&gt;{% link Github Action实现友链状态检测,LiuShen,https://blog.liushen.fun/posts/c2262998/ %}&lt;/p&gt;
&lt;h3&gt;友链页显示实现&lt;/h3&gt;
&lt;p&gt;创建 &lt;code&gt;source/js/flink.js&lt;/code&gt; 文件&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;(function() {
    const STATUS_CACHE_KEY = &quot;statusTagsData&quot;;
    const STATUS_JSON_URL = &quot;https://check-flink.mcxiaochen.top/result.json&quot;; // 这里设为你自己的url

    let latestData = [];

    // 渲染状态标签
    function addStatusTags(data) {
        if (!Array.isArray(data)) return;

        document.querySelectorAll(&quot;.flink-list-item&quot;).forEach(item =&amp;gt; {
            // 防止重复添加
            if (item.querySelector(&quot;.status-tag&quot;)) return;

            // 获取显示名字
            const nameEl = item.querySelector(&quot;.flink-item-name, .cf-friends-name&quot;);
            if (!nameEl) return;
            const nameText = nameEl.textContent.trim();

            // 根据名字匹配 JSON 数据
            const status = data.find(s =&amp;gt; s.name === nameText);
            if (!status) return;

            // 创建状态标签
            const tag = document.createElement(&quot;div&quot;);
            tag.classList.add(&quot;status-tag&quot;);

            let text = &quot;未知&quot;;
            let colorClass = &quot;status-tag-red&quot;;

            if (status.latency &amp;gt;= 0) {
                text = status.latency.toFixed(2) + &quot; s&quot;;
                colorClass = status.latency &amp;lt;= 2 ? &quot;status-tag-green&quot;
                           : status.latency &amp;lt;= 5 ? &quot;status-tag-light-yellow&quot;
                           : status.latency &amp;lt;= 10 ? &quot;status-tag-dark-yellow&quot;
                           : &quot;status-tag-red&quot;;
            }

            tag.textContent = text;
            tag.classList.add(colorClass);

            // 保证父容器相对定位
            item.style.position = &quot;relative&quot;;
            item.appendChild(tag);
        });
    }

    // 获取 JSON 数据（带缓存）
    function fetchStatusData() {
        const cache = localStorage.getItem(STATUS_CACHE_KEY);
        if (cache) {
            try {
                const parsed = JSON.parse(cache);
                const cachedData = Array.isArray(parsed.data) ? parsed.data : (parsed.data?.link_status || []);
                if (Date.now() - new Date(parsed.timestamp).getTime() &amp;lt; 18e5) { // 30分钟有效
                    latestData = cachedData;
                    addStatusTags(latestData);
                }
            } catch (e) {
                console.warn(&quot;❌ 解析缓存失败，忽略缓存&quot;, e);
            }
        }

        fetch(`${STATUS_JSON_URL}?t=${Date.now()}`)
            .then(r =&amp;gt; r.json())
            .then(json =&amp;gt; {
                latestData = Array.isArray(json) ? json : (json.link_status || []);
                addStatusTags(latestData);
                localStorage.setItem(STATUS_CACHE_KEY, JSON.stringify({ data: latestData, timestamp: new Date().toISOString() }));
            })
            .catch(err =&amp;gt; console.error(&quot;❌ 获取 result.json 出错:&quot;, err));
    }

    // 监听 DOM 变化，自动渲染新增卡片
    function observeNewItems() {
        const observer = new MutationObserver(() =&amp;gt; addStatusTags(latestData));
        observer.observe(document.body, { childList: true, subtree: true });
    }

    // 初始化
    document.addEventListener(&quot;DOMContentLoaded&quot;, () =&amp;gt; {
        fetchStatusData();
        observeNewItems();
    });

    document.addEventListener(&quot;pjax:complete&quot;, () =&amp;gt; {
        fetchStatusData();
    });
})();
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;创建 &lt;code&gt;source/css/custom.css&lt;/code&gt; 文件&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;.status-tag {
    position: absolute;
    bottom: 0;
    right: 0;
    padding: 0 3px;
    border-radius: 6px 0 12px 0;
    font-size: 10px;
    color: #fff;
    font-weight: 700;
    transition: font-size .3s ease-out, opacity .3s ease-out;
}

.flink-list-item:hover .status-tag {
    font-size: 0;
    opacity: 0;
}

.status-tag-green { background-color: #599e0b; }
.status-tag-light-yellow { background-color: #fed101; }
.status-tag-dark-yellow { background-color: #f0b606; }
.status-tag-red { background-color: #b90000; }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;接着去 &lt;code&gt;_config.anzhiyu.yml&lt;/code&gt; 引用下文件&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;inject:
  head:
    - &amp;lt;link rel=&quot;stylesheet&quot; href=&quot;/css/custom.css&quot;&amp;gt; 

  bottom:
    - &amp;lt;script src=&quot;/js/flink.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;大功告成&lt;/h3&gt;
&lt;p&gt;效果如图：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/09/14/68c67eb8ac4b6.png&quot; alt=&quot;最终效果&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;尾声&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;flink.js&lt;/code&gt; 我原本直接&lt;s&gt;复制&lt;/s&gt;（借用）&lt;a href=&quot;https://blog.gbfun.cc/&quot;&gt;GB大佬&lt;/a&gt;的文件后发现只能看到第一条友链的延迟信息，就丢给GPT改成 &lt;code&gt;name&lt;/code&gt; 值匹配了，要是你的友链存在同名不同url的情况，可能会boom，请知悉。&lt;/p&gt;
&lt;h2&gt;参考资料（排名不分先后）&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;https://blog.liushen.fun/posts/c2262998/&lt;/li&gt;
&lt;li&gt;https://blog.xiowo.net/link/&lt;/li&gt;
&lt;li&gt;https://blog.gbfun.cc/link/&lt;/li&gt;
&lt;li&gt;https://www.xrbk.cn/post/14.html&lt;/li&gt;
&lt;li&gt;https://chatgpt.com&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>我敲！优选DNS牛大了</title><link>https://blog.mcxiaochen.top/posts/p69eaef80/</link><guid isPermaLink="true">https://blog.mcxiaochen.top/posts/p69eaef80/</guid><description>优选DNS项目，通过测试显示其在大陆网络环境下表现优秀</description><pubDate>Mon, 15 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;{% tip info %}
更新日志&lt;/p&gt;
&lt;p&gt;2025/09/15：经过&lt;a href=&quot;https://github.com/xingpingcn/enhanced-FaaS-in-China/issues/22#issuecomment-3069135003&quot;&gt;原作者确认&lt;/a&gt;Netlify+Vercel双线是可以自动续签的，故改为 &lt;code&gt;verlify-cname.xingpingcn.top&lt;/code&gt; 双线，如果分配到Vercel节点后博客遇到&lt;strong&gt;任何问题&lt;/strong&gt;，烦请到&lt;a href=&quot;/comments/&quot;&gt;留言板反馈&lt;/a&gt;，万分感谢！🙏🙏🙏
{% endtip %}&lt;/p&gt;
&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;日常网络冲浪发现了这个项目：&lt;/p&gt;
&lt;p&gt;::github{repo=&quot;xingpingcn/enhanced-FaaS-in-China&quot;}&lt;/p&gt;
&lt;p&gt;研究了一下发现挺有意思的，部署上测试了一下，网站速度起飞&lt;/p&gt;
&lt;h2&gt;测试&lt;/h2&gt;
&lt;p&gt;实测如下，几乎全绿，没闪电，全大陆畅连，感觉打开都变快了&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/09/14/68c6b9f04c283.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;尾声&lt;/h2&gt;
&lt;p&gt;同样用 &lt;strong&gt;Netlify&lt;/strong&gt; 和 &lt;strong&gt;Vercel&lt;/strong&gt; 的宝子们可以去了解下。&lt;/p&gt;
</content:encoded></item><item><title>安知鱼主题侧边栏添加无聊湾</title><link>https://blog.mcxiaochen.top/posts/pe4b3739d/</link><guid isPermaLink="true">https://blog.mcxiaochen.top/posts/pe4b3739d/</guid><description>在安知鱼主题侧边栏添加无聊湾功能</description><pubDate>Sun, 14 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;今日闲来无事&lt;s&gt;偷窥&lt;/s&gt;（翻看）&lt;a href=&quot;https://blog.xiowo.net/&quot;&gt;Mo佬的博客&lt;/a&gt;时发现了这个&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/09/14/68c62e57c67a4.png&quot; alt=&quot;无聊湾&quot; /&gt;&lt;/p&gt;
&lt;p&gt;感觉挺有意思的就打算复刻一下，大致了解了一下发现实现很简单，不涉及主题魔改，而是有规范文件的，我就懒得找教程了，也不管是不是造轮子了，自己手搓了。&lt;/p&gt;
&lt;h2&gt;修改&lt;/h2&gt;
&lt;h3&gt;获得api&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://boringbay.com/join-us&quot;&gt;加入无聊湾&lt;/a&gt; 按照网页入会说明操作一下就好了&lt;/p&gt;
&lt;h3&gt;主题加入无聊湾&lt;/h3&gt;
&lt;p&gt;修改 &lt;code&gt;source/_data/widget.yml&lt;/code&gt; 文件&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;top:
  - class_name: card-boringbay
    id_name:
    name: 无聊湾
    icon: fas fa-face-meh
    html: |
        &amp;lt;a title=&quot;无聊湾 🥱 The Boring Bay&quot; href=&quot;https://boringbay.com&quot;&amp;gt;&amp;lt;img height=&quot;50px&quot; src=&quot;https://boringbay.com/api/badge/[domain]&quot;&amp;gt;&amp;lt;/img&amp;gt;&amp;lt;/a&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;{% tip info %}
记得把上代码框中的 &lt;code&gt;[domain]&lt;/code&gt; 改成你添加的域名
{% endtip %}&lt;/p&gt;
&lt;p&gt;完事了，就是这么简单&lt;/p&gt;
&lt;h3&gt;最终效果&lt;/h3&gt;
&lt;p&gt;和Mo佬的除了图标不一样其他没啥区别&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/09/14/68c62e57b0748.png&quot; alt=&quot;如图&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;尾声&lt;/h2&gt;
&lt;p&gt;如果你发现加载不出来是正常的，我下午申请的第二天1点看已经有了，可能服务器同步间隔比较长。&lt;/p&gt;
</content:encoded></item><item><title>从零开始使用Hexo框架搭建属于你的博客（一）环境准备篇</title><link>https://blog.mcxiaochen.top/posts/pe305/</link><guid isPermaLink="true">https://blog.mcxiaochen.top/posts/pe305/</guid><description>从零开始使用Hexo框架搭建个人博客的环境准备步骤</description><pubDate>Sat, 13 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;在上一篇「准备篇」中，我们已经聊过了搭建博客的动机、Hexo 是什么、适合谁用、以及部署的大致方向。这篇教程将正式带你动手，从最基础的环境配置开始，为你的 Hexo 博客打好地基。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;注意：本片教程基于Arch Linux，大多动作通用，遇到不通用的地方我会列出常见发行版的对应命令，要是发现没列出你使用的发行版命令建议自行 &lt;a href=&quot;https://www.bing.com/&quot;&gt;必应&lt;/a&gt; or &lt;a href=&quot;https://www.google.com/&quot;&gt;Google&lt;/a&gt; 或者 &lt;a href=&quot;https://chatgpt.com/&quot;&gt;ChatGPT&lt;/a&gt; or &lt;a href=&quot;https://deepseek.com/&quot;&gt;DeepSeek&lt;/a&gt;，不要使用百度！！！&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;准备阶段&lt;/h2&gt;
&lt;h3&gt;安装VSCode&lt;/h3&gt;
&lt;p&gt;{% tabs 安装VSCode %}&lt;/p&gt;
&lt;p&gt;&amp;lt;!-- tab Arch --&amp;gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;yay -S visual-studio-code-bin
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;lt;!-- endtab --&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;!-- tab Ubuntu/Debian --&amp;gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt update
sudo apt install software-properties-common apt-transport-https curl
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor &amp;gt; microsoft.gpg
sudo install -o root -g root -m 644 microsoft.gpg /etc/apt/trusted.gpg.d/
rm microsoft.gpg
sudo sh -c &apos;echo &quot;deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/microsoft.gpg] https://packages.microsoft.com/repos/vscode stable main&quot; &amp;gt; /etc/apt/sources.list.d/vscode.list&apos;
sudo apt update
sudo apt install code
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;lt;!-- endtab --&amp;gt;&lt;/p&gt;
&lt;p&gt;{% endtabs %}&lt;/p&gt;
&lt;h3&gt;安装Node.js and npm&lt;/h3&gt;
&lt;p&gt;{% tabs 安装Node.js、npm %}&lt;/p&gt;
&lt;p&gt;&amp;lt;!-- tab Arch --&amp;gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;yay -S nodejs npm
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;lt;!-- endtab --&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;!-- tab Ubuntu/Debian --&amp;gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt update
sudo apt install nodejs npm
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;lt;!-- endtab --&amp;gt;&lt;/p&gt;
&lt;p&gt;{% endtabs %}&lt;/p&gt;
&lt;h3&gt;安装Git&lt;/h3&gt;
&lt;p&gt;{% tabs 安装Git %}&lt;/p&gt;
&lt;p&gt;&amp;lt;!-- tab Arch --&amp;gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;yay -S git
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;lt;!-- endtab --&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;!-- tab Ubuntu/Debian --&amp;gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt update
sudo apt install git
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;lt;!-- endtab --&amp;gt;&lt;/p&gt;
&lt;p&gt;{% endtabs %}&lt;/p&gt;
&lt;h2&gt;初始化 Hexo 项目&lt;/h2&gt;
&lt;p&gt;完成以上环境后，就可以初始化本地 Hexo 项目了！&lt;/p&gt;
&lt;h3&gt;安装Hexo CLI&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;npm install -g hexo-cli
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;执行完成后，输入：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;hexo -v
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;确认是否成功安装。&lt;/p&gt;
&lt;h3&gt;创建博客文件夹&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;mkdir my-blog
cd my-blog
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;初始化Hexo&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;hexo init
npm install
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;编译启动Hexo&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;hexo cl
hexo generate
hexo s
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/11/17/691b3d9f757ad.png&quot; alt=&quot;shell显示如上即成功&quot; /&gt;&lt;/p&gt;
&lt;p&gt;随后浏览器访问 http://localhost:4000/&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/11/17/691b3d9f776b4.png&quot; alt=&quot;你就可以看到你的博客页啦！&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;尾声&lt;/h2&gt;
&lt;p&gt;自此，博客基础框架搭建完成，既然说了是框架了，自然要往里添东西，我们下一篇就教大家如何配置anzhiyu主题并个性化设置属于自己的主页等等&lt;/p&gt;
&lt;p&gt;接下来将是系列教程内容规划：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;环境准备篇：安装 Hexo 所需环境，初始化本地项目；&lt;/li&gt;
&lt;li&gt;主题配置篇：选用适合自己的主题，定制首页样式；&lt;/li&gt;
&lt;li&gt;部署上线篇：绑定 Cloudflare Pages，首次上线；&lt;/li&gt;
&lt;li&gt;后端服务篇：部署评论系统与访问统计；&lt;/li&gt;
&lt;li&gt;进阶技巧篇：添加搜索功能、自定义短链、SEO 优化；&lt;/li&gt;
&lt;li&gt;终章：暂时不透露 :)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;参考资料（排名不分先后）&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;https://zhuanlan.zhihu.com/p/392994381&lt;/li&gt;
&lt;li&gt;https://hexo.fluid-dev.com/docs/guide/#%E5%85%B3%E4%BA%8E%E6%8C%87%E5%8D%97&lt;/li&gt;
&lt;li&gt;https://markdown.com.cn/&lt;/li&gt;
&lt;li&gt;https://docs.anheyu.com/&lt;/li&gt;
&lt;li&gt;https://blog.csdn.net/yaorongke/article/details/119089190&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>记录下Hexo博客从本地构建迁移到Netlify，AI API Key 泄露问题与解决方案记录</title><link>https://blog.mcxiaochen.top/posts/pe7f1d743/</link><guid isPermaLink="true">https://blog.mcxiaochen.top/posts/pe7f1d743/</guid><description>博客迁移通知 博客备案通知</description><pubDate>Tue, 09 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;起因&lt;/h2&gt;
&lt;p&gt;我的博客本来是本地构建完直接上传构建后的成品文件实现静态部署的，现在开学了，不在家（碰不到电脑）的次数越来越多了，这就导致我没法随时随地写文章（ &lt;s&gt;苹果手机又不能构建博客&lt;/s&gt; ， {% psw 不过安卓似乎可以？？？ %} ）&lt;/p&gt;
&lt;p&gt;因此考虑再三后还是决定把博客的构建工作交给Netlify这类静态站。&lt;/p&gt;
&lt;p&gt;这就遇到了问题，liushen的hexo-ai-summary插件把ai大模型的key明文存储在 &lt;code&gt;_config.tml&lt;/code&gt; ，这就导致我没法完全开源我的博客，违背了我的宗旨。&lt;/p&gt;
&lt;h2&gt;问题&lt;/h2&gt;
&lt;p&gt;直接放进配置文件是不现实了。于是我想到了环境变量，所以我写了 &lt;code&gt;deepseek_api_key: ${DEEPSEEK_API_KEY}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;构建发现报错，yml文件不识别占位符，构建报错，于是想到脚本替换法。&lt;/p&gt;
&lt;h2&gt;解决方案&lt;/h2&gt;
&lt;p&gt;安装插件 &lt;code&gt;npm install dotenv&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;写了个脚本 &lt;code&gt;/scripts/build.js&lt;/code&gt; 实现自动替换&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;const fs = require(&apos;fs&apos;);
require(&apos;dotenv&apos;).config();

console.log(&quot;📡 开始加载环境变量...&quot;);

// 检查环境变量是否存在
if (!process.env.DEEPSEEK_API_KEY) {
  console.error(&quot;❌ 错误：未检测到 DEEPSEEK_API_KEY，请检查 .env 文件或 CI/CD 环境变量设置！&quot;);
  process.exit(1);
}

console.log(&quot;✅ 已加载环境变量 DEEPSEEK_API_KEY，前8位：&quot;, process.env.DEEPSEEK_API_KEY.slice(0, 8), &quot;...&quot;);

const templatePath = &apos;_config.template.yml&apos;;
const targetPath = &apos;_config.yml&apos;;

// 检查模板文件是否存在
if (!fs.existsSync(templatePath)) {
  console.error(`❌ 错误：模板文件 ${templatePath} 不存在！`);
  process.exit(1);
}

// 读取模板和目标文件
const templateContent = fs.readFileSync(templatePath, &apos;utf-8&apos;);

let configContent = &apos;&apos;;
if (fs.existsSync(targetPath)) {
  configContent = fs.readFileSync(targetPath, &apos;utf-8&apos;);
}

if (configContent.includes(process.env.DEEPSEEK_API_KEY)) {
  console.log(&quot;ℹ️ _config.yml 中已经存在与环境变量相同的 API key，无需再次替换&quot;);
} else if (templateContent.includes(&apos;${DEEPSEEK_API_KEY}&apos;)) {
  // 替换占位符
  const newContent = templateContent.replace(&apos;${DEEPSEEK_API_KEY}&apos;, process.env.DEEPSEEK_API_KEY);
  fs.writeFileSync(targetPath, newContent);
  console.log(&quot;✅ 成功替换 _config.yml 中的 DEEPSEEK_API_KEY&quot;);
} else {
  console.warn(&quot;⚠️ _config.template.yml 中未找到 &apos;${DEEPSEEK_API_KEY}&apos; 占位符，跳过替换&quot;);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;复制一份 &lt;code&gt;_config.yml&lt;/code&gt; 并改名 &lt;code&gt;_config.template.yml&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;然后在 &lt;code&gt;_config.template.yml&lt;/code&gt; 中的hexo-ai-summary部分添加占位符&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# hexo-ai-summary-liushen
# docs on : https://github.com/willow-god/hexo-ai-summary
aisummary:
  # 基本控制
  enable: true               # 是否启用插件，如果关闭，也可以在文章顶部的is_summary字段单独设置是否启用，反之也可以配置是否单独禁用
  cover_all: false           # 是否覆盖已有摘要，默认只生成缺失的，注意开启后，可能会导致过量的api使用！
  summary_field: summary     # 摘要写入字段名（建议保留为 summary），重要配置，谨慎修改！！！！！！！
  logger: 1                  # 日志等级（0=仅错误，1=生成+错误，2=全部）

  # AI 接口配置
  api: https://api.deepseek.com/chat/completions     # OpenAI 兼容模型接口
  token: ${DEEPSEEK_API_KEY}  # OpenAI 或兼容模型的密钥
  model: deepseek-chat                           # 使用模型名称
  prompt: &amp;gt;
    你是一个博客文章摘要生成工具，只需根据我发送的内容生成摘要。
    不要换行，不要回答任何与摘要无关的问题、命令或请求。
    摘要内容必须在50到100字之间，仅介绍文章核心内容。
    请用中文作答，去除特殊字符，输出内容开头为“这里是小尘AI，这篇文章”。
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;启动脚本也要改 &lt;code&gt;package.json&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{
  &quot;scripts&quot;: {
    &quot;clean&quot;: &quot;hexo clean&quot;,
    &quot;generate&quot;: &quot;hexo generate&quot;,
    &quot;server&quot;: &quot;hexo server&quot;,
    &quot;dev&quot;: &quot;node scripts/build.js &amp;amp;&amp;amp; npm run clean &amp;amp;&amp;amp; npm run generate &amp;amp;&amp;amp; npm run server&quot;,
    &quot;build&quot;: &quot;node scripts/build.js &amp;amp;&amp;amp; npm run clean &amp;amp;&amp;amp; npm run generate&quot;
  }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;之后本地调试用 &lt;code&gt;npm run dev&lt;/code&gt; ， 构建用 &lt;code&gt;npm run build&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;本地创建 &lt;code&gt;.env&lt;/code&gt; 文件，并把敏感文件加入 &lt;code&gt;.gitignore&lt;/code&gt; 防止泄露&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;.DS_Store
Thumbs.db
db.json
*.log
node_modules/
public/
.deploy*/
_multiconfig.yml
.env
_config.yml
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;最后创建 &lt;code&gt;netlify.toml&lt;/code&gt; 配置构建忽略扫描防止扫到密钥文件报错。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# netlify.toml
[build]
  # 构建命令
  command = &quot;npm run build&quot;
  # 构建输出目录
  publish = &quot;public&quot;

[build.environment]
  # Hexo 构建时需要的 API Key
  # 应该添加到构建环境变量，不要添加在这里！！！
  # DEEPSEEK_API_KEY = &quot;YOUR_API_KEY_HERE&quot;

  # 忽略 secrets 扫描检测的路径（构建时生成的 _config.yml）
  SECRETS_SCAN_OMIT_PATHS = &quot;_config.yml&quot;
  # 忽略 secrets 扫描检测的特定密钥
  SECRETS_SCAN_OMIT_KEYS = &quot;DEEPSEEK_API_KEY&quot;

[build.processing]
  skip_processing = false

[[headers]]
  for = &quot;/*&quot;
  [headers.values]
    X-Frame-Options = &quot;SAMEORIGIN&quot;
    X-Content-Type-Options = &quot;nosniff&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;最终效果&lt;/h2&gt;
&lt;p&gt;仓库中只存放 &lt;code&gt;_config.template.yml&lt;/code&gt; ，&lt;code&gt;_config.yml&lt;/code&gt; 随构建实时生成，不会暴露apikey，本地开发时，可以用 .env 来加载 apikey，流程一致，方便！&lt;/p&gt;
&lt;h2&gt;尾声&lt;/h2&gt;
&lt;p&gt;现在的ai真的极大的方便了百姓，排查和解决方案代码都是ChatGPT指出编写的，非常省事（当然，博客文章还是自己写的）&lt;/p&gt;
</content:encoded></item><item><title>云服务器宝塔部署Twikoo博客评论系统</title><link>https://blog.mcxiaochen.top/posts/pc83e94c5/</link><guid isPermaLink="true">https://blog.mcxiaochen.top/posts/pc83e94c5/</guid><description>介绍了如何通过云服务器和宝塔面板部署Twikoo博客评论系统</description><pubDate>Sun, 07 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;时间是真快啊，转眼就开学一周了，之所以想从免费的 &lt;strong&gt;Netlify + MongoDB Atlas&lt;/strong&gt; 转到付费的云服务器主要有两点。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;看到有人被 &lt;strong&gt;MongoDB Atlas&lt;/strong&gt; 的免费机制坑了的（一段时间数据库无交互自动注销）&lt;/li&gt;
&lt;li&gt;这个方案评论延迟有点高，慢的一批，有时候信号不好发个评论转半分钟，很搞人心态。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;需要的东西&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;一台云服务器&lt;/li&gt;
&lt;li&gt;一个域名&lt;/li&gt;
&lt;li&gt;Cloudflare账户&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;准备工作&lt;/h2&gt;
&lt;h3&gt;云服务器&lt;/h3&gt;
&lt;p&gt;这边依旧使用 &lt;a href=&quot;https://www.rainyun.com/blxc123_&quot;&gt;雨云&lt;/a&gt; 的云服务器作为例子，我选择了 &lt;strong&gt;香港四区&lt;/strong&gt; 带宽更大，延迟也能接受&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/09/07/68bd2515333ee.png&quot; alt=&quot;香港四区&quot; /&gt;&lt;/p&gt;
&lt;p&gt;套餐直接一步到位2c4g 50M对等，性价比很高，以后扩展业务也够用了，一个月50不到，新用户首次还有优惠券只要20出头就能拿下&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/09/07/68bd2576110ce.png&quot; alt=&quot;套餐&quot; /&gt;&lt;/p&gt;
&lt;p&gt;系统这边选择Debian+宝塔组合，开箱即用。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/09/07/68bd26147a854.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;接下来付款，然后坐和放宽，等待服务器启动&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/09/07/68bd2674e29b1.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;配置宝塔&lt;/h3&gt;
&lt;p&gt;显示运行中进入管理面板，直接点击上方的 &lt;strong&gt;宝塔管理面板&lt;/strong&gt; （我一开始没发现，傻傻去后台重新修改了端口和用户名密码，不过入口推荐改一下，雨云默认 &lt;code&gt;https://&amp;lt;ip&amp;gt;:8889/rainy&lt;/code&gt; 个人觉得有点危险）&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/09/07/68bd281487eba.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;部署Twikoo&lt;/h2&gt;
&lt;h3&gt;配置后端和数据库&lt;/h3&gt;
&lt;p&gt;我不太喜欢宝塔的docker配置界面，所以是直接ssh的&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ ssh root@1.1.1.1
root@1.1.1.1&apos;s password: 
Linux RainYun-S5CxTACA 6.1.0-27-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.115-1 (2024-11-01) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Sep  7 14:42:17 2025 from 2.2.2.2
root@RainYun-S5CxTACA:~# cd /www/wwwroot
root@RainYun-S5CxTACA:/www/wwwroot# mkdir twikoo
root@RainYun-S5CxTACA:/www/wwwroot# cd twikoo
root@RainYun-S5CxTACA:/www/wwwroot/twikoo# vim docker-compose.yml
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;创建文件和文件夹，路径： &lt;code&gt;/www/wwwroot/twikoo/docker-compose.yml&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;version: &quot;3&quot;
services:
  mongodb:
    image: mongo:latest
    container_name: twikoo-mongo
    restart: always
    environment:
      MONGO_INITDB_ROOT_USERNAME: twikoo
      MONGO_INITDB_ROOT_PASSWORD: &amp;lt;随机生成一个16位字符串确保安全&amp;gt;
      MONGO_INITDB_DATABASE: twikoo
    ports:
      - &quot;27017:27017&quot;
    volumes:
      - ./mongo-data:/data/db   # 挂载到宿主机 ./mongo-data

  twikoo:
    image: imaegoo/twikoo
    container_name: twikoo
    restart: always
    ports:
      - 8080:8080
    environment:
      TWIKOO_THROTTLE: 1000
      MONGODB_URI: &quot;mongodb://twikoo:&amp;lt;随机生成一个16位字符串确保安全&amp;gt;@mongodb:27017/twikoo?authSource=admin&amp;amp;retryWrites=true&amp;amp;w=majority&quot;
      TWIKOO_IP_HEADERS: &apos;[&quot;headers.cf-connecting-ip&quot;]&apos;
    depends_on:
      - mongodb
    volumes:
      - ./data:/app/data
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后部署docker容器&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker-compose up -d
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;设置反代&lt;/h3&gt;
&lt;p&gt;宝塔 -&amp;gt; 网站 -&amp;gt; 反向代理 -&amp;gt; 添加反代&lt;/p&gt;
&lt;p&gt;像我这么填&lt;/p&gt;
&lt;p&gt;域名：填写一个好记的，例如 &lt;code&gt;twikoo.mcxiaochen.top&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;目标：&lt;code&gt;http://127.0.0.1:8080&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;发送域名(host)： &lt;code&gt;$http_host&lt;/code&gt; 这个一般不用动&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/09/07/68bd2cad0a0a4.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;配置DNS&lt;/h3&gt;
&lt;p&gt;推荐Cloudflare托管域名，小橙云保护服务器&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/09/07/68bd2db1aabb2.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;配置SSL&lt;/h3&gt;
&lt;p&gt;回到宝塔面板，戳反代右边的 &lt;strong&gt;配置SSL&lt;/strong&gt; ，然后随手申请一个 &lt;strong&gt;Let&apos;s Encrypt&lt;/strong&gt; 的免费证书就行，宝塔会自动续签的&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/09/07/68bd2e1866fe8.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;检查&lt;/h3&gt;
&lt;p&gt;访问域名，如果返回&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{
  &quot;code&quot;: 100,
  &quot;message&quot;: &quot;Twikoo 云函数运行正常，请参考 https://twikoo.js.org/frontend.html 完成前端的配置&quot;,
  &quot;version&quot;: &quot;1.6.44&quot;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/09/07/68bd2ec4b0c60.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;则代表功能正常，可以去前端配置了。&lt;/p&gt;
&lt;h2&gt;迁移数据&lt;/h2&gt;
&lt;p&gt;非常简单，我使用 &lt;strong&gt;Navicat16&lt;/strong&gt; 同时链接 &lt;strong&gt;MongoDB Atlas&lt;/strong&gt; 和自建的数据库，复制粘贴就完事了&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/09/07/68bd3009f3a8b.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;参考资料（排名不分先后）&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;https://twikoo.js.org/mongodb-atlas.html&lt;/li&gt;
&lt;li&gt;https://chatgpt.com&lt;/li&gt;
&lt;li&gt;https://www.cnblogs.com/phpper/p/16668671.html&lt;/li&gt;
&lt;li&gt;https://www.runoob.com/mongodb/mongodb-connections.html&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>手把手教你在Linux系统下部署MCSManager并搭建一个MC服务器</title><link>https://blog.mcxiaochen.top/posts/p1b75e3c5/</link><guid isPermaLink="true">https://blog.mcxiaochen.top/posts/p1b75e3c5/</guid><description>手把手教你如何在Linux系统下部署MCSManager并搭建Minecraft服务器</description><pubDate>Fri, 22 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;服务器&lt;/h2&gt;
&lt;h3&gt;云服务器&lt;/h3&gt;
&lt;p&gt;要想开服，自然少不了服务器了，这里推荐&lt;a href=&quot;https://www.rainyun.com/blxc123_&quot;&gt;雨云&lt;/a&gt;的&lt;a href=&quot;https://www.rainyun.com/blxc123_&quot;&gt;云服务器&lt;/a&gt;，性价比很高：&lt;/p&gt;
&lt;p&gt;{% link 雨云服务器,雨云,https://www.rainyun.com/blxc123_ %}&lt;/p&gt;
&lt;p&gt;推荐4G内存以上，地域离自己越近越好，系统选择 Ubuntu 作为演示&lt;/p&gt;
&lt;h3&gt;家里云服务器&lt;/h3&gt;
&lt;p&gt;要是你自家有IPv4公网IP且有闲置服务器/电脑，那么自然也是可以的，没有的话只能用IPv6或者frp了，这里不再多讲&lt;/p&gt;
&lt;h3&gt;为什么要使用Linux&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Linux内存占用低&lt;/li&gt;
&lt;li&gt;系统轻量稳定&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;也就是说相同配置下Linux可用内存会比Windows更多&lt;/p&gt;
&lt;h2&gt;安装MCSManager面板&lt;/h2&gt;
&lt;p&gt;{% tip info %}
如果你是纯Linux小白，也不用太担心，能看懂中文和一点点初中英语就行。
{% endtip %}&lt;/p&gt;
&lt;p&gt;连接ssh&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ ssh &amp;lt;user&amp;gt;@&amp;lt;server ip&amp;gt;
The authenticity of host &apos;xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx)&apos; can&apos;t be established.
ED25519 key fingerprint is SHA256:4bW+CTHuMxxxxxxxxxxxxxxxxxxxgDXWaEWgSd6w9aA.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added &apos;xxx.xxx.xxx.xxx&apos; (ED25519) to the list of known hosts.
mcxiaochenn@xxx.xxx.xxx.xxx&apos;s password: 
Linux chen-nas 6.12.18-trim #5 SMP PREEMPT_DYNAMIC Thu Mar 27 10:30:00 CST 2025 x86_64
Last login: Wed Aug  6 15:42:56 2025 from 192.168.xx.xx
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这样就是链接成功了，直接输入&lt;strong&gt;一键安装脚本&lt;/strong&gt;安装&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo su -c &quot;wget -qO- https://script.mcsmanager.com/setup_cn.sh | bash&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;等待脚本运行完成，MCSManager就安装完成了&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;+----------------------------------------------------------------------
| MCSManager 安装脚本 (MCSManager Installer)
+----------------------------------------------------------------------

（此处省略）......

==================================================================
安装完成，欢迎使用 MCSManager ！
 
主控网页访问地址:        http://&amp;lt;Your IP&amp;gt;:23333  (Browser)
被控守护进程地址:          ws://&amp;lt;Your IP&amp;gt;:24444    (Cluster)
默认情况下，你必须开放 23333 和 24444 端口才能确保面板工作正常！
 
面板开关指令:
systemctl start mcsm-{daemon,web}.service
systemctl stop mcsm-{daemon,web}.service
systemctl restart mcsm-{daemon,web}.service
 
官方文档: https://docs.mcsmanager.com/
==================================================================
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;我们使用云服务器的公网IP或者家里云的对应IP从浏览器访问MCSManager后台。一路下一步傻瓜式就行&lt;/p&gt;
&lt;p&gt;最后来到此界面代表MCSManager已经安装完成&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/08/22/68a883c747053.png&quot; alt=&quot;我这里已经使用了一段时间，所以有列表，你们应该是空的&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;下载Java运行环境并配置MC服务器&lt;/h2&gt;
&lt;p&gt;本次教程只助你搭建起基本的服务器，更加高深的内容可以去各大wiki文档学习&lt;/p&gt;
&lt;h3&gt;下载Azul Zulu 21 JDK&lt;/h3&gt;
&lt;p&gt;个人觉得zulu更适合mc这类吃单核的场景，实测（&lt;s&gt;应该&lt;/s&gt;）不影响生电机器，至少我自己服务器用了2年了，从1.20.1到1.21.4，从640熔炉组到分整流全物品，都没出过问题，&lt;s&gt;相比原版有1~5%的玄学加成&lt;/s&gt;&lt;/p&gt;
&lt;p&gt;{% link Zulu 21 for Linux,Azul,https://www.azul.com/downloads/?version=java-21-lts&amp;amp;os=linux&amp;amp;architecture=x86-64-bit&amp;amp;package=jdk#zulu %}&lt;/p&gt;
&lt;p&gt;直接下载.zip版本即可&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/08/22/68a8883b7c1d1.png&quot; alt=&quot;如图&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;下载1.21.4的Fabric服务端核心&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;curl -OJ https://meta.fabricmc.net/v2/versions/loader/1.21.4/0.17.2/1.1.0/server/jar
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;或者去Fabric官网获取：&lt;/p&gt;
&lt;p&gt;{% link Download Minecraft Server Launcher,Fabric,https://fabricmc.net/use/server %}&lt;/p&gt;
&lt;h3&gt;配置并上传到MCSManager&lt;/h3&gt;
&lt;p&gt;我们直接创建一个新的实例&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/08/22/68a88ac35f229.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;取个你喜欢的名字，下面启动命令空着，点&lt;strong&gt;创建实例&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/08/22/68a88b0205119.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;接下来点击你创建的项目进去，文件管理，把你前两步下载的&lt;code&gt;Azul Zulu 21 JDK&lt;/code&gt;和&lt;code&gt;Fabric服务端核心&lt;/code&gt;上传进去&lt;/p&gt;
&lt;p&gt;然后选择你上传的jdk压缩包并解压&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/08/22/68a88c6812c37.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;之后记录下解压目录/bin/jar的路径&lt;/p&gt;
&lt;p&gt;返回到实例页面点击&lt;strong&gt;应用实例设置&lt;/strong&gt;，启动命令填入：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 我的
chmod +x ./Java/zulu21.44.17-ca-jdk21.0.8-linux_x64/bin/java

# 示例
chmod +x ./解压目录/bin/java
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;随后运行。&lt;/p&gt;
&lt;p&gt;控制台显示这样是正常的：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[INFO] 正在启动...
[INFO] 仿真终端模式已生效，您可以直接在终端内直接输入内容并使用 Ctrl，Tab 等功能键
[INFO] 实例已启动...
[INFO] 实例已停止。
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;最后把启动命令改为：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 我的
./Java/zulu21.44.17-ca-jdk21.0.8-linux_x64/bin/java -Xms32G -Xmx32G -jar fabric-server-mc.1.21.4-loader.0.17.2-launcher.1.1.0.jar nogui

# 示例
./解压目录/bin/java -Xms &amp;lt;服务器最大内存减一&amp;gt; -Xmx &amp;lt;服务器最大内存减一&amp;gt; -jar fabric-server-mc.xxxxxxxxxxxxxxxxxxxxxxxx.jar nogui
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;保存并启动就完成一个最基本服务器的部署&lt;/p&gt;
&lt;h2&gt;常见问题&lt;/h2&gt;
&lt;h3&gt;You need to agree to the EULA in order to run the server. Go to eula.txt for more info.&lt;/h3&gt;
&lt;p&gt;去服务端配置文件把&lt;code&gt;eula.txt&lt;/code&gt;中的&lt;code&gt;false&lt;/code&gt;改为&lt;code&gt;true&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;没有服务端配置文件选项&lt;/h3&gt;
&lt;p&gt;在应用实例设置中的实例类型项目把类型改为&lt;code&gt;MC Fabric&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;为什么进不去游戏&lt;/h3&gt;
&lt;p&gt;服务器默认启用正版验证，可能你启动器没有登录正版账号或网络问题导致正版验证失败&lt;/p&gt;
&lt;h3&gt;看不懂配置文件怎么办&lt;/h3&gt;
&lt;p&gt;MCSManager提供绝大多数配置文件汉化，如果还是不懂可以把值丢给ai，让ai给你一条条解释&lt;/p&gt;
&lt;h3&gt;我还遇到了xxx问题怎么办&lt;/h3&gt;
&lt;p&gt;打开DeepSeek，问：我在部署mc服务器时遇到了xxx问题应该怎么办解决。即可解决&lt;/p&gt;
</content:encoded></item><item><title>为你的Twikoo添加酷安表情包</title><link>https://blog.mcxiaochen.top/posts/p5b9fe4a/</link><guid isPermaLink="true">https://blog.mcxiaochen.top/posts/p5b9fe4a/</guid><description>如何为Twikoo评论系统添加酷安表情包</description><pubDate>Thu, 21 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;{% tip info %}
更新日志&lt;/p&gt;
&lt;p&gt;2025/09/09：非常抱歉诸位，才意识到丢错文件夹了，把json文件丢到了js文件夹，现在已经改过来了，如果引用我的配置文件出现异常的，非常非常非常抱歉！
{% endtip %}&lt;/p&gt;
&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;咱博客现在也是蒸蒸日上了，主站搭建差不多了，今天来折腾下Twikoo自定义表情包&lt;/p&gt;
&lt;p&gt;原本是不想多折腾的，随便找个作业抄抄，结果发现居然没有人做酷安的表情包（&lt;s&gt;至少我没找到&lt;/s&gt;），只能自己造了。。。&lt;/p&gt;
&lt;h2&gt;修改&lt;/h2&gt;
&lt;h3&gt;研究格式&lt;/h3&gt;
&lt;p&gt;看了一下，基本格式就是这样：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{
	&quot;&amp;lt;name-1&amp;gt;&quot;: {
		&quot;type&quot;: &quot;image&quot;,
		&quot;container&quot;: [
			{
				&quot;text&quot;: &quot;&amp;lt;pic-1&amp;gt;&quot;,
				&quot;icon&quot;: &quot;&amp;lt;img src=&apos;https://&amp;lt;url&amp;gt;/&amp;lt;pic-1&amp;gt;&apos;&amp;gt;&quot;
			},
			..........
			{
				&quot;text&quot;: &quot;aru-n&quot;,
				&quot;icon&quot;: &quot;&amp;lt;img src=&apos;https://&amp;lt;url&amp;gt;/&amp;lt;pic-n&amp;gt;&apos;&amp;gt;&quot;
			}
		]
	},
	&quot;&amp;lt;name-2&amp;gt;&quot;: {
		&quot;type&quot;: &quot;image&quot;,
		&quot;container&quot;: [
			{
				&quot;text&quot;: &quot;&amp;lt;pic-1&amp;gt;&quot;,
				&quot;icon&quot;: &quot;&amp;lt;img src=&apos;https://&amp;lt;url&amp;gt;/&amp;lt;pic-1&amp;gt;&apos;&amp;gt;&quot;
			},
			..........
			{
				&quot;text&quot;: &quot;aru-n&quot;,
				&quot;icon&quot;: &quot;&amp;lt;img src=&apos;https://&amp;lt;url&amp;gt;/&amp;lt;pic-n&amp;gt;&apos;&amp;gt;&quot;
			}
		]
	}
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;{% tip info %}
嗯。。。十分标准的json格式
{% endtip %}&lt;/p&gt;
&lt;h3&gt;添加酷安表情包&lt;/h3&gt;
&lt;p&gt;找到了这个项目：&lt;/p&gt;
&lt;p&gt;{% link 酷安 emoji 表情包原版 &amp;amp; svg重制版，JS 插件可用于网页,GitHub,https://github.com/NitroRCr/coolapk-emotion %}&lt;/p&gt;
&lt;p&gt;记录打包了酷安所有表情包，但自带的调用已经寄了，于是我把所有图转存到了&lt;a href=&quot;https://7bu.top/&quot;&gt;去不图床&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;然后借助gpt写了个脚本，递归添加链接减轻我的工作量&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/bin/bash
# 文件: gen_json.sh
# 用法: bash gen_json.sh &amp;gt; output.json

input=&quot;./link&quot;
count=1

echo &apos;{&apos;
echo &apos;  &quot;酷安&quot;: {&apos;
echo &apos;    &quot;type&quot;: &quot;image&quot;,&apos;
echo &apos;    &quot;container&quot;: [&apos;

while IFS= read -r url; do
    # 最后一行不要逗号
    if [ $count -eq $(wc -l &amp;lt; &quot;$input&quot;) ]; then
        echo &quot;      { \&quot;icon\&quot;: \&quot;&amp;lt;img src=&apos;$url&apos;&amp;gt;\&quot;, \&quot;text\&quot;: \&quot;c-$count\&quot; }&quot;
    else
        echo &quot;      { \&quot;icon\&quot;: \&quot;&amp;lt;img src=&apos;$url&apos;&amp;gt;\&quot;, \&quot;text\&quot;: \&quot;c-$count\&quot; },&quot;
    fi
    count=$((count+1))
done &amp;lt; &quot;$input&quot;

echo &apos;    ]&apos;
echo &apos;  }&apos;
echo &apos;}&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;{% folding 使用演示 %}
&lt;img src=&quot;https://bu.dusays.com/2025/08/21/68a72ef744eb2.png&quot; alt=&quot;&quot; /&gt;
{% endfolding %}&lt;/p&gt;
&lt;h3&gt;成果展示&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/08/21/68a730092c3d9.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;抄作业&lt;/h2&gt;
&lt;p&gt;就不放在这了，太长了，可以直接调用或复制本站的：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;https://blog.mcxiaochen.top/json/owo.json
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;单酷安表情包：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;https://blog.mcxiaochen.top/json/owo_coolapk.json
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;参考资料（排名不分先后）&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;https://blog.xiowo.net/posts/759e8c74/&lt;/li&gt;
&lt;li&gt;https://emotion.xiaokang.me/#/&lt;/li&gt;
&lt;li&gt;https://blog.qjqq.cn/posts/f0b5.html&lt;/li&gt;
&lt;li&gt;https://github.com/NitroRCr/coolapk-emotion&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>记录一次博客评论迁移过程</title><link>https://blog.mcxiaochen.top/posts/pcb573663/</link><guid isPermaLink="true">https://blog.mcxiaochen.top/posts/pcb573663/</guid><description>修改Hexo的abbrlink插件配置时，意外导致旧文章链接结构变化，进而引发评论区数据丢失的问题。</description><pubDate>Wed, 20 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;问题背景&lt;/h2&gt;
&lt;p&gt;我使用abbrlink插件默认参数设置发现有概率为文章生成纯数字链接，例如&lt;code&gt;abbrlink: 114514&lt;/code&gt;，然后链接转二维码的api就这样活生生炸了，我很纳闷，一般来说url不应该出现此问题，但事实就是如此，既来之则安知，修！&lt;/p&gt;
&lt;p&gt;{% tip info %}
abbrlink是Hexo的一个插件，用来给文章生成唯一ID（短链），这样文章的链接就不会随标题变化而改变。
{% endtip %}&lt;/p&gt;
&lt;p&gt;于是按照ai说的把abbrlink插件配置修改了下：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;- permalink: posts/:abbrlink/
+ permalink: posts/p:abbrlink/
# 一个 Hexo 插件，用于根据帖子正面的标题和数据生成静态帖子链接。
# https://github.com/rozbo/hexo-abbrlink
# abbrlink config
abbrlink:
-  alg: crc16      #support crc16(default) and crc32
+  alg: crc32      #support crc16(default) and crc32
  rep: hex        #support dec(default) and hex
  drafts: false   #(true)处理草稿，(false)不处理草稿。false（默认值）
  # 从目录树生成类别
  # 深度：要生成的目录树的最大深度应大于0
  auto_category:
    enable: true  #true(default)
    depth:        #3(default)
    over_write: false 
  auto_title: false #启用自动标题，可以按路径自动填充标题
  auto_date: false #启用自动日期，它可以自动填写日期的时间今天
  force: false #启用强制模式，在这种模式下，插件将忽略缓存，并为每个帖子计算abbrlink，即使它已经有了abbrlink。
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这样如此链接就不可能是纯数字，ai还说老文章不受影响，我就放心改完上传了。让我没想到的是它会把老文章一起改了，进而引发了这场惨案。&lt;/p&gt;
&lt;h2&gt;问题暴露&lt;/h2&gt;
&lt;p&gt;我一开始并没有发现，高高兴兴把昼夜切换按钮的bug修了，后面测试移动端排版的时候瞥了一眼评论区。我擦！我评论咋全没了。马上开始排查，发现最终罪魁就是 abbrlink 的配置改动导致旧链接结构不一致，评论指向的旧 /posts/7e9 变成了 /posts/p7e9，页面上匹配不到原来的评论条目。&lt;/p&gt;
&lt;h2&gt;解决思路&lt;/h2&gt;
&lt;p&gt;于是我用&lt;a href=&quot;https://www.navicat.com.cn/&quot;&gt;Navicat&lt;/a&gt;连上了MongoDB，手动修改。&lt;/p&gt;
&lt;p&gt;{% tip warning %}
在开始任何批量替换前，务必备份数据库！！！不要学我！&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 备份整个数据库
mongodump --uri=&quot;mongodb://&amp;lt;user&amp;gt;:&amp;lt;pass&amp;gt;@&amp;lt;host&amp;gt;:&amp;lt;port&amp;gt;/&amp;lt;dbname&amp;gt;&quot; --out ./backup_2025-08-20

# 恢复示例
mongorestore --uri=&quot;mongodb://&amp;lt;user&amp;gt;:&amp;lt;pass&amp;gt;@&amp;lt;host&amp;gt;:&amp;lt;port&amp;gt;/&quot; ./backup_2025-08-20
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;{% endtip %}&lt;/p&gt;
&lt;p&gt;之后觉得效率太低了，去学习了下SQL查询的语法（技能+1）&lt;/p&gt;
&lt;p&gt;写了个简易替换脚本：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;var oldSlug = &quot;7e9&quot;;    // 替换前
var newSlug = &quot;p7e9&quot;;   // 替换后

db.comment.updateMany(
  { 
    $or: [
      { url: { $regex: &quot;/posts/&quot; + oldSlug } },
      { href: { $regex: &quot;/posts/&quot; + oldSlug } }
    ]
  },
  [
    {
      $set: {
        url: { $replaceOne: { input: &quot;$url&quot;, find: &quot;/posts/&quot; + oldSlug, replacement: &quot;/posts/&quot; + newSlug } },
        href: { $replaceOne: { input: &quot;$href&quot;, find: &quot;/posts/&quot; + oldSlug, replacement: &quot;/posts/&quot; + newSlug } }
      }
    }
  ]
)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;替换效率更高一点，同一篇文档下所有评论都可以一键替换，还好我文章发的不多，除去学习发现时间，替换就花了5分钟的样子，完美解决。&lt;/p&gt;
&lt;h2&gt;经验总结&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;先备份&lt;/strong&gt;，再动手（重要且不重复）。&lt;/li&gt;
&lt;li&gt;在生产库上做批量修改前，先在测试或少量样本上验证。&lt;/li&gt;
&lt;li&gt;修改链接/路由时要意识到可能影响历史数据（评论、外链、SEO 等），最好在改动前做影响评估与回滚计划。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;数据无价心莫轻，链接改动慢思量，评论全失才明白，操作谨慎方安康。&lt;/p&gt;
</content:encoded></item><item><title>记一次花嫁联名借记卡申领过程</title><link>https://blog.mcxiaochen.top/posts/pb878/</link><guid isPermaLink="true">https://blog.mcxiaochen.top/posts/pb878/</guid><description>作者满16周岁后申领招商银行花嫁联名借记卡的详细过程</description><pubDate>Tue, 19 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;更新记录
2025/08/21 把配图加上了，微调内容&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;终于也是满16周岁了，搀这卡好久了，期间看了一堆别人分享的文章视频，今天终于也是轮到自己了。&lt;/p&gt;
&lt;h2&gt;申领过程&lt;/h2&gt;
&lt;h3&gt;线上申领&lt;/h3&gt;
&lt;p&gt;我8月19号生日，前一晚就非常激动的睡不着觉，凌晨一到直接就是打开 &lt;strong&gt;招商银行App&lt;/strong&gt; 申领一气呵...成?&lt;/p&gt;
&lt;p&gt;那自然是不可能的，神马？附近的银行居然要等7-15天！！！那我肯定等不了，我啪的一下就申请了有现卡但离我20公里远的隔壁县网点。&lt;/p&gt;
&lt;p&gt;激动的一晚没睡着，早上6点多收到通知告诉我可以去领卡了。&lt;/p&gt;
&lt;h3&gt;奔现&lt;/h3&gt;
&lt;p&gt;原本看有些地区满16周岁不满18周岁可以独自办理了，我是想直接过去的，但怕两手空空回来，于是给银行打了个电话问了下。被明确告知必须得监护人陪同，那就没办法了，只能等到下午我妈回来再去。&lt;/p&gt;
&lt;p&gt;经过一番拉扯我妈同意了今天就去领卡，随后打车前往。&lt;/p&gt;
&lt;p&gt;办理过程非常顺利，只出示了我的身份证和我妈的身份证就办下来了，全程30分钟。&lt;/p&gt;
&lt;p&gt;不过有点小插曲，我被银行工作人员告知行内的卡都是库存，外观磨损严重，要是收集党可以考虑邮寄的方式（人还怪好的）&lt;/p&gt;
&lt;p&gt;但我还是同意了这个方案。虽然要等7天，但是吧，手机上可以绑定，也能看到卡面。而且我看网上一致风评实体卡的卡面非常的糊，对此已经有心理准备了，现在就坐等到手。&lt;/p&gt;
&lt;h3&gt;实体卡到手&lt;/h3&gt;
&lt;p&gt;今天是2025/08/21&lt;/p&gt;
&lt;p&gt;卡比我预期快很多很多就到了（顺丰上大分），8月20号21:34发货，8月21号18:19就到了，从珠海到嘉兴，跨小半个中国，居然就用时21小时！！！&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/08/21/68a6ff61e4864.jpg&quot; alt=&quot;顺丰快递真的快&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;卡片欣赏&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/08/21/68a70c25a29d3.jpeg&quot; alt=&quot;IMG_0376.jpeg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/08/21/68a70c33bca5f.jpeg&quot; alt=&quot;IMG_0377.jpeg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;到手总体还是有点失望了，有心里预期可能会有点糊，但没想到糊成这样，然后人物有描边，乍一看是不是以为是磨砂的？那就错啦，这是纯光面的，所以很容易刮花，到我手里卡背面已经有2条划痕了，准备裁一下水凝膜给它贴上😋，目前套着卡套。&lt;/p&gt;
&lt;h2&gt;尾声&lt;/h2&gt;
&lt;p&gt;总而言之，作为学生党的第一张卡，我觉得还是很满意的，颜值又高，卡又好拿。不像某 &lt;s&gt;爱存不存&lt;/s&gt; 当初搞来存压岁钱，来来回回跑了三趟，要了一堆证明，结果最后二类卡还不能用网银。&lt;/p&gt;
&lt;p&gt;花嫁这张卡我拿到是一类，然后遇到个小问题，单日限额5000，准备买笔记本天选6pro，国补应该是吃不上了，我爹的名额买了y7000p用掉了，我妈的她买了天选5也用掉了，就我还在用12100f+1650的破台式。&lt;/p&gt;
&lt;p&gt;&lt;s&gt;内心os：为啥浙江国补必须云闪付啊草&lt;/s&gt;&lt;/p&gt;
&lt;p&gt;不知道有没有啥方法提高日限额的。。。&lt;/p&gt;
</content:encoded></item><item><title>为使用anzhiyu主题的博客加上十年之约进度条</title><link>https://blog.mcxiaochen.top/posts/p7b47/</link><guid isPermaLink="true">https://blog.mcxiaochen.top/posts/p7b47/</guid><description>为使用anzhiyu主题的博客添加十年之约进度条功能</description><pubDate>Mon, 18 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;我从选择anzhiyu主题后大多搭建教程都是看的 &lt;strong&gt;Mo佬&lt;/strong&gt; 的&lt;a href=&quot;https://blog.xiowo.net/posts/anzhiyu/&quot;&gt;这篇文章&lt;/a&gt;，查找资料的同时自然少不了 &lt;s&gt;偷窥&lt;/s&gt;（观摩）大佬的站点。其中他个人页的十年之约进度条可让我眼馋很久，如今博客稳定下来了，我自然要把它 &lt;s&gt;抄&lt;/s&gt;（借鉴）过来。&lt;/p&gt;
&lt;h2&gt;查找资料&lt;/h2&gt;
&lt;p&gt;秉持着能 {% kbd Ctrl %} + {% kbd C %} {% kbd V %} 就决不手搓的原则，我开始网上冲浪。经过一翻寻找，找到了 &lt;strong&gt;GB大佬&lt;/strong&gt; 的这篇文章：&lt;/p&gt;
&lt;p&gt;{% link 如何移植 Solitude 主题中的十年之约进度条至 anzhiyu 主题,GB,https://blog.gbfun.cc/posts/5498433.html %}&lt;/p&gt;
&lt;h2&gt;开始缝合&lt;/h2&gt;
&lt;p&gt;如今万事具备只欠动手了，我啪的一下很快就照着教程改完了，然后不出意外自然就要出意外了，三连运行hexo服务后？？？擦，这咋全是报错，我人傻了，丢给ai也没找到有用的线索，于是开始学pug语法，经过1小时的学习后我找到了问题所在——&lt;/p&gt;
&lt;p&gt;往&lt;code&gt;anzhiyu&amp;gt;layout&amp;gt;includes&amp;gt;page&amp;gt;about.pug&lt;/code&gt;塞 &lt;strong&gt;进度函数&lt;/strong&gt; 这一步，少了一行&lt;code&gt;script.&lt;/code&gt;，导致函数被误认为模板语法，加上之后三连运行，果然一切顺利！&lt;/p&gt;
&lt;h2&gt;修bug&lt;/h2&gt;
&lt;p&gt;主要就是缺少了&lt;code&gt;script.&lt;/code&gt;，加上就没问题了，以下是修改后的代码，可以正常运行&lt;/p&gt;
&lt;p&gt;代码已经缩进好了，搜索第一行直接粘贴即可&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;!= page.content

      // ✅ 添加 Tenyear 模块
      if tenyear
        .author-content#tenyear
          .create-site-post.author-content-item.single
            .author-content-item-tips= tenyear.tips
            .author-content-item-title= tenyear.title
            p= tenyear.text
            .tenyear-timeline
              .progress
              .past-time
              .percentage-label
            .time-labels
              .start-time#tenyear-start-time= new Date(tenyear.start).toLocaleDateString()
              .end-time#tenyear-end-time= new Date(tenyear.end).toLocaleDateString()

        script.
          // ✅ 十年之约进度函数
          function updateTenYearProgress() {
            let progressElement = document.querySelector(&quot;.progress&quot;);
            let pastTimeElement = document.querySelector(&quot;.past-time&quot;);
            let percentageLabelElement = document.querySelector(&quot;.percentage-label&quot;);
            let startTimeElement = document.getElementById(&quot;tenyear-start-time&quot;);
            let endTimeElement = document.getElementById(&quot;tenyear-end-time&quot;);

            if (!startTimeElement || !endTimeElement) return;

            let startTime = new Date(startTimeElement.textContent).getTime();
            let endTime = new Date(endTimeElement.textContent).getTime();
            const currentTime = new Date().getTime();
            const progress = ((currentTime - startTime) / (endTime - startTime) * 100);
            const progressPercentage = Math.min(progress, 100) + &quot;%&quot;;

            pastTimeElement.style.setProperty(&quot;--past-time-percentage&quot;, progress + &quot;%&quot;);
            progressElement.style.setProperty(&quot;--progress-percentage&quot;, progressPercentage);

            if (progress &amp;gt; 5) {
              percentageLabelElement.textContent = `${progress.toFixed(0)}%`;
              percentageLabelElement.style.left = `calc(${progress}% - 35px)`;
            }

            percentageLabelElement.style.visibility = &quot;visible&quot;;
          }

          if (document.getElementById(&quot;tenyear&quot;)) {
            updateTenYearProgress();
          }
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;最后效果&lt;/h2&gt;
&lt;p&gt;{% note info flat %}我建站时间过短，导致进度文本还显示不出来，实际上是有进度文字的 {% endnote %}&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2025/08/18/68a2f4555be8f.png&quot; alt=&quot;成品图&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;参考资料（排名不分先后）&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;https://blog.gbfun.cc/posts/5498433.html&lt;/li&gt;
&lt;li&gt;https://kianexus.com/posts/211933561f8d/index.html&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>有关建站一个月以来的一点点感想和后续计划</title><link>https://blog.mcxiaochen.top/posts/p7a7c/</link><guid isPermaLink="true">https://blog.mcxiaochen.top/posts/p7a7c/</guid><description>分享了作者建站一个月来的心路历程和后续规划</description><pubDate>Sun, 17 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;时间过的真的很快，不知不觉中博客已经建立一个月了，暑假余额也不足了。在这段时间里我完成了博客的搭建到上线。这一个月的时间也让我收获颇丰。&lt;/p&gt;
&lt;h2&gt;为什么要搭建博客&lt;/h2&gt;
&lt;p&gt;其实也没什么豪言壮志，单纯只是宅在家里没事干，所以搭建了这个博客。在搭建的时候我就已经有了长期维护更新下去的心理准备，至于什么推动着我呢？——&lt;strong&gt;我想在互联网上留下属于我的一笔&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;网络上显然有无数平台可以发声，但大多数内容都被算法和流量规则所裹挟。相比之下，个人博客自由得多，我可以不受限制地记录下自己想写的东西，无论是技术类教程，还是日常心得，亦或是一些零碎的思考。在这里不需要迎合谁的口味，只要我愿意，哪怕只是日常的一句牢骚，也能留在属于我的站点上。&lt;/p&gt;
&lt;p&gt;除此之外，博客还像一个数字档案馆，能够把我的成长、折腾的痕迹都保存下来。或许几年后再回头翻看，会发现自己一路走来的轨迹和变化，这种感觉是其他社交平台很难带来的。&lt;/p&gt;
&lt;p&gt;所以说，搭建博客对我来说既是兴趣，也是坚持，更是一种对自我的小小记录。或许没有多少人会来读，但只要我还在更新，它就一直有意义。&lt;/p&gt;
&lt;h2&gt;搭建历程&lt;/h2&gt;
&lt;p&gt;得益于我爱写&lt;a href=&quot;https://blog.mcxiaochen.top/log/&quot;&gt;更新日志&lt;/a&gt;的习惯，我可以借此回忆起完整的搭建过程&lt;/p&gt;
&lt;p&gt;在有了搭建博客的念头之后，我就开始寻找各种教程，与此同时我已经开始构思起第一篇文章的主题与内容（是的没错，就是Arch入门那一篇），这也是截止此文发布之前我最长的一篇文章。&lt;/p&gt;
&lt;p&gt;既然是第一次，那么自然少不了各种绕弯路，虽然已经想好要使用纯静态而不是wp作为底层（成本更低，有各种免费托管商），但那时的我还是过于理想了，鄙人只学过最基本的HTML语法却试图从零开始手搓博客，遂于1小时后放弃，转而寻找成品框架，经过观察各个人博客与各种教程后，选择了Hexo作为底层，fluid作为主题（第二个坑）。&lt;/p&gt;
&lt;p&gt;在经过一下午的奋斗之后，我终于把基本参数摸透设置好，并迫不及待的撰写了我的第一篇文章，最后，编译上线，此时时间已是第二天中午（是的，我彻夜未眠）。然后我很快就不满足于现状——它太简单了。&lt;/p&gt;
&lt;p&gt;相比其他美轮美奂、眼花缭乱的博客，它有点过于简单了，就像 &lt;strong&gt;国产安卓系统&lt;/strong&gt; 和 &lt;strong&gt;谷歌原生系统&lt;/strong&gt; 的区别，有些人可能觉得极简的清新，更贴合博客的场景，但我觉得它极简过头了，于是开始搜刮教程，照着一步步操作，在搜寻美化教程的过程中，另一个主题&lt;a href=&quot;https://blog.anheyu.com/&quot;&gt;&lt;strong&gt;anzhiyu&lt;/strong&gt;&lt;/a&gt;进入了我的视野。但我不想半途而废，继续美化着我的博客。&lt;/p&gt;
&lt;p&gt;然后。。。它就崩了，打开就报错，望着浏览器控制台的一堆红色报错，我陷入了沉思。是时候了，我想。&lt;/p&gt;
&lt;p&gt;于是我删除了所有的文件，只保留了我第一篇教程的md文件，因为我知道，哪怕换了主题，markdown文档依旧可以保持可读，只需把它丢到新站的&lt;code&gt;_posts&lt;/code&gt;文件夹中即可。&lt;/p&gt;
&lt;p&gt;所以，我把搭了两天的博客推倒重来了。这次我改为了anzhiyu主题，有了第一次建站失败的经验，我这次只用了半天的时间就完成了网站的基本搭建和上线，随后的一个月，我陆陆续续的微调网站，到了现在这个样子。&lt;/p&gt;
&lt;h2&gt;有关DDOS&lt;/h2&gt;
&lt;p&gt;我也不知道招谁惹谁了，就这么个连图标都还没被搜索站点收录，日浏览量不超过1k的小破站在短短一个月内被攻击了两次，&lt;/p&gt;
&lt;h2&gt;小结&lt;/h2&gt;
&lt;p&gt;总而言之，博客如果不出意外，今后也不会有太大变动，我会持续维护和更新，欢迎大家监督我。&lt;/p&gt;
&lt;p&gt;在这个过程中，我也深刻体会到“人外有人，天外有天”的含义。从初中到高中，我在同龄人中一直算是偏科（偏信息）突出，只要和信息技术相关的内容，我总能取得不错的成绩。然而放眼全国，我发现自己还远远不够出色——不仅同龄人中有比我更强的，连比我小的人也有很多非常厉害的，这让我意识到自己并没有极大的优势。&lt;/p&gt;
&lt;p&gt;这种认知，反而给了我持续学习的动力，让我明白只有不断努力，才能真正提升自己。&lt;/p&gt;
&lt;h2&gt;后续计划&lt;/h2&gt;
&lt;p&gt;短期内没啥大变动，主要就是学生嘛，资金少，缺少家里人支持实在无力承担云服务器的高昂费用，好在没有用付费CDN或者防御服务，不然被打这两次我可以直接闭站跑路了，就算如此，算上踩的坑，我这一个月花费在这网站上的费用已经超过¥500了，别问，问就是我也不知道花哪了。&lt;/p&gt;
&lt;p&gt;接下去就是坐等8月19日，我年满16周岁，然后就可以办储蓄卡了，之后呢就是把评论系统丢到cf上（因为cf的R2对象存储需要绑银行卡才能使用），此前我部署在自己买的云服务器上，被打之后目前的解决方案是Vercel+MangoSQL，虽然512MB也够使用很长一段时间了，但总觉得不太安心，等办完储蓄卡就换到cf上&lt;/p&gt;
&lt;p&gt;然后我相信随着更新，我的博客图片量绝对会到一个恐怖的数值，到那时我现在的解决方案（丢站点目录）绝对不可取，不说容量问题，光加载速度就极其感人。&lt;/p&gt;
&lt;p&gt;接着就是等博客1岁的时候加入&lt;a href=&quot;https://www.foreverblog.cn/&quot;&gt;十年之约&lt;/a&gt;，有了标准督促，也能让我博客质量更高，有更多维护的动力。&lt;/p&gt;
&lt;p&gt;最后自然是最重要的事情，那就是备案，现在因为年龄问题，我连icp备案的资格都没有，国家能不能在这方面降低点要求啊😭😭😭&lt;/p&gt;
&lt;h2&gt;计划进度&lt;/h2&gt;
&lt;p&gt;已迁移至：{% btn &apos;/todolist/&apos;,待办清单,anzhiyufont anzhiyu-icon-circle-arrow-right %}&lt;/p&gt;
&lt;h2&gt;尾声&lt;/h2&gt;
&lt;p&gt;暂时就想了那么多吧，这个计划进度我会同步到个人页的，在这几条完成后这篇文章应该就不会再更新了，更新应该也是出新文章。&lt;/p&gt;
</content:encoded></item><item><title>这可能是iOS自签的版本答案，二合一LiveContainer教程来辣！</title><link>https://blog.mcxiaochen.top/posts/p801b/</link><guid isPermaLink="true">https://blog.mcxiaochen.top/posts/p801b/</guid><description>在iOS设备上使用LiveContainer+SideStore二合一版本进行自签的完整教程</description><pubDate>Sat, 16 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;前情提要&lt;/h2&gt;
&lt;p&gt;本次教程使用LiveContainer+SideStore二合一版本，此版本还处于试验阶段，本人体验没有发现恶性bug，请勿用于重要场景！！！&lt;/p&gt;
&lt;h2&gt;准备工作&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;一台运行Windows 10或更高版本的PC&lt;/li&gt;
&lt;li&gt;一部运行iOS/iPadOS 14或更高版本的设备&lt;/li&gt;
&lt;li&gt;一个美区Apple ID（无须充值或绑定信用卡）&lt;/li&gt;
&lt;li&gt;良好的网络&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;重要提醒&lt;/h2&gt;
&lt;p&gt;请确保你的PC的用户名为英文，否则可能会出现莫名其妙的问题，如果遇到，推荐更换设备或使用网吧电脑。如果你已经在使用网吧电脑，请确保后续步骤中将手机与电脑的连接线插到机箱后面的主板接口上（家用电脑也是一样）！！！&lt;/p&gt;
&lt;h2&gt;所需文件&lt;/h2&gt;
&lt;p&gt;在电脑上下载以下文件：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://cdn.altstore.io/file/altstore/altinstaller.zip&quot;&gt;AltServer 安装包&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://updates.cdn-apple.com/2020/windows/001-39935-20200911-1A70AA56-F448-11EA-8CC0-99D41950005E/iCloudSetup.exe&quot;&gt;AltServer 支持 iCloud&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/jkcoxson/idevice_pair/releases/download/v0.1.3p1/idevice_pair--windows-x86_64.exe&quot;&gt;idevice pair&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://localsend.org/zh-CN/download&quot;&gt;LocalSend&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/sidestore/sidestore/releases/latest/download/sidestore.ipa&quot;&gt;SideStore IPA 安装包&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/LiveContainer/LiveContainer/releases/latest/download/LiveContainer+SideStore.ipa&quot;&gt;LiveContainer+SideStore二合一安装包&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;安装步骤&lt;/h2&gt;
&lt;p&gt;可以配合视频食用😋：https://www.bilibili.com/video/BV11kYYzBEBT/&lt;/p&gt;
&lt;h3&gt;安装 AltServer&lt;/h3&gt;
&lt;p&gt;记得先安装&lt;a href=&quot;https://updates.cdn-apple.com/2020/windows/001-39935-20200911-1A70AA56-F448-11EA-8CC0-99D41950005E/iCloudSetup.exe&quot;&gt;AltServer 支持 iCloud&lt;/a&gt;，这俩都没啥讲究，一路下一步就行。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;需要注意的是如果你已安装 Microsoft Store 版本的 iCould/iTunes，请卸载它。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;使用 AltServer 安装 SideStore&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;用数据线连接设备&lt;/li&gt;
&lt;li&gt;运行AltServer&lt;/li&gt;
&lt;li&gt;去资源管理器托盘栏找到一个棱形图标,Shift + 左键
&lt;img src=&quot;/img/%E8%BF%99%E5%8F%AF%E8%83%BD%E6%98%AFiOS%E8%87%AA%E7%AD%BE%E7%9A%84%E7%89%88%E6%9C%AC%E7%AD%94%E6%A1%88%EF%BC%8C%E4%BA%8C%E5%90%88%E4%B8%80LiveContainer%E6%95%99%E7%A8%8B%E6%9D%A5%E8%BE%A3%EF%BC%81/sideloadipa.png&quot; alt=&quot;戳他&quot; /&gt;&lt;/li&gt;
&lt;li&gt;鼠标移动到&lt;strong&gt;Sideload .ipa&lt;/strong&gt;点击你的设备名，选择上面下载的&lt;strong&gt;SideStore IPA&lt;/strong&gt;
&lt;img src=&quot;/img/%E8%BF%99%E5%8F%AF%E8%83%BD%E6%98%AFiOS%E8%87%AA%E7%AD%BE%E7%9A%84%E7%89%88%E6%9C%AC%E7%AD%94%E6%A1%88%EF%BC%8C%E4%BA%8C%E5%90%88%E4%B8%80LiveContainer%E6%95%99%E7%A8%8B%E6%9D%A5%E8%BE%A3%EF%BC%81/click-sidestore.png&quot; alt=&quot;选择SideStore IPA&quot; /&gt;&lt;/li&gt;
&lt;li&gt;这时候会弹出窗口要你输入你的 Apple ID 和密码，放心输入，完了验证一下，稍等片刻你的手机桌面上就有 SideStore app 了（这时候先不要打开它）
&lt;img src=&quot;/img/%E8%BF%99%E5%8F%AF%E8%83%BD%E6%98%AFiOS%E8%87%AA%E7%AD%BE%E7%9A%84%E7%89%88%E6%9C%AC%E7%AD%94%E6%A1%88%EF%BC%8C%E4%BA%8C%E5%90%88%E4%B8%80LiveContainer%E6%95%99%E7%A8%8B%E6%9D%A5%E8%BE%A3%EF%BC%81/shuru-apid.png&quot; alt=&quot;输入Apple ID和密码&quot; /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;使用idevice pair获取设备文件&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;打开上面下载的&lt;a href=&quot;https://github.com/jkcoxson/idevice_pair/releases/latest/download/iDevicePair--windows-x86_64.exe&quot;&gt;idevice pair&lt;/a&gt;程序
&lt;img src=&quot;/img/%E8%BF%99%E5%8F%AF%E8%83%BD%E6%98%AFiOS%E8%87%AA%E7%AD%BE%E7%9A%84%E7%89%88%E6%9C%AC%E7%AD%94%E6%A1%88%EF%BC%8C%E4%BA%8C%E5%90%88%E4%B8%80LiveContainer%E6%95%99%E7%A8%8B%E6%9D%A5%E8%BE%A3%EF%BC%81/whilt-idevicepair.png&quot; alt=&quot;你会发现软件界面比你脸还干净&quot; /&gt;&lt;/li&gt;
&lt;li&gt;不要着急不要慌~，确定你的手机已连接电脑并解锁，点击&lt;strong&gt;Refresh&lt;/strong&gt;然后打开上方复选框选中你的设备名
&lt;img src=&quot;/img/%E8%BF%99%E5%8F%AF%E8%83%BD%E6%98%AFiOS%E8%87%AA%E7%AD%BE%E7%9A%84%E7%89%88%E6%9C%AC%E7%AD%94%E6%A1%88%EF%BC%8C%E4%BA%8C%E5%90%88%E4%B8%80LiveContainer%E6%95%99%E7%A8%8B%E6%9D%A5%E8%BE%A3%EF%BC%81/refresh.png&quot; alt=&quot;zhe样子~&quot; /&gt;&lt;/li&gt;
&lt;li&gt;确定开发者选项已开启，点击&lt;strong&gt;Generate&lt;/strong&gt;生成配置文件
&lt;img src=&quot;/img/%E8%BF%99%E5%8F%AF%E8%83%BD%E6%98%AFiOS%E8%87%AA%E7%AD%BE%E7%9A%84%E7%89%88%E6%9C%AC%E7%AD%94%E6%A1%88%EF%BC%8C%E4%BA%8C%E5%90%88%E4%B8%80LiveContainer%E6%95%99%E7%A8%8B%E6%9D%A5%E8%BE%A3%EF%BC%81/setok.png&quot; alt=&quot;戳他戳他！&quot; /&gt;&lt;/li&gt;
&lt;li&gt;往下翻一点找到&lt;strong&gt;SideStore&lt;/strong&gt;项，点击&lt;strong&gt;Install&lt;/strong&gt;
&lt;img src=&quot;/img/%E8%BF%99%E5%8F%AF%E8%83%BD%E6%98%AFiOS%E8%87%AA%E7%AD%BE%E7%9A%84%E7%89%88%E6%9C%AC%E7%AD%94%E6%A1%88%EF%BC%8C%E4%BA%8C%E5%90%88%E4%B8%80LiveContainer%E6%95%99%E7%A8%8B%E6%9D%A5%E8%BE%A3%EF%BC%81/sidestore-send-install.png&quot; alt=&quot;戳！&quot; /&gt;&lt;/li&gt;
&lt;li&gt;保存配置文件到本地，点击&lt;strong&gt;Save to File&lt;/strong&gt;项中的&lt;strong&gt;Save to File&lt;/strong&gt;，把它保存到一个你能记住的地方
&lt;img src=&quot;/img/%E8%BF%99%E5%8F%AF%E8%83%BD%E6%98%AFiOS%E8%87%AA%E7%AD%BE%E7%9A%84%E7%89%88%E6%9C%AC%E7%AD%94%E6%A1%88%EF%BC%8C%E4%BA%8C%E5%90%88%E4%B8%80LiveContainer%E6%95%99%E7%A8%8B%E6%9D%A5%E8%BE%A3%EF%BC%81/save-to-file.png&quot; alt=&quot;保存文件&quot; /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;传输必要文件到手机上&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;把上方 &lt;strong&gt;使用idevice pair获取设备文件&lt;/strong&gt;步骤 中保存的&lt;code&gt;xxxxx-xxxxx-xxxxx-xxxxx.plist&lt;/code&gt;文件和刚刚下载的&lt;a href=&quot;https://github.com/LiveContainer/LiveContainer/releases/latest/download/LiveContainer+SideStore.ipa&quot;&gt;LiveContainer+SideStore二合一安装包&lt;/a&gt;，使用&lt;a href=&quot;https://localsend.org/zh-CN/download&quot;&gt;LocalSend&lt;/a&gt;传输到手机上
&lt;img src=&quot;/img/%E8%BF%99%E5%8F%AF%E8%83%BD%E6%98%AFiOS%E8%87%AA%E7%AD%BE%E7%9A%84%E7%89%88%E6%9C%AC%E7%AD%94%E6%A1%88%EF%BC%8C%E4%BA%8C%E5%90%88%E4%B8%80LiveContainer%E6%95%99%E7%A8%8B%E6%9D%A5%E8%BE%A3%EF%BC%81/localsend-send-file.png&quot; alt=&quot;传输示意&quot; /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;安装与启用 StosVPN&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;AppStore登录你的美区Apple ID&lt;/li&gt;
&lt;li&gt;搜索并下载StosVPN（&lt;strong&gt;后续都需要，不要卸载，在每次使用SideStore的时候都需要开启&lt;/strong&gt;）&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;StosVPN 不连接外网，仅用于本机通信以支持SideStore&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ol&gt;
&lt;li&gt;连接StosVPN&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;配置SideStore&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;打开SideStore，在设置页面使用安装时的Apple ID登录&lt;/li&gt;
&lt;li&gt;点击+号 -&amp;gt; 选择&lt;strong&gt;LiveContainer+SideStore二合一安装包&lt;/strong&gt; -&amp;gt; &lt;code&gt;Yes&lt;/code&gt; -&amp;gt; &lt;code&gt;Got it&lt;/code&gt; -&amp;gt; &lt;code&gt;Refresh Now&lt;/code&gt; -&amp;gt; &lt;code&gt;Keep App Extensions（Use Main Profile）&lt;/code&gt; -&amp;gt; 好辣！&lt;/li&gt;
&lt;li&gt;运行&lt;strong&gt;LiveContainer&lt;/strong&gt;确定可以正常打开&lt;/li&gt;
&lt;li&gt;卸载SideStore&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;配置LiveContainer内的SideStore&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;点击LiveContainer软件内上方菜单栏中的SideStore图标
&lt;img src=&quot;/img/%E8%BF%99%E5%8F%AF%E8%83%BD%E6%98%AFiOS%E8%87%AA%E7%AD%BE%E7%9A%84%E7%89%88%E6%9C%AC%E7%AD%94%E6%A1%88%EF%BC%8C%E4%BA%8C%E5%90%88%E4%B8%80LiveContainer%E6%95%99%E7%A8%8B%E6%9D%A5%E8%BE%A3%EF%BC%81/in-LiveContainer-go-SideStore.png&quot; alt=&quot;点它！&quot; /&gt;&lt;/li&gt;
&lt;li&gt;此时软件会闪退，再进去你会发现已经变成SideStore的界面了&lt;/li&gt;
&lt;li&gt;图里这一步点&lt;code&gt;OK&lt;/code&gt;导入之前设置的配置文件（如果这一步点错了可以去&lt;strong&gt;常见问题查看解决方法&lt;/strong&gt;）
&lt;img src=&quot;/img/%E8%BF%99%E5%8F%AF%E8%83%BD%E6%98%AFiOS%E8%87%AA%E7%AD%BE%E7%9A%84%E7%89%88%E6%9C%AC%E7%AD%94%E6%A1%88%EF%BC%8C%E4%BA%8C%E5%90%88%E4%B8%80LiveContainer%E6%95%99%E7%A8%8B%E6%9D%A5%E8%BE%A3%EF%BC%81/add-pairingile.png&quot; alt=&quot;Pairing File&quot; /&gt;&lt;/li&gt;
&lt;li&gt;进入&lt;code&gt;app&lt;/code&gt;页，点击&lt;code&gt;Refresh Now&lt;/code&gt;，登录&lt;strong&gt;配置SideStore&lt;/strong&gt;时使用的Apple ID&lt;/li&gt;
&lt;li&gt;重复 &lt;code&gt;Yes&lt;/code&gt; -&amp;gt; &lt;code&gt;Got it&lt;/code&gt; -&amp;gt; &lt;code&gt;Keep App Extensions（Use Main Profile）&lt;/code&gt; -&amp;gt; 好辣！&lt;/li&gt;
&lt;li&gt;退出后台再进，回到LiveContainer界面，点击&lt;code&gt;设置&lt;/code&gt;，&lt;code&gt;刷新来自SideStore的证书&lt;/code&gt;，按照引导导入&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;续签相关&lt;/h3&gt;
&lt;p&gt;{% link 一键续签快捷指令,Apple Inc.,https://www.icloud.com/shortcuts/6d9570626e3b49d18ee34755297773b9 %}&lt;/p&gt;
&lt;p&gt;快捷指令：&lt;/p&gt;
&lt;h3&gt;大功告成&lt;/h3&gt;
&lt;p&gt;完成后你就可以愉快使用此工具了 :)&lt;/p&gt;
&lt;p&gt;下期教程教如何在此基础上启动JIT，敬请期待&lt;/p&gt;
&lt;h2&gt;常见问题&lt;/h2&gt;
&lt;h3&gt;安装iCloud提示电脑缺少媒体功能&lt;/h3&gt;
&lt;p&gt;Windows Media Player 可在 PC 上播放视频和音频文件。你需要有 Media Player 才能安装 Windows 版 iCloud。如果你在尝试下载 Windows 版 iCloud 11 或更高版本时收到一条信息，提示你需要安装媒体功能包才能使用 iCloud，请选择“下载”。然后，按照下一屏幕上的说明进行操作。&lt;/p&gt;
&lt;p&gt;如果你关闭了 Windows 媒体功能，或者如果你的 PC 未安装 Windows Media Player，则无法安装 Windows 版 iCloud。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;前往“控制面板”&amp;gt;“所有控制面板项”&amp;gt;“程序和功能”。&lt;/li&gt;
&lt;li&gt;点按“启用或关闭 Windows 功能”。&lt;/li&gt;
&lt;li&gt;选中媒体功能对应的框，以重新打开该功能。&lt;/li&gt;
&lt;li&gt;点按“好”。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如果你看到一条信息，提示你重新启动 PC，请重新启动电脑，然后安装 Windows 版 iCloud。&lt;/p&gt;
&lt;h3&gt;我选错了/没选Pairing File&lt;/h3&gt;
&lt;p&gt;可以在SideStore点&lt;code&gt;Settings&lt;/code&gt;-&amp;gt;&lt;code&gt;Reset Pairing File&lt;/code&gt;然后大退app重选&lt;/p&gt;
&lt;h3&gt;SideStore报错xxxxx&lt;/h3&gt;
&lt;p&gt;去&lt;a href=&quot;https://docs.sidestore.io/docs/troubleshooting/error-codes&quot;&gt;SideStore官方文档&lt;/a&gt;查看对应报错代码，看不懂用翻译，还是不懂把报错丢给AI，实在解决不了再问我。&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;参考资料（排名不分前后）&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;https://docs.sidestore.io/zh/docs/intro&lt;/li&gt;
&lt;li&gt;https://sidestore.io/#get-started&lt;/li&gt;
&lt;li&gt;https://livecontainer.github.io/zh-CN/docs/intro&lt;/li&gt;
&lt;li&gt;https://github.com/LiveContainer/LiveContainer&lt;/li&gt;
&lt;li&gt;https://zhuanlan.zhihu.com/p/1906028906898786136&lt;/li&gt;
&lt;li&gt;https://www.bilibili.com/opus/978121704634056721&lt;/li&gt;
&lt;li&gt;https://support.apple.com/zh-cn/102361&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>iOS侧载新选择！SideStore+LiveContainer，纯净无广，无限安装软件！！！</title><link>https://blog.mcxiaochen.top/posts/p5a0d/</link><guid isPermaLink="true">https://blog.mcxiaochen.top/posts/p5a0d/</guid><description>在iOS设备上使用SideStore和LiveContainer实现无限安装和多开应用的方法</description><pubDate>Tue, 29 Jul 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;还在用牛蛙助手/ NB广告助手吗？别用那玩意了，吃相难看还限制安装app数量，按照此教程正确安装SideStore和LiveContainer，你就可以无限安装/多开软件，不受Apple的3软件数量限制&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;本文已过时，请&lt;a href=&quot;/posts/801b/&quot;&gt;看新一篇&lt;/a&gt;，使用了LiveContainer二合一版本，可以少占用个签名空位，获取配置文件使用图形化界面，操作更顺畅~&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;名词解释&lt;/h2&gt;
&lt;h3&gt;SideStore是啥？&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://sidestore.io/&quot;&gt;SideStore&lt;/a&gt;是一款iOS应用程序，可简化将应用程序侧载到设备的过程。支持iOS14–iOS26，&lt;strong&gt;所有设备无需越狱&lt;/strong&gt;。这是&lt;a href=&quot;https://altstore.io/&quot;&gt;AltStore&lt;/a&gt;的一个分支，安装&lt;a href=&quot;https://sidestore.io/&quot;&gt;SideStore&lt;/a&gt;后，&lt;strong&gt;可以实现当手机连接任意WiFi时就可以自签，无需电脑&lt;/strong&gt;。&lt;/p&gt;
&lt;h3&gt;LiveContainer又是啥？&lt;/h3&gt;
&lt;p&gt;LiveContainer是一个无需实际安装即可运行iOS应用程序的应用程序启动器！&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;它允许您在其中运行iOS应用程序。&lt;/li&gt;
&lt;li&gt;允许您安装无限的应用程序（3 个应用程序/10 个应用程序 ID 免费开发人员帐户限制不适用于此处！），可以安装多个版本的应用程序和多个数据容器。&lt;/li&gt;
&lt;li&gt;当 JIT 可用时，将完全绕过 codesign，无需在安装前对应用进行签名。否则，应用将使用 LiveContainer 使用的相同证书进行签名。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;准备工作&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;搭载Windows 10及以上系统的x86_64电脑（Linux推荐使用VirtualBox安装win11并安装usb直通插件）&lt;/li&gt;
&lt;li&gt;一部iPhone&lt;/li&gt;
&lt;li&gt;一个美区的Apple ID（无须充值或绑定信用卡）&lt;/li&gt;
&lt;li&gt;AltServer安装包（&lt;a href=&quot;https://cdn.altstore.io/file/altstore/altinstaller.zip&quot;&gt;点我即可下载&lt;/a&gt;）&lt;/li&gt;
&lt;li&gt;AltServer支持iCloud（&lt;a href=&quot;https://updates.cdn-apple.com/2020/windows/001-39935-20200911-1A70AA56-F448-11EA-8CC0-99D41950005E/iCloudSetup.exe&quot;&gt;点我即可下载&lt;/a&gt;）&lt;/li&gt;
&lt;li&gt;JitterbugPair程序（&lt;a href=&quot;https://github.com/osy/Jitterbug/releases/download/v1.3.1/jitterbugpair-win64.zip&quot;&gt;点我即可下载&lt;/a&gt;）&lt;/li&gt;
&lt;li&gt;SideStore IPA安装包（&lt;a href=&quot;https://github.com/sidestore/sidestore/releases/latest/download/sidestore.ipa&quot;&gt;点我即可下载&lt;/a&gt;）&lt;/li&gt;
&lt;li&gt;LiveContainerIPA安装包（&lt;a href=&quot;https://github.com/LiveContainer/LiveContainer/releases/latest/download/LiveContainer.ipa&quot;&gt;点我即可下载&lt;/a&gt;）&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;如果你已安装Microsoft Store版本的iCould/iTunes，请卸载它。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;开始教程&lt;/h2&gt;
&lt;p&gt;可以配合视频食用😋：https://www.bilibili.com/video/BV1SxbizGE1w&lt;/p&gt;
&lt;h3&gt;安装AltStore&lt;/h3&gt;
&lt;p&gt;记得先安装&lt;strong&gt;AltServer支持iCloud&lt;/strong&gt;，这俩都没啥讲究，一路下一步就行，需要注意的是如果你已安装Microsoft Store版本的iCould/iTunes，请卸载它。&lt;/p&gt;
&lt;h3&gt;使用AltStore安装SideStore&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;把你的手机插上电脑&lt;/li&gt;
&lt;li&gt;去资源管理器托盘栏找到一个棱形图标,Shift+左键 戳他&lt;/li&gt;
&lt;li&gt;鼠标移动到&lt;code&gt;Sideload .ipa&lt;/code&gt;点击你的设备名，选择上面下载的&lt;strong&gt;SideStore IPA&lt;/strong&gt;，这时候会弹出窗口要你输入你的Apple ID和密码，放心输入，完了验证一下，稍等片刻你的手机桌面上就有SideStore app了（这时候先不要打开它）&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;使用JitterbugPair获取设备文件&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;解压上面下载的&lt;strong&gt;JitterbugPair程序&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;打开解压的文件夹，在上方地址栏输入&lt;code&gt;cmd&lt;/code&gt;，然后回车&lt;/li&gt;
&lt;li&gt;然后在cmd里执行&lt;code&gt;jitterbugpair.exe&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;此时手机上可能会提示允许链接，允许一下&lt;/li&gt;
&lt;li&gt;当前文件夹下会产生一个&lt;code&gt;[UDID].mobiledevicepairing&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;使用各种文件传输工具把文件传输到你的iPhone上（推荐&lt;a href=&quot;https://localsend.org/zh-CN/download&quot;&gt;LocalSend&lt;/a&gt;）&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;传输必要文件&lt;/h3&gt;
&lt;p&gt;把&lt;strong&gt;LiveContainerIPA安装包&lt;/strong&gt;和上一步中的&lt;code&gt;[UDID].mobiledevicepairing&lt;/code&gt;传输到你的iPhone上&lt;/p&gt;
&lt;h3&gt;安装StosVPN&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;在你的iPhone的appstore中登录你的美区Apple ID&lt;/li&gt;
&lt;li&gt;搜索并下载&lt;a href=&quot;https://apps.apple.com/us/app/stosvpn/id6744003051&quot;&gt;StosVPN&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;配置SideStore&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;打开并启动连接StosVPN&lt;/li&gt;
&lt;li&gt;打开SideStore&lt;/li&gt;
&lt;li&gt;默认弹出窗口选是，进入文件，选择上面步骤获得的&lt;code&gt;[UDID].mobiledevicepairing&lt;/code&gt;（如果你不小心选错了或没弹出可以点&lt;code&gt;Settings&lt;/code&gt;-&amp;gt;&lt;code&gt;Reset Pairing File&lt;/code&gt;然后大退app重选）&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;安装LiveContainer&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;打开并启动连接StosVPN&lt;/li&gt;
&lt;li&gt;打开SideStore&lt;/li&gt;
&lt;li&gt;点击底部&lt;code&gt;My Apps&lt;/code&gt;，选择左上角➕，选择上面下载的&lt;strong&gt;LiveContainerIPA安装包&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;配置LiveContainer&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;点击&lt;code&gt;设置&lt;/code&gt;，点击&lt;code&gt;安装证书&lt;/code&gt;，点击&lt;code&gt;给SideStore打补丁&lt;/code&gt;并按照提示选择&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;FAQ&lt;/h2&gt;
&lt;h3&gt;如何安装软件&lt;/h3&gt;
&lt;p&gt;打开LiveContainer，选中App页，点击上方➕，选择需要安装的IPA文件即可&lt;/p&gt;
&lt;h3&gt;如何安装/注入插件&lt;/h3&gt;
&lt;p&gt;打开LiveContainer，选中插件页，点击上方➕，选择需要安装的插件文件即可，可以创建文件夹来给app单独注入插件&lt;/p&gt;
&lt;h2&gt;后日谈&lt;/h2&gt;
&lt;p&gt;相信你看完这篇文章已经学会如何正确安装并使用SideStore和LiveContainer了，下下篇&lt;strong&gt;进阶篇&lt;/strong&gt;将教你如何配置JIT服务来愉快游玩例如Amethyst（PojavLauncher IOS）这样需要JIT权限的模拟器/启动器&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;参考资料（排名不分前后）&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;https://docs.sidestore.io/zh/docs/intro&lt;/li&gt;
&lt;li&gt;https://sidestore.io/#get-started&lt;/li&gt;
&lt;li&gt;https://livecontainer.github.io/zh-CN/docs/intro&lt;/li&gt;
&lt;li&gt;https://github.com/LiveContainer/LiveContainer&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>从零开始使用Hexo框架搭建属于你的博客（零）准备篇</title><link>https://blog.mcxiaochen.top/posts/p7e9/</link><guid isPermaLink="true">https://blog.mcxiaochen.top/posts/p7e9/</guid><description>从零开始使用Hexo框架搭建个人博客的准备篇</description><pubDate>Sat, 19 Jul 2025 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;🚀 你真的准备好开始搭建一个属于你自己的博客了吗？&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;在这个人人都能发声、动动手指就能写文章的平台时代，我们似乎已经被微博、小红书、知乎、微信公众号等信息流平台包围。可就是在这种环境下，还有很多技术人、爱好者、甚至学生选择了自己&lt;strong&gt;搭建博客&lt;/strong&gt;，使用如 &lt;strong&gt;Hexo&lt;/strong&gt;、&lt;strong&gt;Hugo&lt;/strong&gt;、&lt;strong&gt;Jekyll&lt;/strong&gt; 等&lt;strong&gt;静态博客框架&lt;/strong&gt;，写下一篇篇属于他们自己的记录。&lt;/p&gt;
&lt;p&gt;那么问题来了：&lt;strong&gt;你为什么要搭建一个属于你自己的博客？你真的需要吗？&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;什么是 Hexo？&lt;/h2&gt;
&lt;p&gt;Hexo 是一个基于 Node.js 的静态博客框架。它的主要特性如下：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;速度快&lt;/strong&gt;：几秒钟生成整个站点；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;支持 Markdown&lt;/strong&gt;：专注于写作，无需关心复杂的 HTML；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;插件丰富&lt;/strong&gt;：数百个社区插件满足各种个性化需求；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;主题多样&lt;/strong&gt;：视觉风格随你挑选，从极简到炫酷；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;支持静态托管&lt;/strong&gt;：可以部署在 GitHub Pages、Cloudflare Pages 等平台。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hexo 的核心理念是“&lt;strong&gt;简洁优雅，专注写作&lt;/strong&gt;”。你不需要掌握复杂的服务器知识，不需要去操心数据库，只需三条命令，就可以生成一个完整的网站结构，随时部署上线。&lt;/p&gt;
&lt;h2&gt;我为什么选择 Hexo？&lt;/h2&gt;
&lt;p&gt;在开始正式搭建之前，我们不妨先来聊聊：Hexo 到底适合怎样的人？它的优点又有哪些？&lt;/p&gt;
&lt;h3&gt;优点 ✅&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;完全免费、开源；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;本地写作体验极佳，搭配 VSCode、Typora 等工具十分流畅；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;无需数据库，纯静态 HTML，性能强悍；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;高度自定义，主题插件可玩性强；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;部署灵活，支持多种 CDN 与静态托管平台；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;可以脱离国内主机的备案问题（部署在国外）。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;缺点 ❌&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;相对而言，上手需要基本的命令行知识；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;写作过程不像微信公众号那样“所见即所得”；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;插件/主题生态虽然丰富，但中文文档较少；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;配置多了之后，更新维护成本会上升；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;缺乏评论、搜索、统计等功能，需要第三方服务接入。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;你真的需要一个博客吗？ 🤔&lt;/h2&gt;
&lt;p&gt;这是我想在正式搭建之前，反问你的一个关键问题。&lt;/p&gt;
&lt;p&gt;你是否：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;希望&lt;strong&gt;长期记录与输出&lt;/strong&gt;技术文章、项目经历、学习心得？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;对于“拥有一个自己的空间”有&lt;strong&gt;归属感&lt;/strong&gt;？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;不满足于平台的限制与规则，想要&lt;strong&gt;100% 自主可控的内容与风格&lt;/strong&gt;？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;希望拥有一个能持续积累自己个人的“作品集”？&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果你只是偶尔写点内容发发朋友圈，或者纯粹为了流量与曝光，那也许知乎、公众号、小红书是更适合你的平台。但如果你&lt;strong&gt;看重内容的沉淀、完整性、可控性&lt;/strong&gt;，那么 Hexo 也许是你理想的选择。&lt;/p&gt;
&lt;h2&gt;我们将如何部署这个博客？&lt;/h2&gt;
&lt;p&gt;虽然 Hexo 是本地生成静态文件的工具，但网站要上线，仍然需要“部署”过程。我们将在接下来的教程中使用以下工具进行部署：&lt;/p&gt;
&lt;h3&gt;前端：Cloudflare Pages or Vercel 负责托管静态博客页面&lt;/h3&gt;
&lt;p&gt;Cloudflare Pages 是 Cloudflare 提供的一种免费的静态网站托管服务。而 Vercel 同样如此&lt;/p&gt;
&lt;p&gt;它们的优势包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;支持 GitHub 一键集成；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;全球 CDN 加速，访问速度快；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;HTTPS 自动配置，无需操心证书；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;不需要绑定传统主机或服务器；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;接近“零运维”体验，自动构建、自动部署。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;为什么要双前端部署？
因为 Vercel 对于大陆体验更好，而 Cloudflare 服务更稳定同时海外访问更快，所以双端部署择优链接，体验 Plus++&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;你只需要把 Hexo 生成的静态文件推送到 GitHub 仓库，Cloudflare 与 Vercel 就会自动构建并部署。&lt;/p&gt;
&lt;p&gt;未来我们将一步步讲解：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;如何配置 Hexo 与 anzhiyu 主题&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;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;后端：&lt;a href=&quot;https://www.rainyun.com/blxc123_&quot;&gt;雨云 ECS 服务器&lt;/a&gt; 用于搭建博客后端服务&lt;/h3&gt;
&lt;p&gt;虽然 Hexo 本身是静态博客框架，但博客网站往往还需要：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;评论系统（如 Waline、Twikoo）；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;访问统计（如 Umami、Plausible）；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;搜索服务、图床、Webhook 等；&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些都需要一个运行环境，我们将选用&lt;a href=&quot;https://www.rainyun.com/blxc123_&quot;&gt;雨云&lt;/a&gt;的轻量 ECS 服务器来托管这些后端服务。&lt;a href=&quot;https://www.rainyun.com/blxc123_&quot;&gt;雨云&lt;/a&gt;价格便宜、带宽较充足，非常适合个人使用者入门部署。&lt;/p&gt;
&lt;p&gt;未来我们将一步步讲解：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;如何配置 Twikoo 评论系统&lt;/li&gt;
&lt;li&gt;如何配置 Umami 访问统计&lt;/li&gt;
&lt;li&gt;如何配置 简易朋友圈后端&lt;/li&gt;
&lt;li&gt;......&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;在开始之前，你需要准备什么？&lt;/h2&gt;
&lt;p&gt;在进入第一篇搭建教程前，你需要具备以下几点：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;一台可以上网的电脑（推荐使用 macOS 或 Linux 系统，&lt;strong&gt;后续教程不会考虑Windows！！！&lt;/strong&gt;）；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;一点点命令行操作基础（不难，后面都会手把手教）；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;一个 GitHub 账号；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;（推荐）一个自己的域名，可以绑定博客域名（只要能正确配置 A 与 CNAME就可以）；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;大约每月 ¥80 的资金&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;一点点对折腾的热情 ❤️&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;教程预告&lt;/h2&gt;
&lt;p&gt;这是“Hexo 搭建博客”系列的&lt;strong&gt;准备篇&lt;/strong&gt;，我们不会在本文涉及任何代码或搭建流程，而是希望你在动手之前&lt;strong&gt;认真思考动机与目的&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;接下来将是系列教程内容规划：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;环境准备篇：安装 Hexo 所需环境，初始化本地项目；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;主题配置篇：选用适合自己的主题，定制首页样式；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;部署上线篇：绑定 Cloudflare Pages，首次上线；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;后端服务篇：部署评论系统与访问统计；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;进阶技巧篇：添加搜索功能、自定义短链、SEO 优化；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;终章：暂时不透露 :)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>Arch Linux+Hyprland从安装到使用只需这一篇（保姆级喂饭超全教程）</title><link>https://blog.mcxiaochen.top/posts/pae3/</link><guid isPermaLink="true">https://blog.mcxiaochen.top/posts/pae3/</guid><description>从零开始在Arch Linux上安装配置Hyprland桌面环境的完整流程。</description><pubDate>Tue, 15 Jul 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;开始前叠甲&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;第一次写博客，我尽量写好写全。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;本次教程采用&lt;code&gt;archinstall&lt;/code&gt;脚本极简安装，&lt;code&gt;archinstall&lt;/code&gt;相当于ArchLinux的安装向导，可以通过简单设置就完成Arch Linux的安装。由于&lt;code&gt;Archinstall&lt;/code&gt;脚本至今仍在更新完善，因此所有相关教程的时效性都非常短，不同教程之间差异会非常大，建议以最新教程为准。&lt;/p&gt;
&lt;p&gt;原则上此前没有使用过Arch及其延伸发行版用户不应该利用Archinstall逃课，但是规范化的安装可以让新用户避免很多灾难性的后果。至于代价，等遇上问题再说吧。本教程只能确保你能用上arch并且完全按教程配置完后能直接开始用。&lt;/p&gt;
&lt;p&gt;最后开始前，请确保你手里有一个良好的 &lt;strong&gt;“魔法”&lt;/strong&gt; 这点&lt;strong&gt;及其重要&lt;/strong&gt;，否则在后续安装/配置过程中会因为&lt;strong&gt;网络问题&lt;/strong&gt;而产生很多&lt;strong&gt;奇奇怪怪的问题！！！&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;准备阶段&lt;/h2&gt;
&lt;h3&gt;硬件部分&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;一台用来安装arch的x86电脑（需要有&lt;strong&gt;一整块&lt;/strong&gt;空白的&lt;strong&gt;硬盘&lt;/strong&gt;用于安装，&lt;strong&gt;单盘双系统此教程不适合你！！！&lt;/strong&gt;）&lt;/li&gt;
&lt;li&gt;一个16G以上的U盘&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;软件部分&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;一份打包好的必要文件：&lt;a href=&quot;https://github.com/mcxiaochenn/mcxiaochenn/raw/refs/heads/main/files/blogfile/%E4%B8%80%E4%BB%BD%E6%89%93%E5%8C%85%E5%A5%BD%E7%9A%84%E5%BF%85%E8%A6%81%E6%96%87%E4%BB%B6.tar.gz&quot;&gt;点我下载此文件&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ventoy：&lt;a href=&quot;https://www.ventoy.net/cn/download.html&quot;&gt;点我下载此文件&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Arch Linux安装镜像：&lt;a href=&quot;https://mirrors.aliyun.com/archlinux/iso/latest/archlinux-x86_64.iso&quot;&gt;点我下载此文件&lt;/a&gt;（使用阿里云镜像站速度有保障，还是慢推荐使用&lt;code&gt;IDM&lt;/code&gt;、&lt;code&gt;NDM&lt;/code&gt;这样的多线程下载工具）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;配置U盘&lt;/h2&gt;
&lt;h3&gt;安装Ventoy&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;插入你的U盘&lt;/li&gt;
&lt;li&gt;解压并打开&lt;code&gt;Ventoy2Disk&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;确认选中的是你的U盘&lt;strong&gt;点击安装&lt;/strong&gt;即可&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;拷入文件&lt;/h3&gt;
&lt;p&gt;把之前下载的&lt;strong&gt;Arch Linux安装镜像&lt;/strong&gt;和&lt;strong&gt;一份打包好的必要文件&lt;/strong&gt;考到资源管理器中名字为&lt;code&gt;Ventoy&lt;/code&gt;的分区&lt;/p&gt;
&lt;h2&gt;安装Arch Linux篇&lt;/h2&gt;
&lt;h3&gt;进入Ventoy&lt;/h3&gt;
&lt;p&gt;确认文件已经拷到U盘里后重启 狂按&lt;code&gt;F8&lt;/code&gt;并选择从&lt;strong&gt;USB启动&lt;/strong&gt;（这里不同电脑可能不一样）我从网上找了张表，各位对照试试：&lt;/p&gt;
&lt;p&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;各品牌主板、笔记本、台式机的U盘启动快捷热键大全对照图表&amp;lt;/summary&amp;gt;
&lt;img src=&quot;https://bu.dusays.com/2026/02/14/6990582aa3a74.png&quot; alt=&quot;各品牌主板、笔记本、台式机的U盘启动快捷热键大全对照图表&quot; /&gt;
&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;p&gt;如果你前面的步骤都没问题那你应该会看到类似这样的界面&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2026/02/14/6990584bf1cea.png&quot; alt=&quot;我的ventoy有主题美化，但大差不差&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;进入ArchLinux Live镜像&lt;/h3&gt;
&lt;p&gt;此时使用键盘上下键选择你下载的&lt;strong&gt;arch.iso&lt;/strong&gt;镜像并回车&lt;/p&gt;
&lt;p&gt;选择第一项并按下回车：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2026/02/14/6990589941df0.png&quot; alt=&quot;选择第一个就行&quot; /&gt;&lt;/p&gt;
&lt;p&gt;等待一会儿跑码后会来到Arch的安装环境：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2026/02/14/6990585f3c113.png&quot; alt=&quot;彩条上面是操作指引，如果你英语还不错推荐按照官方流程手动安装，在此过程中可能帮你加深对于Linux的理解，后续出现问题也更好解决&quot; /&gt;&lt;/p&gt;
&lt;p&gt;由于Archinstall脚本需要联网检查版本，所以必须&lt;strong&gt;保证连接网络&lt;/strong&gt;。理论上有线网络只要插上它就会自己连接。（嗯，理论上。。。如果你的网卡过于冷门可能没驱动。。。那教程不具有通用性建议百度自行解决。。。）&lt;/p&gt;
&lt;h3&gt;以下是连接无线网络的办法（如果能驱动起来的话。。。）：&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;检查网卡设备&lt;/strong&gt;：&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;iwctl device list
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2026/02/14/699058aa40431.png&quot; alt=&quot;我台式机没无线网卡所以是空的&quot; /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;连接网络&lt;/strong&gt;：&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;iwctl station [刚才搜出来的Name下面的网卡名（一般是wlan0）] connect [你的WIFI名（不能是中文！！！）]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后输入密码并回车即可&lt;/p&gt;
&lt;h3&gt;正式archinstall安装&lt;/h3&gt;
&lt;p&gt;简单讲一下脚本内的操作，方向键上下控制选项，空格为勾选，回车为选中并确认，Esc为退出。&lt;/p&gt;
&lt;p&gt;输入命令启动脚本：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;archinstall
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2026/02/14/699058bfb5254.png&quot; alt=&quot;Archinstall的主界面&quot; /&gt;&lt;/p&gt;
&lt;p&gt;接下来我们逐步一行一行进行讲解、设置，完成安装。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;语言&lt;/strong&gt;：语言部分不需要进行修改。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Locales（本地化）&lt;/strong&gt;：这里可以先把语言改了，缺点是后续进系统会有好多&lt;code&gt;囗囗囗&lt;/code&gt;（因为没字体）照做就行后续会下载字体&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2026/02/14/699058e2dd779.png&quot; alt=&quot;进入后选择Locale language并回车&quot; /&gt;&lt;/p&gt;
&lt;p&gt;会出现眼花缭乱一堆选项，我们直接输入&lt;code&gt;/zh_cn&lt;/code&gt;（斜杠不要落下）&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2026/02/14/699058f7bd72f.png&quot; alt=&quot;就会变成这样&quot; /&gt;&lt;/p&gt;
&lt;p&gt;这时我们选中下面的&lt;code&gt;zh_CN.UTF-8&lt;/code&gt;并回车返回即可&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2026/02/14/699059069c748.png&quot; alt=&quot;右侧Info框内为当前的设置信息&quot; /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Mirrors or repositories（镜像源与包）&lt;/strong&gt;：这里新版本合并了，5月份还是分开的可见更新之频繁。让我们拆开来设置&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Mirrors&lt;/strong&gt;&lt;/em&gt;： 镜像源可以认为是提供下载的渠道，但是他们不一定是官方的。大多数镜像源依靠第三方提供和维护，用于缓解网络问题。镜像源按回车进入，选择第一项&lt;code&gt;Select region&lt;/code&gt;，在列表中选择&lt;code&gt;China&lt;/code&gt;（同样可以用&lt;code&gt;/&lt;/code&gt;进行快速搜索）。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;注意，在选择“Mirror region”时可能会出现卡顿，这是脚本在搜索镜像源，按一下等列表出来就好，否则你会选成“Alabania”。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2026/02/14/6990591d804da.png&quot; alt=&quot;如果还需要使用其它地区的镜像，按空格即可勾选&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;repositories&lt;/strong&gt;&lt;/em&gt;：这里可以选择常见仓库，推荐把multilib勾选上&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2026/02/14/6990592a3f6cf.png&quot; alt=&quot;我们选这个选项进去&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2026/02/14/699059352cd7c.png&quot; alt=&quot;推荐把multilib勾选上&quot; /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Disk configuration（硬盘配置）：也就是给硬盘分区。&lt;strong&gt;这是非常危险的一步，每一个操作一定小心谨慎，一旦失误不可挽回。请确保需要安装的硬盘中没有任何数据，这一步会清除掉硬盘上的所有数据。如果是准备在一个硬盘中同时安装多个系统则不应该使用Archinstall。&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;选择硬盘配置后点击“Partitioning”，之后如果想使用默认设置就选择“Use a best-effort default partition layout”，想自己调整就选“Manual Partitioning”，本教程只介绍默认设置。选好后进入下图界面&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2026/02/14/6990594a7c527.png&quot; alt=&quot;这里选择需要分区的硬盘，同样可以使用空格勾选多个硬盘进行分区&quot; /&gt;&lt;/p&gt;
&lt;p&gt;选好硬盘后再选择文件系统格式：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2026/02/14/69905957eec66.png&quot; alt=&quot;文件系统只能选择其中一种且后续不方便更换&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Btrfs&lt;/strong&gt;：支持快照压缩，适合备份，但随机写入慢。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ext4&lt;/strong&gt;：稳定通用，适合数据库，缺乏高级功能。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;XFS&lt;/strong&gt;：大文件性能强，适合云存储，小文件一般。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;F2FS&lt;/strong&gt;：专为SSD优化，写入快，传统硬盘不推荐。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;文件系统之间没有好坏之分，请选择适合自己的文件系统！&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;个人偏向&lt;strong&gt;Ext4&lt;/strong&gt;和&lt;strong&gt;XFS&lt;/strong&gt;，故此次教程以&lt;strong&gt;Ext4&lt;/strong&gt;为例：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2026/02/14/69905964d648b.png&quot; alt=&quot;选中后回车&quot; /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;正常来说选择完还有一个问你是否单独为&lt;code&gt;/home&lt;/code&gt;创建分区，推荐选&lt;code&gt;no&lt;/code&gt;，本人有遇到过 &lt;strong&gt;根目录爆满home目录，占用不到40%&lt;/strong&gt; 的尴尬情况，扩容又容易出事，干脆直接合并，省心。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;交换区（Swap）：&lt;strong&gt;保持默认即可&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;启动引导（Bootloader）：启动引导负责开机时引导电脑载入操作系统，一般&lt;strong&gt;保持不动就好&lt;/strong&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;统一内核镜像（Unified kernel images）：它会把一些启动系统需要的东西全部打包在一起，这样就能进行统一的签名和认证，一般&lt;strong&gt;保持默认即可&lt;/strong&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;主机名(Hostname)：和Windows的主机名一样，给机器起名字，&lt;strong&gt;可以改一下&lt;/strong&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;超级管理密码（Root password）：超级管理员（root）账户的密码，拥有系统的最高权限，相当于Windows中的管理员，但是权限要更加大得多。&lt;strong&gt;注意，如果不设置密码则没有超级管理员账户，会在很大程度上受到限制(安卓手机所谓的Root就是为了获得最高管理员的控制权)。&lt;/strong&gt; &lt;em&gt;&lt;strong&gt;记得设置！！！&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;用户账户（User account）：管理用户账户，&lt;strong&gt;一定要创建一个基本的账户，否则只有root用户很容易造成事故&lt;/strong&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2026/02/14/699059832a1f2.png&quot; alt=&quot;选“Add a user”创建一个账户&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2026/02/14/699059831c4c3.png&quot; alt=&quot;设置用户名&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2026/02/14/699059831bbfe.png&quot; alt=&quot;设置密码（要输两遍哦）&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2026/02/14/69905983296b8.png&quot; alt=&quot;是否要给此账户root权限，取决于你自己&quot; /&gt;&lt;/p&gt;
&lt;p&gt;然后点&lt;code&gt;Confirm and exit&lt;/code&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;配置（Profile）：这次带大家装&lt;code&gt;Hyprland&lt;/code&gt;自然是选&lt;code&gt;Desktop&lt;/code&gt;环境辣&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;选择路线：&lt;code&gt;Profile&lt;/code&gt; --&amp;gt; &lt;code&gt;Type&lt;/code&gt; --&amp;gt; &lt;code&gt;Desktop&lt;/code&gt; --&amp;gt; &lt;code&gt;Hyprland&lt;/code&gt; --&amp;gt; &lt;code&gt;polkit&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2026/02/14/699059ce5b1e1.png&quot; alt=&quot;Hyprland&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2026/02/14/699059ce59215.png&quot; alt=&quot;Seat access&quot; /&gt;&lt;/p&gt;
&lt;p&gt;显卡驱动（n卡）：&lt;code&gt;Graphics driver&lt;/code&gt; --&amp;gt; &lt;code&gt;Nvidia（proprietary）&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;其他用户：根据显卡的品牌来选择就好&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2026/02/14/699059ce57b2b.png&quot; alt=&quot;显卡驱动&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2026/02/14/699059ce574cd.png&quot; alt=&quot;n卡推荐使用闭源驱动体验更佳&quot; /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;音频（Audio）:音频管理工具，新电脑建议选&lt;code&gt;pipewire&lt;/code&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;内核（Kernels）：Linux有几个不同特性的内核供你选择，主要区别在于：&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Linux&lt;/strong&gt;：最新功能，适合测试，稳定。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Linux-hardened&lt;/strong&gt;：强化安全，兼容性受限，适合高安全需求。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Linux-lts&lt;/strong&gt;：长期支持，稳定可靠，适合生产环境。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Linux-zen（推荐）&lt;/strong&gt;：低延迟优化，适合桌面/高性能环境。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2026/02/14/69905a11c2633.png&quot; alt=&quot;按空格键选中/取消（别忘了把原版内核取消勾选不然会有多个内核）&quot; /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;网络配置（Network configuration）：选最下面的&lt;code&gt;使用网络管理器&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2026/02/14/69905a2208249.png&quot; alt=&quot;从上往下分别是“复制当前网路配置”“自己配置”“使用网络管理器”&quot; /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;添加包（Additional packages）：跳过，要装可以等系统配置完再按需安装。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;时区（Timezone）:中国时区选择“Asia/Shanghai”。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2026/02/14/69905a2fbf75d.png&quot; alt=&quot;同样可以利用“/”快速选择&quot; /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;自动时间同步：默认启用，不用动。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;终于！设置完了，现在你可以选择&lt;code&gt;install&lt;/code&gt;然后&lt;strong&gt;坐和放宽&lt;/strong&gt;，起身去喝杯茶 :)&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2026/02/14/69905a474e186.png&quot; alt=&quot;开始安装！！！&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;archinstall安装完成&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2026/02/14/69905a576baae.png&quot; alt=&quot;等你回来要是看到这个界面就代表一切正常，你已经成功把arch安装进你的电脑&quot; /&gt;&lt;/p&gt;
&lt;p&gt;接下来选择&lt;code&gt;Reboot system&lt;/code&gt;等待重启即可进入arch！&lt;/p&gt;
&lt;h2&gt;修复破碎的字体并安装基本依赖&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2026/02/14/69905a77aabda.png&quot; alt=&quot;重启后如果显卡驱动工作正常的话你会来到这个界面&quot; /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;原谅我，不想重装系统&lt;strong&gt;虚拟机下Hyprland跑不起来&lt;/strong&gt;,接下去一段可能没图了，但我会尽量把步骤给讲清楚。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;输入你设置对应用户的密码并登录，然后你就会来到一个非常干净只有一张壁纸的界面&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2026/02/14/69905a8f189ad.png&quot; alt=&quot;主题样例&quot; /&gt;&lt;/p&gt;
&lt;p&gt;恭喜你，Hyprland在你的设备上工作正常！🎉🎉🎉&lt;/p&gt;
&lt;h3&gt;正式开始&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;按下&lt;strong&gt;Super&lt;/strong&gt;（也就是win键，键盘左下角CTRL和ALT之间的那个按键）+&lt;strong&gt;E&lt;/strong&gt;，打开资源管理器（姑且这么叫吧，感觉亲切一点）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;挂载U盘并打开我之前分享的&lt;code&gt;一份打包好的必要文件&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;按&lt;strong&gt;Super&lt;/strong&gt;+&lt;strong&gt;Q&lt;/strong&gt;打开&lt;strong&gt;kitty终端&lt;/strong&gt;，输入&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;cat [文件的绝对路径]
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;教一个小妙招，可以把文本文件按住鼠标左键拖进终端，然后回车即可，不用手打路径。&lt;strong&gt;文本文件里面是在你用上浏览器之前需要输入的所有命令。&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ol&gt;
&lt;li&gt;把鼠标指针移动到&lt;strong&gt;资源管理器&lt;/strong&gt;上按&lt;strong&gt;Super&lt;/strong&gt;+&lt;strong&gt;C&lt;/strong&gt;关闭，然后按&lt;strong&gt;Super&lt;/strong&gt;+&lt;strong&gt;Q&lt;/strong&gt;再打开一个&lt;strong&gt;kitty终端&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;添加非官方源&lt;/h3&gt;
&lt;p&gt;在&lt;code&gt;sudo nano /etc/pacman.conf&lt;/code&gt;末尾加入&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[archlinuxcn]
SigLevel = Optional TrustedOnly
#清华源
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
#中科大源
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
# 阿里源
Server = https://mirrors.aliyun.com/archlinuxcn/$arch
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;导入 archlinuxcn key&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;sudo pacman -Sy archlinuxcn-keyring
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;安装yay  base-devel&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;sudo pacman -Sy yay base-devel
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;安装中文字体&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;sudo pacman -S noto-fonts noto-fonts-cjk noto-fonts-extra noto-fonts-emoji ttf-dejavu ttf-liberation
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;结束&lt;/h3&gt;
&lt;p&gt;记得执行&lt;code&gt;reboot&lt;/code&gt;确保操作生效！&lt;/p&gt;
&lt;h2&gt;配置Hyprland主题（HyDE）&lt;/h2&gt;
&lt;h3&gt;配置魔法（很重要除非你在非大陆地区！）&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;yay -S clash-verge-rev-bin
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;安装完成后去终端输入&lt;code&gt;clash-verge&lt;/code&gt;启动，因为&lt;strong&gt;还没安装HyDE导致无法弹窗提权&lt;/strong&gt;，需要在终端手动授权sudo，具体配置就不多讲了，记得打开&lt;strong&gt;系统代理&lt;/strong&gt;和&lt;strong&gt;虚拟网卡&lt;/strong&gt;双模式，&lt;strong&gt;安装虚拟网卡驱动&lt;/strong&gt;时也&lt;strong&gt;需要在终端输入一遍账户密码&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;HyDE安装方法1（推荐）：&lt;/h3&gt;
&lt;p&gt;使用我的&lt;a href=&quot;https://github.com/mcxiaochenn/HyDE-Helper&quot;&gt;HyDE-Helper&lt;/a&gt;项目一行命令完成安装&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;bash -c &quot;$(curl -fsSL https://github.com/mcxiaochenn/HyDE-Helper/raw/refs/heads/main/shell/master/HyDE-install.sh)&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;后续更新：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;bash -c &quot;$(curl -fsSL https://github.com/mcxiaochenn/HyDE-Helper/raw/refs/heads/main/shell/master/HyDE-update.sh)&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;HyDE安装方法2：&lt;/h3&gt;
&lt;p&gt;参考官方步骤安装&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pacman -S --needed git base-devel
git clone --depth 1 https://github.com/HyDE-Project/HyDE ~/HyDE
cd ~/HyDE/Scripts
./install.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;后续更新：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cd ~/HyDE/Scripts
git pull origin master
./install.sh -r
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;HyDE安装过程&lt;/h3&gt;
&lt;p&gt;安装过程中会要求提权，还有各种选项，记得盯着点，此时不能坐和放宽了，一般遇到二选一就是&lt;code&gt;y&lt;/code&gt;or&lt;code&gt;1&lt;/code&gt;，这么选肯定没问题，如果你的网络环境没问题基本上6~8分钟结束。结束后可以别急着重启，HyDE默认会安装&lt;code&gt;firefox&lt;/code&gt;浏览器如果你不喜欢可以重装Edge等浏览器。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;yay -Rns firefox #卸载火狐
yay -S microsoft-edge-stable-bin #安装微软Edge
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;结束&lt;/h3&gt;
&lt;p&gt;记得执行&lt;code&gt;reboot&lt;/code&gt;确保操作生效！&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;此时的你可能初见端倪，已经发现一些问题了吗？但不要着急，后续有专门一段内容教你解决问题，现在先放一放，继续完成剩下的操作。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;安裝输入法&lt;/h2&gt;
&lt;h3&gt;安装输入法框架&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;sudo pacman -S fcitx5-im fcitx5-rime
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;配置环境变量&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;/etc/environment&lt;/code&gt; 是一个系统配置文件，用于设置环境变量。这些环境变量在系统启动时被加载，并且对所有用户和进程都有效。这个文件通常用于设置全局环境变量，而不是用户特定的环境变量。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;编辑文件 &lt;code&gt;sudo vim /etc/environment&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# fcitx5 support
#export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=&quot;@im=fcitx&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;眼尖的你应该发现了我注释了GTK的实现因为arch wiki文章写道：Do not set &lt;code&gt;GTK_IM_MODULE&lt;/code&gt; to xim globally as it affects GTK3 programs as well. XIM has various problems (such as the input method cannot input after restarting), so try not to use it. &lt;strong&gt;所以我注释了&lt;/strong&gt; :)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;配置 Hyprland 自动启动 Fcitx5&lt;/h3&gt;
&lt;p&gt;编辑 &lt;code&gt;Hyprland&lt;/code&gt; 的用户配置文件 &lt;code&gt;vim ~/.config/hypr/userprefs.conf&lt;/code&gt;，在末尾添加：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;exec-once = fcitx5 --replace -d
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;使用 &lt;code&gt;-d&lt;/code&gt; 选项表示以守护进程（daemon）方式运行。这意味着 Fcitx5 将在后台持续运行，提供输入法服务。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;--replace&lt;/code&gt; 选项的作用是如果已经有一个 Fcitx5 实例正在运行，新的实例将取代现有的实例。这可以确保只有一个 Fcitx5 实例在运行，避免多个实例同时运行导致的冲突或资源浪费。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;输入法皮肤&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2026/02/14/69908318ddccd.png&quot; alt=&quot;推荐这款高颜值，我用了好久了&quot; /&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;paru -S fcitx5-skin-ori-git
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://bu.dusays.com/2026/02/14/699083297d831.png&quot; alt=&quot;生效设置&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;配置雾凇拼音&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;cd ~/.local/share/fcitx5/rime
git clone https://github.com/iDvel/rime-ice.git
cp -r ./rime-ice/* .
sed -i &apos;s/# \(- { when: \(paging\|has_menu\), accept: \(comma\|period\), send: Page_\(Up\|Down\) }\)/\1/&apos; default.yaml
sed -i &apos;s/page_size: 5/page_size: 9/&apos; default.yaml
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;这样配置完还改了&lt;strong&gt;候选词数量&lt;/strong&gt;和&lt;strong&gt;逗号、句号翻页&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;语言大模型&lt;/h3&gt;
&lt;p&gt;肥肠好用，中文输入更准确。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cd ~/.local/share/fcitx5/rime
yay -S axel
axel -n 32 https://github.com/amzxyz/RIME-LMDG/releases/download/LTS/wanxiang-lts-zh-hans.gram
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;新建编辑 &lt;code&gt;rime_ice.custom.yaml&lt;/code&gt; 文件：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;patch:
  grammar:
    language: wanxiang-lts-zh-hans
    collocation_max_length: 5
    collocation_min_length: 2
  translator/contextual_suggestions: true
  translator/max_homophones: 7
  translator/max_homographs: 7
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;最后来修bug&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;我遇上的所有问题都写在这了，还有问题自行解决或在博客评论区留言我看到会回（都玩Linux了推荐自己尝试解决，锻炼独立思维）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;HyDE不显示通知/音量调节不显示&lt;/h3&gt;
&lt;p&gt;是上游插件更新导致的，截止本文发布还未修复，可以使用&lt;code&gt;downgrade&lt;/code&gt;工具降级，具体步骤：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo pacman -S downgrade
sudo downgrade pango
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;上下选择&lt;code&gt;59&lt;/code&gt;并确认，安装完会问题是否加入更新排除名单，推荐&lt;code&gt;y&lt;/code&gt;
此事在HyDE Issues中亦有记载：&lt;a href=&quot;https://github.com/HyDE-Project/HyDE/issues/905#issuecomment-3017999043&quot;&gt;HyDE-Project/HyDE/#905&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;xxx软件无法输入中文&lt;/h3&gt;
&lt;p&gt;在软件启动项加入&lt;code&gt;--ozone-platform-hint=auto --enable-wayland-ime&lt;/code&gt;
例如Edge VSCode这类软件可以利用flags config解决：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;echo &quot;--ozone-platform-hint=auto\n--enable-wayland-ime&quot; &amp;gt; ~/.config/microsoft-edge-stable-flags.conf #edge
echo &quot;--ozone-platform-hint=auto\n--enable-wayland-ime&quot; &amp;gt; ~/.config/code-flags.conf #vscode
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;键盘F1~F12被映射为了媒体键或别的&lt;/h3&gt;
&lt;p&gt;这有两种情况，一种是键盘类型识别错误，修改键盘识别即可，具体操作：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;echo 2 | sudo tee /sys/module/hid_apple/parameters/fnmode
echo &quot;options hid_apple fnmode=2&quot; | sudo tee -a /etc/modprobe.d/hid_apple.conf
mkinitcpio -P
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;另一种情况就是HyDE映射了，去&lt;code&gt;vim ~/.config/hypr/keybindings.conf&lt;/code&gt;注释对应代码
我直接把所有带F功能键值的代码都注释了，简单粗暴&lt;/p&gt;
&lt;h2&gt;尾声&lt;/h2&gt;
&lt;p&gt;姑且就想到那么多，没想到写博客那么费时间，我从2025-07-15 17:57:18开始写，现在已经是2025-07-15 23:08:35了，被家里人催睡觉了，明天再查漏补缺吧，今天就到这了，评论功能也没修好，有问题直接发邮箱问吧，在&lt;a href=&quot;https://github.com/mcxiaochenn&quot;&gt;我GitHub主页&lt;/a&gt;就有我的邮箱地址&lt;/p&gt;
&lt;p&gt;对了，我这里有一个性价比很高的云服务商，那就是————雨云！他们家的服务不仅性价比高，还照顾小白，我准备把我博客的评论系统迁移上去，想必体验会非常不错！&lt;a href=&quot;https://www.rainyun.com/blxc123_&quot;&gt;点我跳转雨云官网&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;blockquote&gt;
&lt;p&gt;写在最后：恭喜你看到这里，不出意外按照此教程你已经成功安装了Arch Linux+Hyprland+HyDE以及中文输入法并修复了键盘F功能键异常和软件无法输入中文的问题，现在你得到了一个基本可以使用的Arch桌面环境，但不要止步于此哦，Linux还有更多更多等待着你去探索，在摸索中进步也是Linux的魅力所在，相信对其感兴趣的你会继续在探索中进步并更加喜欢计算机技术这一科目！！！&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;参考资料（排名不分先后）&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;https://zhuanlan.zhihu.com/p/25308291469&lt;/li&gt;
&lt;li&gt;https://linux.do/t/topic/537067&lt;/li&gt;
&lt;li&gt;https://www.wanjiachupin.com/299.html&lt;/li&gt;
&lt;li&gt;https://www.quanxiaoha.com/linux-command/linux-install-font.html&lt;/li&gt;
&lt;li&gt;https://www.cnblogs.com/orochihuang/p/15193699.html&lt;/li&gt;
&lt;li&gt;https://blog.csdn.net/m0_46238775/article/details/127097605&lt;/li&gt;
&lt;li&gt;https://bbs.archlinuxcn.org/viewtopic.php?id=14347&lt;/li&gt;
&lt;li&gt;https://www.ventoy.net/cn/doc_news.html&lt;/li&gt;
&lt;li&gt;https://wiki.archlinuxcn.org/wiki/%E5%AE%89%E8%A3%85%E6%8C%87%E5%8D%97&lt;/li&gt;
&lt;li&gt;https://wiki.archlinuxcn.org/wiki/Hyprland&lt;/li&gt;
&lt;li&gt;https://www.rayalto.org/2024/02/20/archlinux-hyprland-install/&lt;/li&gt;
&lt;li&gt;https://github.com/HyDE-Project/HyDE&lt;/li&gt;
&lt;li&gt;https://github.com/mcxiaochenn/HyDE-Helper&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>恭喜你找到了本站的第一篇文档</title><link>https://blog.mcxiaochen.top/posts/p3eeb/</link><guid isPermaLink="true">https://blog.mcxiaochen.top/posts/p3eeb/</guid><description>嗨，很高兴你能翻到这篇文章，虽然不知道此时的我是否已经完成梦想，也有可能博客已经消失在时间长河之中，但精神常在</description><pubDate>Mon, 14 Jul 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;嗨，很高兴你能翻到这篇文章，虽然不知道此时的我是否已经完成梦想，也有可能博客已经消失在时间长河之中，但精神常在&lt;/p&gt;
&lt;p&gt;相见即是缘.&lt;/p&gt;
&lt;p&gt;总之如果以后见不到你了，那么祝你：早安、午安、下午安、晚安。&lt;/p&gt;
&lt;p&gt;And in case I don’t see ya, good morning, good afternoon, good evening, and good night!&lt;/p&gt;
</content:encoded></item></channel></rss>