<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>AIOVTUE-雪</title>
		<link>https://daily.yybb.us/</link>
		<description>Recent content on AIOVTUE-雪</description>
		<generator>Hugo</generator>
		<language>zh-cn</language>
		
		
		
		
			<lastBuildDate>Thu, 11 Jun 2026 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://daily.yybb.us/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>valaxy博客全局美化教程（一）</title>
				<link>https://daily.yybb.us/posts/valaxy-1/</link>
				<pubDate>Thu, 28 May 2026 00:00:00 +0000</pubDate>
				<guid>https://daily.yybb.us/posts/valaxy-1/</guid>
				<description>&lt;h3 id=&#34;本系列教程共十篇&#34;&gt;本系列教程共十篇&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-1/&#34;&gt;&lt;em&gt;valaxy博客全局美化教程（一）&lt;/em&gt;&lt;/a&gt;：&lt;em&gt;分类、标签、归档三个页面的美化教程&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-2/&#34;&gt;valaxy博客全局美化教程（二）&lt;/a&gt;：首页公告栏美化，新增随机文章展示板块&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-3/&#34;&gt;valaxy博客全局美化教程（三）&lt;/a&gt;：给网页增加加载动画&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-4/&#34;&gt;valaxy博客全局美化教程（四）&lt;/a&gt;：增加图片预览功能&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-5/&#34;&gt;valaxy博客全局美化教程（五）&lt;/a&gt;：友链页面美化，修改了友链样式以及增加留言板&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-6/&#34;&gt;valaxy博客全局美化教程（六）&lt;/a&gt;：留言页面增加信封展开效果&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-7/&#34;&gt;valaxy博客全局美化教程（七）&lt;/a&gt;：新增网址导航页面&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-8/&#34;&gt;valaxy博客全局美化教程（八）&lt;/a&gt;：页脚倒计时、搜索问题修复&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-9/&#34;&gt;valaxy博客全局美化教程（九）&lt;/a&gt;：新增相册页面，支持使用webdav作为相册&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-10/&#34;&gt;valaxy博客全局美化教程（十）&lt;/a&gt;：修复构建结束的时候会卡住&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;最初部署&#34;&gt;最初部署&lt;/h3&gt;&#xA;&lt;h4 id=&#34;简介&#34;&gt;简介&lt;/h4&gt;&#xA;&lt;p&gt;简单介绍一下valaxy，Valaxy = V + Galaxy 旨在成为下一代静态博客框架，提供更好的热更新与用户加载体验、更强大更便捷的自定义开发可能性。附上开源地址&lt;a href=&#34;https://github.com/YunYouJun/valaxy&#34;&gt;valaxy&lt;/a&gt;&#xA;本系列教程使用的主题是Sakura主题，附上开源地址&lt;a href=&#34;https://github.com/wrxinyue/valaxy-theme-sakura&#34;&gt;sakura&lt;/a&gt;&#xA;在开始教程之前先看一下最终的页面效果先：&#xA;&lt;img src=&#34;https://r2tc.20030327.xyz/file/%E5%8D%9A%E5%AE%A2/%E6%96%87%E7%AB%A0/1780923255231_1780923153704.png&#34; alt=&#34;&#34;&gt;&#xA;&lt;img src=&#34;https://r2tc.20030327.xyz/file/%E5%8D%9A%E5%AE%A2/%E6%96%87%E7%AB%A0/1780923256550_1780923170709.png&#34; alt=&#34;&#34;&gt;&#xA;&lt;img src=&#34;https://r2tc.20030327.xyz/file/%E5%8D%9A%E5%AE%A2/%E6%96%87%E7%AB%A0/1780923257251_1780923185560.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Memos-web 不需要服务器</title>
				<link>https://daily.yybb.us/posts/memos-web/</link>
				<pubDate>Thu, 11 Jun 2026 00:00:00 +0000</pubDate>
				<guid>https://daily.yybb.us/posts/memos-web/</guid>
				<description>&lt;h3 id=&#34;介绍&#34;&gt;介绍&lt;/h3&gt;&#xA;&lt;h4 id=&#34;起因&#34;&gt;起因&lt;/h4&gt;&#xA;&lt;p&gt;最近无聊，写了个小玩意，感觉挺不错的，说说为什么想写个这个吧，最开始的时候用哪个memos，但是那个要部署在服务器上面，就很~没办法，我没有钱买服务器，或者说不想花钱买，后面就一直在找其他的项目，看看有没平替，不得不说，确实让我找到几个，但是吧，那个ui和操作，以及访问速度，真的有点感人，说的是这个&lt;a href=&#34;https://github.com/Allhuo/memos-cloudflare&#34;&gt;memos-cloudflare&lt;/a&gt;,该说不说，作者很厉害，数据库，储存全都白嫖cloudflare，但是正因为需要数据库和R2这些，就注定离不开cloudflare，但是吧，这玩意在国内的速度就很迷会，时快时慢的，大多数时候打开就得加载半天，属于是很难受了，之后看到的项目基本都大同小异。&lt;/p&gt;</description>
			</item>
			<item>
				<title>valaxy博客全局美化教程（十）</title>
				<link>https://daily.yybb.us/posts/valaxy-10/</link>
				<pubDate>Sat, 06 Jun 2026 00:00:00 +0000</pubDate>
				<guid>https://daily.yybb.us/posts/valaxy-10/</guid>
				<description>&lt;h3 id=&#34;本系列教程共十篇&#34;&gt;本系列教程共十篇&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-1/&#34;&gt;valaxy博客全局美化教程（一）&lt;/a&gt;：分类、标签、归档三个页面的美化教程&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-2/&#34;&gt;valaxy博客全局美化教程（二）&lt;/a&gt;：首页公告栏美化，新增随机文章展示板块&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-3/&#34;&gt;valaxy博客全局美化教程（三）&lt;/a&gt;：给网页增加加载动画&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-4/&#34;&gt;valaxy博客全局美化教程（四）&lt;/a&gt;：增加图片预览功能&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-5/&#34;&gt;valaxy博客全局美化教程（五）&lt;/a&gt;：友链页面美化，修改了友链样式以及增加留言板&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-6/&#34;&gt;valaxy博客全局美化教程（六）&lt;/a&gt;：留言页面增加信封展开效果&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-7/&#34;&gt;valaxy博客全局美化教程（七）&lt;/a&gt;：新增网址导航页面&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-8/&#34;&gt;valaxy博客全局美化教程（八）&lt;/a&gt;：页脚倒计时、搜索问题修复&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-9/&#34;&gt;valaxy博客全局美化教程（九）&lt;/a&gt;：新增相册页面，支持使用webdav作为相册&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;&lt;strong&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-10/&#34;&gt;&lt;em&gt;valaxy博客全局美化教程（十）&lt;/em&gt;&lt;/a&gt;：修复构建结束的时候会卡住&lt;/strong&gt;&lt;/em&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;覆盖文件&#34;&gt;覆盖文件&lt;/h3&gt;&#xA;&lt;p&gt;覆盖文件的意思就是，这个文件已存在，删除原本全部内容，替换为下方内容，不过删之前建议备份哦&lt;/p&gt;&#xA;&lt;h5 id=&#34;覆盖scriptsbuild-ssgmjs&#34;&gt;覆盖&lt;code&gt;scripts\build-ssg.mjs&lt;/code&gt;&lt;/h5&gt;&#xA;&lt;div class=&#34;language-text max-h-360px code-foldable folded&#34; data-line-count=&#34;128&#34;&gt;&#xA;  &lt;button type=&#34;button&#34; title=&#34;Copy code&#34; class=&#34;copy&#34; aria-label=&#34;复制代码&#34;&gt;&lt;/button&gt;&#xA;  &lt;span class=&#34;lang&#34;&gt;text&lt;/span&gt;&#xA;  &lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;import { spawn } from &amp;#39;node:child_process&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;import { createRequire } from &amp;#39;node:module&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;import { existsSync } from &amp;#39;node:fs&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;import { resolve } from &amp;#39;node:path&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;const BUILD_DONE_MARKERS = [&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#39;[HOOK] build:after done&amp;#39;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#39;RSS Feed Files&amp;#39;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;const GRACE_MS = 800&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;const HEARTBEAT_MS = 45_000&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;const MAX_MS = 20 * 60 * 1000&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;const require = createRequire(import.meta.url)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;const valaxyBin = require.resolve(&amp;#39;valaxy/bin/valaxy.mjs&amp;#39;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;const distIndex = resolve(process.cwd(), &amp;#39;dist/index.html&amp;#39;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;const child = spawn(process.execPath, [valaxyBin, &amp;#39;build&amp;#39;, &amp;#39;--ssg&amp;#39;], {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  stdio: [&amp;#39;inherit&amp;#39;, &amp;#39;pipe&amp;#39;, &amp;#39;pipe&amp;#39;],&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  env: process.env,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  windowsHide: true,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;})&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;let finished = false&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;let successTimer&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;let outputBuffer = &amp;#39;&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;function killChildTree() {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  if (!child.pid)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    return&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  if (process.platform === &amp;#39;win32&amp;#39;) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    spawn(&amp;#39;taskkill&amp;#39;, [&amp;#39;/PID&amp;#39;, String(child.pid), &amp;#39;/T&amp;#39;, &amp;#39;/F&amp;#39;], {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      stdio: &amp;#39;ignore&amp;#39;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      windowsHide: true,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    })&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    return&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  try {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    child.kill(&amp;#39;SIGKILL&amp;#39;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  catch {}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;function finishSuccess() {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  if (finished)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    return&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  finished = true&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  clearTimeout(maxTimer)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  clearTimeout(successTimer)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  clearInterval(heartbeatTimer)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  if (!existsSync(distIndex)) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    console.error(&amp;#39;\n构建流程已结束，但未找到 dist/index.html，请检查构建日志。\n&amp;#39;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    killChildTree()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    process.exit(1)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    return&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  console.log(&amp;#39;\n✓ 构建已完成，正在结束进程…\n&amp;#39;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  killChildTree()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  setTimeout(() =&amp;gt; process.exit(0), 200)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;function finishError(code) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  if (finished)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    return&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  finished = true&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  clearTimeout(maxTimer)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  clearTimeout(successTimer)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  clearInterval(heartbeatTimer)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  process.exit(code ?? 1)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;function scheduleSuccess() {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  clearTimeout(successTimer)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  successTimer = setTimeout(finishSuccess, GRACE_MS)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;function inspectOutput(text) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  outputBuffer += text&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  if (outputBuffer.length &amp;gt; 8192)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    outputBuffer = outputBuffer.slice(-8192)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  if (BUILD_DONE_MARKERS.some(marker =&amp;gt; outputBuffer.includes(marker)))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    scheduleSuccess()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;const heartbeatTimer = setInterval(() =&amp;gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  if (finished)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    return&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  console.log(&amp;#39;\n⏳ 仍在构建中（SSG 预渲染可能较慢，请稍候）…\n&amp;#39;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}, HEARTBEAT_MS)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;const maxTimer = setTimeout(() =&amp;gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  if (finished)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    return&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  console.error(&amp;#39;\nSSG 构建超时（20 分钟）。\n&amp;#39;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  killChildTree()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  finishError(1)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}, MAX_MS)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;child.stdout.on(&amp;#39;data&amp;#39;, (chunk) =&amp;gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  const text = chunk.toString()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  process.stdout.write(text)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  inspectOutput(text)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;})&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;child.stderr.on(&amp;#39;data&amp;#39;, (chunk) =&amp;gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  const text = chunk.toString()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  process.stderr.write(text)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  inspectOutput(text)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;})&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;child.on(&amp;#39;error&amp;#39;, (error) =&amp;gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  console.error(error)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  finishError(1)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;})&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;child.on(&amp;#39;close&amp;#39;, (code) =&amp;gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  if (finished)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    return&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  if (code === 0 || existsSync(distIndex))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    finishSuccess()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  else&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    finishError(code)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;})&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;  &lt;button type=&#34;button&#34; class=&#34;code-block-unfold-btn&#34; aria-label=&#34;展开代码&#34;&gt;&lt;/button&gt;&#xA;&lt;/div&gt;&#xA;&lt;h3 id=&#34;修改文件&#34;&gt;修改文件&lt;/h3&gt;&#xA;&lt;h5 id=&#34;修改packagejson&#34;&gt;修改&lt;code&gt;package.json&lt;/code&gt;&lt;/h5&gt;&#xA;&lt;p&gt;替换原本&lt;code&gt;&amp;quot;build:ssg&amp;quot;: &amp;quot;valaxy build --ssg&amp;quot;,&lt;/code&gt;为&lt;/p&gt;</description>
			</item>
			<item>
				<title>valaxy博客全局美化教程（九）</title>
				<link>https://daily.yybb.us/posts/valaxy-9/</link>
				<pubDate>Fri, 05 Jun 2026 00:00:00 +0000</pubDate>
				<guid>https://daily.yybb.us/posts/valaxy-9/</guid>
				<description>&lt;h3 id=&#34;本系列教程共十篇&#34;&gt;本系列教程共十篇&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-1/&#34;&gt;valaxy博客全局美化教程（一）&lt;/a&gt;：分类、标签、归档三个页面的美化教程&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-2/&#34;&gt;valaxy博客全局美化教程（二）&lt;/a&gt;：首页公告栏美化，新增随机文章展示板块&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-3/&#34;&gt;valaxy博客全局美化教程（三）&lt;/a&gt;：给网页增加加载动画&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-4/&#34;&gt;valaxy博客全局美化教程（四）&lt;/a&gt;：增加图片预览功能&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-5/&#34;&gt;valaxy博客全局美化教程（五）&lt;/a&gt;：友链页面美化，修改了友链样式以及增加留言板&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-6/&#34;&gt;valaxy博客全局美化教程（六）&lt;/a&gt;：留言页面增加信封展开效果&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-7/&#34;&gt;valaxy博客全局美化教程（七）&lt;/a&gt;：新增网址导航页面&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-8/&#34;&gt;valaxy博客全局美化教程（八）&lt;/a&gt;：页脚倒计时、搜索问题修复&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;&lt;strong&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-9/&#34;&gt;&lt;em&gt;valaxy博客全局美化教程（九）&lt;/em&gt;&lt;/a&gt;：新增相册页面，支持使用webdav作为相册&lt;/strong&gt;&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-10/&#34;&gt;valaxy博客全局美化教程（十）&lt;/a&gt;：修复构建结束的时候会卡住&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;效果展示&#34;&gt;效果展示&lt;/h3&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://r2tc.20030327.xyz/file/%E5%8D%9A%E5%AE%A2/%E6%96%87%E7%AB%A0/1780936835609_1780936759223.png&#34; alt=&#34;&#34;&gt;&#xA;&lt;img src=&#34;https://r2tc.20030327.xyz/file/%E5%8D%9A%E5%AE%A2/%E6%96%87%E7%AB%A0/1780936837068_1780936789803.png&#34; alt=&#34;&#34;&gt;&#xA;支持图床相册或者webdav网盘相册，均支持加密，支持时间轴显示（图床需要自己设置时间，webdav没测试时间轴），图片预览界面和之前的预览界面一样的，安装本美化之前请先安装&lt;code&gt;valaxy博客全局美化教程（四）&lt;/code&gt;，否则可能会出奇奇怪怪的问题&lt;/p&gt;</description>
			</item>
			<item>
				<title>关于我</title>
				<link>https://daily.yybb.us/about/</link>
				<pubDate>Fri, 05 Jun 2026 00:00:00 +0000</pubDate>
				<guid>https://daily.yybb.us/about/</guid>
				<description>&lt;h1 id=&#34;关于本站&#34;&gt;关于本站&lt;/h1&gt;&#xA;&lt;p&gt;这是专门用来分享教程专属站点，记录生活之类的可以去附站点哦 &lt;a href=&#34;https://live.yybb.us&#34;&gt;AIOVTUE&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;另外，本站根据valaxy和sakura进行重构，使用的框架改为hugo&lt;/p&gt;&#xA;&lt;h2 id=&#34;联系方式&#34;&gt;联系方式&lt;/h2&gt;&#xA;&lt;p&gt;偌大的互联网，我想也不会有人没事联系我，毕竟这只是我分享生活的小树洞，不过要是真有人的话可以在下方留言评论，我会收到邮件，或者在主页联系站点图标选一个你喜欢的联系我。&lt;/p&gt;</description>
			</item>
			<item>
				<title>valaxy博客全局美化教程（八）</title>
				<link>https://daily.yybb.us/posts/valaxy-8/</link>
				<pubDate>Thu, 04 Jun 2026 00:00:00 +0000</pubDate>
				<guid>https://daily.yybb.us/posts/valaxy-8/</guid>
				<description>&lt;h3 id=&#34;本系列教程共十篇&#34;&gt;本系列教程共十篇&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-1/&#34;&gt;valaxy博客全局美化教程（一）&lt;/a&gt;：分类、标签、归档三个页面的美化教程&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-2/&#34;&gt;valaxy博客全局美化教程（二）&lt;/a&gt;：首页公告栏美化，新增随机文章展示板块&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-3/&#34;&gt;valaxy博客全局美化教程（三）&lt;/a&gt;：给网页增加加载动画&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-4/&#34;&gt;valaxy博客全局美化教程（四）&lt;/a&gt;：增加图片预览功能&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-5/&#34;&gt;valaxy博客全局美化教程（五）&lt;/a&gt;：友链页面美化，修改了友链样式以及增加留言板&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-6/&#34;&gt;valaxy博客全局美化教程（六）&lt;/a&gt;：留言页面增加信封展开效果&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-7/&#34;&gt;valaxy博客全局美化教程（七）&lt;/a&gt;：新增网址导航页面&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;&lt;strong&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-8/&#34;&gt;&lt;em&gt;valaxy博客全局美化教程（八）&lt;/em&gt;&lt;/a&gt;：页脚倒计时、搜索问题修复&lt;/strong&gt;&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-9/&#34;&gt;valaxy博客全局美化教程（九）&lt;/a&gt;：新增相册页面，支持使用webdav作为相册&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-10/&#34;&gt;valaxy博客全局美化教程（十）&lt;/a&gt;：修复构建结束的时候会卡住&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;页脚添加计时功能&#34;&gt;页脚添加计时功能&lt;/h3&gt;&#xA;&lt;h4 id=&#34;预览效果&#34;&gt;预览效果&lt;/h4&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://r2tc.20030327.xyz/file/%E5%8D%9A%E5%AE%A2/%E6%96%87%E7%AB%A0/1780935908626_1780935876619.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;新建文件&#34;&gt;新建文件&lt;/h4&gt;&#xA;&lt;p&gt;以下是新建文件部分&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;新增&lt;code&gt;components\SakuraFooter.vue&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;language-text max-h-360px code-foldable folded&#34; data-line-count=&#34;141&#34;&gt;&#xA;  &lt;button type=&#34;button&#34; title=&#34;Copy code&#34; class=&#34;copy&#34; aria-label=&#34;复制代码&#34;&gt;&lt;/button&gt;&#xA;  &lt;span class=&#34;lang&#34;&gt;text&lt;/span&gt;&#xA;  &lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;script lang=&amp;#34;ts&amp;#34; setup&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;import type { Pkg } from &amp;#39;valaxy&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;import { useConfig } from &amp;#39;valaxy&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;import { isClient } from &amp;#39;@vueuse/core&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;import { computed, onMounted, onUnmounted, ref, watch } from &amp;#39;vue&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;interface FooterConfig {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  icp?: string&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  powered?: boolean&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  runtimeSince?: string&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;interface RuntimeParts {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  days: number&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  hours: number&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  minutes: number&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  seconds: number&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;const props = defineProps&amp;lt;{&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  footer?: FooterConfig&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  pkg?: Pkg&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}&amp;gt;()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;const config = useConfig()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;const footer = computed(() =&amp;gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  if (props.footer)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    return props.footer&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  return (config.value?.themeConfig as { footer?: FooterConfig } | undefined)?.footer ?? {}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;})&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;const runtime = ref&amp;lt;RuntimeParts | null&amp;gt;(null)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;let timer: ReturnType&amp;lt;typeof setInterval&amp;gt; | undefined&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;function parseStartTime(since: string) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  const trimmed = since.trim()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  if (/^\d{4}-\d{2}-\d{2}$/.test(trimmed)) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    const [year, month, day] = trimmed.split(&amp;#39;-&amp;#39;).map(Number)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    return new Date(year, month - 1, day, 0, 0, 0, 0)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  const start = new Date(trimmed)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  if (Number.isNaN(start.getTime()))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    return null&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  return start&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;function updateRuntime() {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  const since = footer.value.runtimeSince&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  if (!since) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    runtime.value = null&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    return&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  const start = parseStartTime(since)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  if (!start) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    runtime.value = null&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    return&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  let diffMs = Date.now() - start.getTime()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  if (diffMs &amp;lt; 0) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    runtime.value = null&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    return&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  const days = Math.floor(diffMs / 86_400_000)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  diffMs -= days * 86_400_000&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  const hours = Math.floor(diffMs / 3_600_000)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  diffMs -= hours * 3_600_000&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  const minutes = Math.floor(diffMs / 60_000)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  diffMs -= minutes * 60_000&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  const seconds = Math.floor(diffMs / 1000)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  runtime.value = { days, hours, minutes, seconds }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;function stopTimer() {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  if (timer !== undefined) {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    clearInterval(timer)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    timer = undefined&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;function startTimer() {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  updateRuntime()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  stopTimer()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  if (isClient)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    timer = setInterval(updateRuntime, 1000)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;watch(() =&amp;gt; footer.value.runtimeSince, startTimer)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;onMounted(startTimer)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;onUnmounted(stopTimer)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;/script&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;template&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;lt;footer class=&amp;#34;sakura-footer h-$sakura-footer-height&amp;#34; text=&amp;#34;center sm&amp;#34; style=&amp;#34;color:var(--va-c-text-light)&amp;#34;&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;lt;div v-if=&amp;#34;footer.icp&amp;#34; class=&amp;#34;icp&amp;#34; p=&amp;#34;y-2&amp;#34; v-html=&amp;#34;footer.icp&amp;#34; /&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;lt;SakuraCopyright /&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;lt;p v-if=&amp;#34;runtime&amp;#34; class=&amp;#34;sakura-footer-runtime&amp;#34;&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      本站已经流畅运行&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;lt;span class=&amp;#34;sakura-footer-runtime__num&amp;#34;&amp;gt;{{ runtime.days }}&amp;lt;/span&amp;gt;天&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;lt;span class=&amp;#34;sakura-footer-runtime__num&amp;#34;&amp;gt;{{ runtime.hours }}&amp;lt;/span&amp;gt;小时&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;lt;span class=&amp;#34;sakura-footer-runtime__num&amp;#34;&amp;gt;{{ runtime.minutes }}&amp;lt;/span&amp;gt;分钟&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &amp;lt;span class=&amp;#34;sakura-footer-runtime__num&amp;#34;&amp;gt;{{ runtime.seconds }}&amp;lt;/span&amp;gt;秒&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;lt;/p&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;lt;SakuraPowered v-if=&amp;#34;footer.powered&amp;#34; /&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;lt;slot /&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;lt;/footer&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;/template&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;style lang=&amp;#34;scss&amp;#34; scoped&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;.sakura-footer-runtime {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  margin: 0;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  padding: 4px 0 8px;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  font-size: 0.875rem;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  line-height: 1.6;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  color: var(--va-c-text-light);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;.sakura-footer-runtime__num {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  font-variant-numeric: tabular-nums;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  font-weight: 600;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  color: var(--sakura-color-primary, #fe9500);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;/style&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;  &lt;button type=&#34;button&#34; class=&#34;code-block-unfold-btn&#34; aria-label=&#34;展开代码&#34;&gt;&lt;/button&gt;&#xA;&lt;/div&gt;&#xA;&lt;h4 id=&#34;修改文件&#34;&gt;修改文件&lt;/h4&gt;&#xA;&lt;p&gt;以下是修改文件部分&lt;/p&gt;</description>
			</item>
			<item>
				<title>valaxy博客全局美化教程（七）</title>
				<link>https://daily.yybb.us/posts/valaxy-7/</link>
				<pubDate>Wed, 03 Jun 2026 00:00:00 +0000</pubDate>
				<guid>https://daily.yybb.us/posts/valaxy-7/</guid>
				<description>&lt;h3 id=&#34;本系列教程共十篇&#34;&gt;本系列教程共十篇&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-1/&#34;&gt;valaxy博客全局美化教程（一）&lt;/a&gt;：分类、标签、归档三个页面的美化教程&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-2/&#34;&gt;valaxy博客全局美化教程（二）&lt;/a&gt;：首页公告栏美化，新增随机文章展示板块&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-3/&#34;&gt;valaxy博客全局美化教程（三）&lt;/a&gt;：给网页增加加载动画&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-4/&#34;&gt;valaxy博客全局美化教程（四）&lt;/a&gt;：增加图片预览功能&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-5/&#34;&gt;valaxy博客全局美化教程（五）&lt;/a&gt;：友链页面美化，修改了友链样式以及增加留言板&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-6/&#34;&gt;valaxy博客全局美化教程（六）&lt;/a&gt;：留言页面增加信封展开效果&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;&lt;strong&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-7/&#34;&gt;&lt;em&gt;valaxy博客全局美化教程（七）&lt;/em&gt;&lt;/a&gt;：新增网址导航页面&lt;/strong&gt;&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-8/&#34;&gt;valaxy博客全局美化教程（八）&lt;/a&gt;：页脚倒计时、搜索问题修复&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-9/&#34;&gt;valaxy博客全局美化教程（九）&lt;/a&gt;：新增相册页面，支持使用webdav作为相册&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-10/&#34;&gt;valaxy博客全局美化教程（十）&lt;/a&gt;：修复构建结束的时候会卡住&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;效果演示&#34;&gt;效果演示&lt;/h3&gt;&#xA;&lt;p&gt;这个页面效果有点多，其中有一个随机网站抽卡界面，大家最好还是亲自体验一下比较好&#xA;&lt;a href=&#34;https://daily.yybb.us/navigation&#34;&gt;前往体验&lt;/a&gt;&#xA;&lt;img src=&#34;https://r2tc.20030327.xyz/file/%E5%8D%9A%E5%AE%A2/%E6%96%87%E7%AB%A0/1780934727393_1780934695511.png&#34; alt=&#34;&#34;&gt;&#xA;站长的小巧思，点击到处转转按钮有惊喜哦~&lt;/p&gt;</description>
			</item>
			<item>
				<title>valaxy博客全局美化教程（六）</title>
				<link>https://daily.yybb.us/posts/valaxy-6/</link>
				<pubDate>Tue, 02 Jun 2026 00:00:00 +0000</pubDate>
				<guid>https://daily.yybb.us/posts/valaxy-6/</guid>
				<description>&lt;h3 id=&#34;本系列教程共十篇&#34;&gt;本系列教程共十篇&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-1/&#34;&gt;valaxy博客全局美化教程（一）&lt;/a&gt;：分类、标签、归档三个页面的美化教程&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-2/&#34;&gt;valaxy博客全局美化教程（二）&lt;/a&gt;：首页公告栏美化，新增随机文章展示板块&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-3/&#34;&gt;valaxy博客全局美化教程（三）&lt;/a&gt;：给网页增加加载动画&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-4/&#34;&gt;valaxy博客全局美化教程（四）&lt;/a&gt;：增加图片预览功能&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-5/&#34;&gt;valaxy博客全局美化教程（五）&lt;/a&gt;：友链页面美化，修改了友链样式以及增加留言板&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;&lt;strong&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-6/&#34;&gt;&lt;em&gt;valaxy博客全局美化教程（六）&lt;/em&gt;&lt;/a&gt;：留言页面增加信封展开效果&lt;/strong&gt;&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-7/&#34;&gt;valaxy博客全局美化教程（七）&lt;/a&gt;：新增网址导航页面&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-8/&#34;&gt;valaxy博客全局美化教程（八）&lt;/a&gt;：页脚倒计时、搜索问题修复&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-9/&#34;&gt;valaxy博客全局美化教程（九）&lt;/a&gt;：新增相册页面，支持使用webdav作为相册&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-10/&#34;&gt;valaxy博客全局美化教程（十）&lt;/a&gt;：修复构建结束的时候会卡住&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;话不多说先看效果&#34;&gt;话不多说，先看效果&lt;/h3&gt;&#xA;&lt;video width=&#34;500&#34; height=&#34;300&#34; controls&gt;&#xA;    &lt;source src=&#34;https://r2tc.20030327.xyz/file/博客/文章/1780933818866_asdfewsd_compressed.mp4&#34; type=&#34;video/mp4&#34;&gt;&#xA;&lt;/video&gt;&#xA;页面下滑时信封自动展开，上划自动闭合，可以自己换图片，但是尺寸要一样哈，由于涉及到图床，大家尽量只下载图片，不要直接使用站长的链接，因为站长不能保证什么时候就失效了&#xA;给出所有图片的图床链接：&#xA;&lt;div class=&#34;language-text&#34; data-line-count=&#34;4&#34;&gt;&#xA;  &lt;button type=&#34;button&#34; title=&#34;Copy code&#34; class=&#34;copy&#34; aria-label=&#34;复制代码&#34;&gt;&lt;/button&gt;&#xA;  &lt;span class=&#34;lang&#34;&gt;text&lt;/span&gt;&#xA;  &lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;https://pic1.imgdb.cn/item/6a26e5483c9809430d376f88.png&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;https://pic1.imgdb.cn/item/6a26e5483c9809430d376f87.png&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;https://pic1.imgdb.cn/item/6a26e5483c9809430d376f85.png&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;https://pic1.imgdb.cn/item/6a26e5483c9809430d376f86.png&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;  &lt;button type=&#34;button&#34; class=&#34;code-block-unfold-btn&#34; aria-label=&#34;展开代码&#34; hidden&gt;&lt;/button&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;从上到下分别是信纸、顶部信封、底部信封和横条，下面链接和这里一样，大家最好修改一下，测试用着可以，不要生产环境使用哦&lt;/p&gt;</description>
			</item>
			<item>
				<title>valaxy博客全局美化教程（五）</title>
				<link>https://daily.yybb.us/posts/valaxy-5/</link>
				<pubDate>Mon, 01 Jun 2026 00:00:00 +0000</pubDate>
				<guid>https://daily.yybb.us/posts/valaxy-5/</guid>
				<description>&lt;h3 id=&#34;本系列教程共十篇&#34;&gt;本系列教程共十篇&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-1/&#34;&gt;valaxy博客全局美化教程（一）&lt;/a&gt;：分类、标签、归档三个页面的美化教程&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-2/&#34;&gt;valaxy博客全局美化教程（二）&lt;/a&gt;：首页公告栏美化，新增随机文章展示板块&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-3/&#34;&gt;valaxy博客全局美化教程（三）&lt;/a&gt;：给网页增加加载动画&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-4/&#34;&gt;valaxy博客全局美化教程（四）&lt;/a&gt;：增加图片预览功能&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;&lt;strong&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-5/&#34;&gt;&lt;em&gt;valaxy博客全局美化教程（五）&lt;/em&gt;&lt;/a&gt;：友链页面美化，修改了友链样式以及增加留言板&lt;/strong&gt;&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-6/&#34;&gt;valaxy博客全局美化教程（六）&lt;/a&gt;：留言页面增加信封展开效果&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-7/&#34;&gt;valaxy博客全局美化教程（七）&lt;/a&gt;：新增网址导航页面&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-8/&#34;&gt;valaxy博客全局美化教程（八）&lt;/a&gt;：页脚倒计时、搜索问题修复&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-9/&#34;&gt;valaxy博客全局美化教程（九）&lt;/a&gt;：新增相册页面，支持使用webdav作为相册&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-10/&#34;&gt;valaxy博客全局美化教程（十）&lt;/a&gt;：修复构建结束的时候会卡住&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;效果演示&#34;&gt;效果演示&lt;/h3&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://r2tc.20030327.xyz/file/%E5%8D%9A%E5%AE%A2/%E6%96%87%E7%AB%A0/1780932344888_1780932280379.png&#34; alt=&#34;&#34;&gt;&#xA;&lt;img src=&#34;https://r2tc.20030327.xyz/file/%E5%8D%9A%E5%AE%A2/%E6%96%87%E7%AB%A0/1780932343011_1780932303059.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;原本的友链页面比较单调，也没有留言板，就改了一下&lt;/p&gt;&#xA;&lt;h3 id=&#34;新增文件&#34;&gt;新增文件&lt;/h3&gt;&#xA;&lt;p&gt;以下是新增文件部分哦，共&lt;code&gt;4&lt;/code&gt;个文件&lt;/p&gt;&#xA;&lt;p&gt;第一个比较特殊，说明一下，公告部分再次修改&lt;/p&gt;</description>
			</item>
			<item>
				<title>valaxy博客全局美化教程（四）</title>
				<link>https://daily.yybb.us/posts/valaxy-4/</link>
				<pubDate>Sun, 31 May 2026 00:00:00 +0000</pubDate>
				<guid>https://daily.yybb.us/posts/valaxy-4/</guid>
				<description>&lt;h3 id=&#34;本系列教程共十篇&#34;&gt;本系列教程共十篇&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-1/&#34;&gt;valaxy博客全局美化教程（一）&lt;/a&gt;：分类、标签、归档三个页面的美化教程&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-2/&#34;&gt;valaxy博客全局美化教程（二）&lt;/a&gt;：首页公告栏美化，新增随机文章展示板块&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-3/&#34;&gt;valaxy博客全局美化教程（三）&lt;/a&gt;：给网页增加加载动画&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;&lt;strong&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-4/&#34;&gt;&lt;em&gt;valaxy博客全局美化教程（四）&lt;/em&gt;&lt;/a&gt;：增加图片预览功能&lt;/strong&gt;&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-5/&#34;&gt;valaxy博客全局美化教程（五）&lt;/a&gt;：友链页面美化，修改了友链样式以及增加留言板&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-6/&#34;&gt;valaxy博客全局美化教程（六）&lt;/a&gt;：留言页面增加信封展开效果&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-7/&#34;&gt;valaxy博客全局美化教程（七）&lt;/a&gt;：新增网址导航页面&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-8/&#34;&gt;valaxy博客全局美化教程（八）&lt;/a&gt;：页脚倒计时、搜索问题修复&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-9/&#34;&gt;valaxy博客全局美化教程（九）&lt;/a&gt;：新增相册页面，支持使用webdav作为相册&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-10/&#34;&gt;valaxy博客全局美化教程（十）&lt;/a&gt;：修复构建结束的时候会卡住&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;效果预览&#34;&gt;效果预览&lt;/h3&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://r2tc.20030327.xyz/file/%E5%8D%9A%E5%AE%A2/%E6%96%87%E7%AB%A0/1780931408729_1780931382565.png&#34; alt=&#34;&#34;&gt;&#xA;简单介绍一下，我用的时候这个博客没有图片预览，就加了一个，大概效果是这样的，底部有预览栏，可以点击切换，移动端可以滑动切换，支持图片缩放，效果还是不错的，对了，后续有一个相册页面，如果想要加入相册页面的话，这个部分必须得加哦，否则可能会出小问题，因为这两个东西是一起写的，虽然二者的图片预览是单独分开的，但是说不好哦~&lt;/p&gt;</description>
			</item>
			<item>
				<title>valaxy博客全局美化教程（三）</title>
				<link>https://daily.yybb.us/posts/valaxy-3/</link>
				<pubDate>Sat, 30 May 2026 00:00:00 +0000</pubDate>
				<guid>https://daily.yybb.us/posts/valaxy-3/</guid>
				<description>&lt;h3 id=&#34;本系列教程共十篇&#34;&gt;本系列教程共十篇&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-1/&#34;&gt;valaxy博客全局美化教程（一）&lt;/a&gt;：分类、标签、归档三个页面的美化教程&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-2/&#34;&gt;valaxy博客全局美化教程（二）&lt;/a&gt;：首页公告栏美化，新增随机文章展示板块&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;&lt;strong&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-3/&#34;&gt;&lt;em&gt;valaxy博客全局美化教程（三）&lt;/em&gt;&lt;/a&gt;：给网页增加加载动画&lt;/strong&gt;&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-4/&#34;&gt;valaxy博客全局美化教程（四）&lt;/a&gt;：增加图片预览功能&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-5/&#34;&gt;valaxy博客全局美化教程（五）&lt;/a&gt;：友链页面美化，修改了友链样式以及增加留言板&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-6/&#34;&gt;valaxy博客全局美化教程（六）&lt;/a&gt;：留言页面增加信封展开效果&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-7/&#34;&gt;valaxy博客全局美化教程（七）&lt;/a&gt;：新增网址导航页面&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-8/&#34;&gt;valaxy博客全局美化教程（八）&lt;/a&gt;：页脚倒计时、搜索问题修复&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-9/&#34;&gt;valaxy博客全局美化教程（九）&lt;/a&gt;：新增相册页面，支持使用webdav作为相册&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-10/&#34;&gt;valaxy博客全局美化教程（十）&lt;/a&gt;：修复构建结束的时候会卡住&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;效果预览&#34;&gt;效果预览&lt;/h3&gt;&#xA;&lt;p&gt;老规矩，先看效果&#xA;&lt;video width=&#34;600&#34; height=&#34;400&#34; controls&gt;&#xA;&lt;source src=&#34;https://r2tc.20030327.xyz/file/博客/文章/1780930394021_6月8日_compressed.mp4&#34; type=&#34;video/mp4&#34;&gt;&#xA;&lt;/video&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;前置步骤&#34;&gt;前置步骤&lt;/h3&gt;&#xA;&lt;p&gt;本效果基于valaxy内置的&lt;code&gt;foucGuard&lt;/code&gt;服务，需要先开启，全名叫FOUC（Flash of Unstyled Content）防护配置。效果是，通过在 &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; 中内联 &lt;code&gt;body { opacity: 0 !important }&lt;/code&gt; 隐藏页面，并通过 JS 监测所有样式表加载完成后，移除该隐藏样式标签以显示页面，防止首屏样式闪烁和样式分批渲染的问题。&#xA;简单来说就是在你的页面加载完成之前一直白屏，以防加载出乱码来，但是白屏不太美观，所以我加入了加载动画&#xA;先开启服务：&#xA;这是控制该组件的代码&lt;/p&gt;</description>
			</item>
			<item>
				<title>valaxy博客全局美化教程（二）</title>
				<link>https://daily.yybb.us/posts/valaxy-2/</link>
				<pubDate>Fri, 29 May 2026 00:00:00 +0000</pubDate>
				<guid>https://daily.yybb.us/posts/valaxy-2/</guid>
				<description>&lt;h3 id=&#34;本系列教程共十篇&#34;&gt;本系列教程共十篇&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-1/&#34;&gt;valaxy博客全局美化教程（一）&lt;/a&gt;：分类、标签、归档三个页面的美化教程&lt;/li&gt;&#xA;&lt;li&gt;&lt;em&gt;&lt;strong&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-2/&#34;&gt;&lt;em&gt;valaxy博客全局美化教程（二）&lt;/em&gt;&lt;/a&gt;：首页公告栏美化，新增随机文章展示板块&lt;/strong&gt;&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-3/&#34;&gt;valaxy博客全局美化教程（三）&lt;/a&gt;：给网页增加加载动画&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-4/&#34;&gt;valaxy博客全局美化教程（四）&lt;/a&gt;：增加图片预览功能&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-5/&#34;&gt;valaxy博客全局美化教程（五）&lt;/a&gt;：友链页面美化，修改了友链样式以及增加留言板&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-6/&#34;&gt;valaxy博客全局美化教程（六）&lt;/a&gt;：留言页面增加信封展开效果&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-7/&#34;&gt;valaxy博客全局美化教程（七）&lt;/a&gt;：新增网址导航页面&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-8/&#34;&gt;valaxy博客全局美化教程（八）&lt;/a&gt;：页脚倒计时、搜索问题修复&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-9/&#34;&gt;valaxy博客全局美化教程（九）&lt;/a&gt;：新增相册页面，支持使用webdav作为相册&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://daily.yybb.us/posts/valaxy-10/&#34;&gt;valaxy博客全局美化教程（十）&lt;/a&gt;：修复构建结束的时候会卡住&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;最终效果展示&#34;&gt;最终效果展示&lt;/h3&gt;&#xA;&lt;p&gt;老样子，先看看最终效果&#xA;&lt;img src=&#34;https://r2tc.20030327.xyz/file/%E5%8D%9A%E5%AE%A2/%E6%96%87%E7%AB%A0/1780928752080_1780928716520.png&#34; alt=&#34;&#34;&gt;&#xA;左侧部分是公告栏，会自动识别连接，点击跳转，右侧部分是随机文章，会在这部分显示随机文章，并且会随时间自动切换，当然也可以滚轮手动切换&lt;/p&gt;</description>
			</item>
			<item>
				<title>免费域名2-netlib</title>
				<link>https://daily.yybb.us/posts/old-freedomain2/</link>
				<pubDate>Wed, 12 Nov 2025 15:07:35 +0000</pubDate>
				<guid>https://daily.yybb.us/posts/old-freedomain2/</guid>
				<description>&lt;h2 id=&#34;简介&#34;&gt;简介&lt;/h2&gt;&#xA;&lt;p&gt;这次介绍的免费域名服务叫-netlib，介绍说是提供了很多年的免费域名了，还可以托管到cloudflare，实际体验下来确实不错，就是托管到cloudflare的时候成功率随缘，不过跟着本教程走可以大大提高成功率&#xA;先给出&lt;a href=&#34;https://www.netlib.re/&#34;&gt;官网地址&lt;/a&gt;，同时给出官网截图&#xA;&lt;img src=&#34;https://pic1.imgdb.cn/item/69143dd63203f7be00f8b46b.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Cloud Mail-无限邮箱</title>
				<link>https://daily.yybb.us/posts/old-cloud-mail/</link>
				<pubDate>Wed, 12 Nov 2025 15:03:46 +0000</pubDate>
				<guid>https://daily.yybb.us/posts/old-cloud-mail/</guid>
				<description>&lt;p&gt;部署次项目需要一个可以托管在cloudflare的域名，没有的可以参考博主写的免费域名推荐注册一个&lt;/p&gt;&#xA;&lt;h2 id=&#34;简介&#34;&gt;简介&lt;/h2&gt;&#xA;&lt;p&gt;此项目叫&lt;strong&gt;cloud-mail&lt;/strong&gt;，这里附上&lt;a href=&#34;https://github.com/maillab/cloud-mail&#34;&gt;原作者github项目地址&lt;/a&gt;&#xA;这里同时给出原作者发布的&lt;a href=&#34;https://skymail.ink/&#34;&gt;demo&lt;/a&gt;，嫌麻烦的可以直接使用，不过求稳定的话建议还是自己部署一个，因为这个可以设置所有邮件发到指定邮箱，所以使用别人部署的服务的话信息容易泄露，不在乎的当我没说&#xA;来一张网站截图,可以自己选是否开放注册、用户多邮箱功能，所有邮箱邮件发送到指定邮箱等功能&#xA;&lt;img src=&#34;https://pic1.imgdb.cn/item/69144dfc3203f7be00f8d285.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>网页归档工具-Web Archive</title>
				<link>https://daily.yybb.us/posts/old-web-archive/</link>
				<pubDate>Wed, 12 Nov 2025 14:04:09 +0000</pubDate>
				<guid>https://daily.yybb.us/posts/old-web-archive/</guid>
				<description>&lt;h3 id=&#34;简介&#34;&gt;简介&lt;/h3&gt;&#xA;&lt;p&gt;这里先介绍一下-Web Archive，它和最著名的服务“Wayback Machine”（时光机）类似，能够抓取和存档网页，并允许用户在过去的不同时间点查看这些网页的快照。这里附上&lt;a href=&#34;https://github.com/Ray-D-Song/web-archive&#34;&gt;项目开源地址&lt;/a&gt;先&lt;/p&gt;</description>
			</item>
			<item>
				<title>obsidian文章一键分享</title>
				<link>https://daily.yybb.us/posts/old-aiovtue-ob/</link>
				<pubDate>Wed, 20 Aug 2025 00:00:00 +0000</pubDate>
				<guid>https://daily.yybb.us/posts/old-aiovtue-ob/</guid>
				<description>&lt;h1 id=&#34;aiovtue-ob---全栈文章发布平台&#34;&gt;Aiovtue-ob - 全栈文章发布平台&lt;/h1&gt;&#xA;&lt;h5 id=&#34;本项目由-aiovtue-雪-开发&#34;&gt;本项目由 ==&lt;em&gt;&lt;strong&gt;AIOVTUE-雪&lt;/strong&gt;&lt;/em&gt;== 开发&lt;/h5&gt;&#xA;&lt;p&gt;一个基于Cloudflare的全栈解决方案，让您可以轻松地将Obsidian笔记发布到Web平台，支持文章管理、分享和在线编辑。&lt;/p&gt;</description>
			</item>
			<item>
				<title>一些壁纸</title>
				<link>https://daily.yybb.us/gallery/bizhi/</link>
				<pubDate>Mon, 18 Aug 2025 00:00:00 +0000</pubDate>
				<guid>https://daily.yybb.us/gallery/bizhi/</guid>
				<description></description>
			</item>
			<item>
				<title>秘密哦</title>
				<link>https://daily.yybb.us/gallery/jiamio/</link>
				<pubDate>Sun, 15 Jun 2025 00:00:00 +0000</pubDate>
				<guid>https://daily.yybb.us/gallery/jiamio/</guid>
				<description></description>
			</item>
			<item>
				<title>常见邮箱汇总</title>
				<link>https://daily.yybb.us/posts/old-email-collection/</link>
				<pubDate>Wed, 05 Mar 2025 00:00:00 +0000</pubDate>
				<guid>https://daily.yybb.us/posts/old-email-collection/</guid>
				<description>&lt;p&gt;电子邮箱这玩意，用得着的需要挺多的，用不着的那就用不着，管他那，写着，总有人要的&lt;/p&gt;&#xA;&lt;h2 id=&#34;qq邮箱&#34;&gt;QQ邮箱&lt;/h2&gt;&#xA;&lt;p&gt;腾讯旗下的邮箱，用过qq的都知道，这玩意就是你的QQ号，但是吧这玩意纯数字的东西，老被打上底端的标签，不过用过最多知道最广的莫过于这个了&lt;/p&gt;</description>
			</item>
			<item>
				<title>夸克网盘加速</title>
				<link>https://daily.yybb.us/posts/old-quark-speed-up/</link>
				<pubDate>Mon, 03 Mar 2025 00:00:00 +0000</pubDate>
				<guid>https://daily.yybb.us/posts/old-quark-speed-up/</guid>
				<description>&lt;p&gt;众所不周知，我一般发的都是夸克网盘链接，下载速度有点慢，但是也不是没有办法&lt;/p&gt;&#xA;&lt;h3 id=&#34;第一步安装软件&#34;&gt;第一步安装软件&lt;/h3&gt;&#xA;&lt;p&gt;下载这玩意离不开第三方软件，这次要用到的是bitcomet，老样子，下载链接如下&lt;/p&gt;</description>
			</item>
			<item>
				<title>阿里云盘加速</title>
				<link>https://daily.yybb.us/posts/old-alcloud-speed-up/</link>
				<pubDate>Sun, 02 Mar 2025 00:00:00 +0000</pubDate>
				<guid>https://daily.yybb.us/posts/old-alcloud-speed-up/</guid>
				<description>&lt;p&gt;众所周知，网盘这玩意没有一个不限速的，不是限速就是在限速的路上，，阿里云盘这玩意早些说永不限速，emmm，现在速度依旧感人，之所以在用是因为容量比较大，不过没事，今天来一个加速的办法&lt;/p&gt;</description>
			</item>
			<item>
				<title>各类网盘汇总</title>
				<link>https://daily.yybb.us/posts/old-cloudcollection/</link>
				<pubDate>Sat, 01 Mar 2025 00:00:00 +0000</pubDate>
				<guid>https://daily.yybb.us/posts/old-cloudcollection/</guid>
				<description>&lt;p&gt;网盘这玩意在精不在多，推荐几个容量大的常用，小众小容量的备用&lt;/p&gt;&#xA;&lt;h3 id=&#34;百度网盘&#34;&gt;百度网盘&lt;/h3&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://pan.baidu.com/&#34;&gt;百度网盘-免费云盘丨文件共享软件丨超大容量丨存储安全&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;百度网盘这玩意懂得都懂，空间大速度低资源多，分享方便下载困难，最开始的用户注册有3T，后来变成2T，到现在新用户注册只有100G了，emmm问题不大，淘宝上有卖号的，可以买一个容量大的换绑也不是很贵。主要是下载，几百kb，不过淘宝一天会员急用还行，几块钱&lt;/p&gt;</description>
			</item>
			<item>
				<title>免费域名分享</title>
				<link>https://daily.yybb.us/posts/old-freedomain/</link>
				<pubDate>Mon, 09 Sep 2024 00:00:00 +0000</pubDate>
				<guid>https://daily.yybb.us/posts/old-freedomain/</guid>
				<description>&lt;p&gt;搭建网站什么的都需要一个域名，不想付费或者只用一点没必要付费，那免费域名肯定得安排上啊，下面是我自己在网上找到的一些免费域名方案，我自己只在两个地方成功过，其他地方不是绑卡就是申请失败，还有些不支持托管cloudflare，很无奈。&lt;/p&gt;</description>
			</item>
			<item>
				<title>个人博客系统-Rin</title>
				<link>https://daily.yybb.us/posts/old-myblog-rin/</link>
				<pubDate>Sun, 08 Sep 2024 00:00:00 +0000</pubDate>
				<guid>https://daily.yybb.us/posts/old-myblog-rin/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;https://r2tc.20030327.xyz/file/%E5%8D%9A%E5%AE%A2/%E6%96%87%E7%AB%A0/LqvQ7D2x.png&#34; alt=&#34;image|581&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;预览：&lt;a href=&#34;https://bk.yybb.us&#34;&gt;AIOVTUE&amp;rsquo;S blog&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;本博客根据开源博客&lt;a href=&#34;https://github.com/openRin/Rin&#34;&gt;&lt;strong&gt;Rin&lt;/strong&gt;&lt;/a&gt;部署  &lt;/p&gt;&#xA;&lt;p&gt; Rin 是一个基于 Cloudflare Pages + Workers + D1 + R2 全家桶的博客，无需服务器无需备案，只需要一个解析到 Cloudflare 的域名即可部署  &lt;/p&gt;&#xA;&lt;p&gt;我选他的原因也很明显，他可以实现动态博客，不用像一般的静态博客一样，需要本地编译发表文章，他可以直接线上发布，很好用！（你说为什么不直接用动态博客，没有服务器呗），缺点就是，部署稍微麻烦点这里稍微介绍一下难点和大体部署思路：  &lt;/p&gt;</description>
			</item>
			<item>
				<title>玩客云刷机教程</title>
				<link>https://daily.yybb.us/posts/old-wky-flash/</link>
				<pubDate>Thu, 05 Sep 2024 00:00:00 +0000</pubDate>
				<guid>https://daily.yybb.us/posts/old-wky-flash/</guid>
				<description>&lt;h4 id=&#34;一固件下载&#34;&gt;一、&lt;a href=&#34;https://github.com/hzyitc/armbian-onecloud&#34;&gt;固件下载&lt;/a&gt;&lt;/h4&gt;&#xA;&lt;h4 id=&#34;固件版本说明&#34;&gt;固件版本说明&lt;/h4&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;current（推荐）：稳定版，一般指代当前官方推荐的稳定版本，经过了充分的测试和优化，确保兼容性和稳定性较高&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Edge：开发版，一般是让高级用户或开发者提前体验新功能，并提供反馈，包含了最新的功能更新或者实验性特性，但相对稳定性可能会较低，可能存在未知的问题&lt;/p&gt;</description>
			</item>
			<item>
				<title>绘画作品展示</title>
				<link>https://daily.yybb.us/posts/old-painting/</link>
				<pubDate>Wed, 01 May 2024 00:00:00 +0000</pubDate>
				<guid>https://daily.yybb.us/posts/old-painting/</guid>
				<description>&lt;p&gt;这个板块主要记录我画画的路上出现的一些作品，可能不会那么好看，主要做一个记录，当然没有特别备注的不存在版权问题，可以随意使用，但请尊重，不要喷哦&lt;/p&gt;</description>
			</item>
			<item>
				<title>不留下点什么吗</title>
				<link>https://daily.yybb.us/comment/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://daily.yybb.us/comment/</guid>
				<description></description>
			</item>
			<item>
				<title>来加入我们叭</title>
				<link>https://daily.yybb.us/links/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://daily.yybb.us/links/</guid>
				<description></description>
			</item>
			<item>
				<title>搜索</title>
				<link>https://daily.yybb.us/search/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://daily.yybb.us/search/</guid>
				<description></description>
			</item>
	</channel>
</rss>
