Firefly 魔改:时段问候实时时钟组件

Firefly 魔改:时段问候实时时钟组件

侧边栏实时时钟组件,根据时段自动切换问候语和背景图。
AI 迁移提示

本文由 AI 协助从旧站迁移,尚未完成逐篇人工审校;内容如有疏漏,将在复核后修订。

> 本文部分内容由 AI 辅助整理,已结合实际操作进行校验,请根据自身环境谨慎使用。

一个带有温度感的侧边小组件——显示当前时间、日期、星期,并根据早中晚不同时段切换问候语和背景图片,让博客更有"人味"。

一、功能概览

时段问候组件

主要能力:

  • 实时数字时钟,每分钟自动更新
  • 6 个时段的问候语切换(深夜/早晨/上午/中午/下午/晚上)
  • 每个时段对应不同的图标和随机风景背景图
  • SPA 页面切换时自动恢复运行

二、核心实现

组件完整源码

三、注册组件

src/components/layout/SideBar.astro 中导入:

js
import Advertisement from "@/components/widget/Advertisement.astro";
import Announcement from "@/components/widget/Announcement.astro";
import Calendar from "@/components/widget/Calendar.astro";
// ...
import TimeGreeting from "@/components/widget/TimeGreeting.astro";

同时在 componentMap 中注册:

js
const componentMap = {
    profile: Profile,
    announcement: Announcement,
    categories: Categories,
    // ...
    timeGreeting: TimeGreeting,
    dynamic: Dynamic,
    schedule: Schedule,
    quoteOfTheDay: QuoteOfTheDay,
};

四、注册类型

src/types/sidebarConfig.ts 的类型联合中添加组件名:

typescript
export type WidgetComponentType =
    | "stats"
    | "calendar"
    | "music"
    | "siteInfo"
    | "timeGreeting";

五、配置方式

sidebarConfig.ts 的右侧边栏中配置:

typescript
{
  type: "timeGreeting",
  enable: true,
  position: "top",
  showOnPostPage: false,
}

六、相关文件

组件:/src/components/widget/TimeGreeting.astro

相关源码:olinll/firefly-blog

🔗 最后

这个组件原本是一个简单的时钟,逐步迭代加入了时段问候和随机背景图。如果你想自定义问候语或时段划分,直接在源码中修改即可。

Firefly 魔改:GitHub 贡献热力图侧边栏
Firefly 魔改:Umami Share API 浏览量展示

评论区

评论加载中...