Firefly 魔改:时间进度与节假日倒计时组件

Firefly 魔改:时间进度与节假日倒计时组件

年/月/周进度条,搭配节假日倒计时,帮你感知时间的流逝。
AI 迁移提示

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

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

时间进度条是一个让人又爱又恨的小组件——它直观地告诉你这一年、这一个月、这一周已经过去了多少,还贴心地显示距离下一个法定节假日还有几天。

一、功能概览

时间进度条组件

三个维度的进度条:

  • 本年进度 — 今年已经过去了多少天
  • 本月进度 — 本月已经过去了多少天
  • 本周进度 — 本周已经过去了多少天

底部还有法定节假日倒计时。

二、核心实现

组件完整源码

三、注册组件

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 Schedule from "@/components/widget/Schedule.astro";
// ...

同时在 componentMap 中注册:

js
const componentMap = {
    profile: Profile,
    announcement: Announcement,
    categories: Categories,
    tags: Tags,
    // ...
    schedule: Schedule,
    quoteOfTheDay: QuoteOfTheDay,
};

四、注册类型

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

typescript
export type WidgetComponentType =
    | "githubHeatmap"
    | "timeGreeting"
    | "dynamic"
    | "schedule"
    | "quoteOfTheDay";

五、配置方式

sidebarConfig.ts 中注册:

typescript
{
  type: "schedule",
  enable: true,
  position: "sticky",
  showOnPostPage: false,
}

六、相关文件

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

相关源码:olinll/firefly-blog

🔗 最后

这个组件虽然代码不多,但非常实用——把它放在侧边栏或移动端底部,每次浏览博客时瞄一眼,对时间的感知会更强烈。

Firefly 魔改:全局复制事件监听与提示浮层
Firefly 魔改:每日一言侧边栏组件

评论区

评论加载中...