135 Commits

Author SHA1 Message Date
764305d2a2 Update docs and sort content 2025-06-23 02:19:58 +00:00
fb5122e0a6 Update docs and sort content 2025-06-22 14:42:49 +00:00
3048a45b71 Update docs and sort content 2025-06-15 09:10:13 +00:00
eaf435e811 Update docs and sort content 2025-05-18 09:36:23 +00:00
57bd44199d style: 移除 TOCHeading 和 BlogPost 组件中的 # 符号
- 移除 TOCHeading 组件中链接前的 # 符号
- 移除 BlogPost 组件中标题前的 # 符号
2025-05-18 16:59:30 +08:00
64083959b3 feat: 移除页面中的 Tools 组件
- 移除 about 页面中的 Tools 组件
- 移除 index 页面中的 Tools 组件

此更改简化了页面结构,移除了不必要的工具组件。
2025-05-18 16:53:04 +08:00
e411338a9e Update docs and sort content 2025-05-18 08:51:47 +00:00
c89211f135 Update docs and sort content 2025-05-18 08:49:38 +00:00
dc99617273 Update docs and sort content 2025-05-10 17:28:56 +00:00
b0dc31c51b Update docs and sort content 2025-05-10 16:37:32 +00:00
4d1c6b9b3a Update docs and sort content 2025-05-10 15:25:25 +00:00
ff2bb77707 feat: 更新自我介绍页面
- 更改自我介绍内容为 "前端 / 吉他 / 摄影 / 追星"
- 移除旧的介绍文字和外部链接
2025-04-30 12:50:18 +08:00
f0752c8a1a feat: 添加Umami分析
- 集成Umami进行网站分析
- 添加Umami跟踪脚本
2025-04-30 12:37:07 +08:00
f05b886396 Update docs and sort content 2025-04-29 07:00:53 +00:00
48f3227688 Update docs and sort content 2025-04-29 06:54:11 +00:00
77ae882b43 Update docs and sort content 2025-04-29 06:53:56 +00:00
9c0973638a Update docs and sort content 2025-04-29 06:53:35 +00:00
a1275593b9 Update docs and sort content 2025-04-29 06:48:38 +00:00
262b6ed3ab Update docs and sort content 2025-04-29 06:39:39 +00:00
8ba6f6e413 Update docs and sort content 2025-04-28 16:30:58 +00:00
d652a45c13 Update docs and sort content 2025-04-28 16:25:32 +00:00
c15c556c06 Update docs and sort content 2025-04-24 03:51:25 +00:00
b63c52df9e Update docs and sort content 2025-04-21 14:52:49 +00:00
ec402ffbfe feat: 显示标签和分类的数量 2025-04-15 17:26:00 +08:00
a1fc14d838 feat: 修改分页大小以匹配全局配置 2025-04-15 16:46:46 +08:00
ece753d46b Merge branch 'main' of https://github.com/KazooTTT/kazoottt-blog-v2 2025-04-15 16:43:48 +08:00
e271a2efd9 chore: 修改每页最大文章数为100 2025-04-15 16:43:46 +08:00
bd2f5178ce Update docs and sort content 2025-04-10 15:25:09 +00:00
a4d4ad6b93 docs: update self-intro content for clarity and context 2025-04-10 18:18:44 +08:00
c834969703 Update docs and sort content 2025-04-09 04:17:02 +00:00
97ce476651 Merge branch 'main' of https://github.com/KazooTTT/kazoottt-blog-v2 2025-04-09 12:12:59 +08:00
ea0268259d docs: remove notes 2025-04-09 12:12:48 +08:00
f343d4d18c Update docs and sort content 2025-04-09 04:03:54 +00:00
37d80c7d79 Merge branch 'main' of https://github.com/KazooTTT/kazoottt-blog-v2 2025-04-07 13:12:56 +08:00
0a72b399ce feat(social-list): 更新社交链接列表
- 移除Bilibili链接
- 更新YouTube链接
- 添加RSS链接

此次修改更新了社交链接列表,移除了不再使用的Bilibili链接,更新了YouTube链接,并添加了RSS链接。
2025-04-07 13:12:54 +08:00
ebe5cc59a5 Update docs and sort content 2025-04-05 16:53:32 +00:00
1f48dedb16 feat: 首页增加查看更多文章的链接
- 在首页的文章列表下方添加了一个“查看更多 →”的链接,指向 /posts/ 页面,方便用户浏览所有文章。
2025-04-02 12:40:09 +08:00
1a49d28395 docs: 更新自我介绍
- 简化自我介绍,只保留最基本的信息
2025-04-02 11:55:00 +08:00
827e6eeadf fix(date): replace Beijing time conversion with GMT conversion 2025-04-01 23:21:59 +08:00
f816128ccc Update docs and sort content 2025-04-01 15:06:36 +00:00
054047e2b4 Merge branch 'main' of https://github.com/KazooTTT/kazoottt-blog-v2 2025-04-01 22:31:38 +08:00
baee12dd9f style: 修改标题和样式
- 修改网站标题为 "KazooTTT 博客"
- 修改头部导航栏样式,使页面更加美观
2025-04-01 22:31:36 +08:00
10cc40f869 Update docs and sort content 2025-04-01 14:24:23 +00:00
6aed3ff17c feat(rss): RSS 时间转换为北京时间
- 将 RSS 源中的时间转换为北京时间,保证时区正确。
- 使用 `convertToBeijingTime` 函数进行转换。
2025-04-01 22:22:39 +08:00
3a4364976c Update docs and sort content 2025-04-01 13:54:08 +00:00
7463daefe7 Update docs and sort content 2025-04-01 13:46:21 +00:00
fa9ab1a4bc chore: 移除首页的笔记模块
- 移除首页的笔记模块,因为笔记功能暂时不使用
- 修改了README中的链接格式,使用plaintext
- 修改了menuLinks,注释掉了notes
2025-04-01 17:09:42 +08:00
75da123e09 chore: no pnpm lock 2025-03-28 21:17:46 +08:00
c03e9c6658 feat: 首页增加关于我的信息,更新依赖
- 首页增加个人简介和wakatime代码时间
- 更新pnpm版本
- 移除about页面,精简导航栏
- 增加最近更新组件,在归档页展示
- 移除notes的index
2025-03-28 21:13:04 +08:00
b5dd9d1f84 Update docs and sort content 2025-03-27 06:17:24 +00:00
ee9a8e4b0a Update docs and sort content 2025-03-27 06:01:12 +00:00
4c96c80101 Update README.md 2025-03-25 18:02:26 +08:00
fa09ed5bc1 Updated with the latest blog posts 2025-03-24 16:04:46 +00:00
07d4fcbc19 Update docs and sort content 2025-03-24 16:01:14 +00:00
a563602baf Updated with the latest blog posts 2025-03-24 15:04:26 +00:00
a7f416df4f docs: 添加个人歌词本链接到自我介绍页 2025-03-24 22:54:18 +08:00
6dfdcc2234 Update docs and sort content 2025-03-24 14:31:49 +00:00
c3ff39ab6e Update docs and sort content 2025-03-24 13:30:59 +00:00
e4d7129465 Update docs and sort content 2025-03-24 13:14:37 +00:00
c8c0250793 Updated with the latest blog posts 2025-03-24 13:10:24 +00:00
73d962248a Update docs and sort content 2025-03-24 12:44:10 +00:00
0149481062 feat: 添加自我介绍组件并将其集成到主页和关于页面 2025-03-24 18:41:57 +08:00
f3547b2e51 Update docs and sort content 2025-03-20 10:18:04 +00:00
ed3119e37d Updated with the latest blog posts 2025-03-20 10:04:44 +00:00
723151fad0 Update docs and sort content 2025-03-20 09:20:37 +00:00
befe3b6f11 Updated with the latest blog posts 2025-03-20 09:04:15 +00:00
433d2f1152 Update docs and sort content 2025-03-20 08:57:34 +00:00
207d923ee7 style: 优化文章图片加载样式 2025-03-20 14:13:16 +08:00
535082b945 Updated with the latest blog posts 2025-03-20 06:05:34 +00:00
cc89da80d8 Update docs and sort content 2025-03-20 05:56:54 +00:00
0c8cae5bea Update docs and sort content 2025-03-20 05:37:01 +00:00
f8e73888d1 Updated with the latest blog posts 2025-03-15 23:03:39 +00:00
53487b36e7 Updated with the latest blog posts 2025-03-15 22:03:42 +00:00
6a3b085635 Updated with the latest blog posts 2025-03-15 21:03:38 +00:00
85ac5bcda1 Updated with the latest blog posts 2025-03-15 20:03:55 +00:00
1b16e54e09 Updated with the latest blog posts 2025-03-15 19:03:28 +00:00
4705878c1d Updated with the latest blog posts 2025-03-15 18:04:36 +00:00
e31323397b Updated with the latest blog posts 2025-03-15 17:03:33 +00:00
b5502d4cbe Updated with the latest blog posts 2025-03-15 16:03:55 +00:00
09b8958141 Update docs and sort content 2025-03-15 15:52:35 +00:00
ac1173786f Update docs and sort content 2025-03-15 15:49:05 +00:00
55040baff5 Updated with the latest blog posts 2025-03-07 02:28:28 +00:00
b2b1ba6dcd Update docs and sort content 2025-03-07 02:21:53 +00:00
66ec490344 Updated with the latest blog posts 2025-03-06 08:05:05 +00:00
39652a9e90 Update docs and sort content 2025-03-06 07:27:17 +00:00
4feb5e95af fix: 修复归档页面链接生成错误
-   修复归档页面中文章链接生成错误的问题
-   根据文章类型(post或note)动态生成链接,将post指向/posts/,note指向/notes/
2025-03-06 15:18:16 +08:00
a9879a68b1 Update docs and sort content 2025-03-06 07:11:30 +00:00
8e7273da0c Updated with the latest blog posts 2025-03-05 10:04:10 +00:00
807cf650f8 Updated with the latest blog posts 2025-03-05 09:04:09 +00:00
b7bf1eab35 style(footer): 调整页脚链接样式以支持折行
- 修改页脚链接的 flex 布局,从 `gap-x-2 sm:gap-x-0` 改为 `flex-wrap gap-x-2 sm:gap-x-0`,使其支持折行。
- 调整链接的内边距,在小屏幕上使用 `px-2 py-2`,在大屏幕上使用 `sm:px-4 sm:py-0`,以优化在小屏幕上的显示效果。
2025-03-05 16:36:49 +08:00
b931b14013 fix(notes): 移除多余的预览链接
- 移除 `/notes/[...page].astro` 中多余的预览链接。
2025-03-05 16:16:30 +08:00
e123d5928a Merge branch 'main' of https://github.com/KazooTTT/kazoottt-blog-v2 2025-03-05 16:14:59 +08:00
e6a88b73af feat(blog): 重构文章和笔记展示,优化分类和标签 2025-03-05 16:14:05 +08:00
c36acc92c6 Updated with the latest blog posts 2025-03-05 08:05:01 +00:00
79e12689c9 Updated with the latest blog posts 2025-03-05 07:04:08 +00:00
013ede32a4 Merge branch 'main' of https://github.com/KazooTTT/kazoottt-blog-v2 2025-03-05 14:26:11 +08:00
ee3068bc18 fix: 移动 ads.txt 文件 2025-03-05 14:26:06 +08:00
99b2d194bb Updated with the latest blog posts 2025-03-04 12:06:14 +00:00
f37e2a10bb Update docs and sort content 2025-03-04 11:07:00 +00:00
ca268a37dc Update docs and sort content 2025-03-04 07:57:37 +00:00
1a40d05221 Updated with the latest blog posts 2025-03-04 07:04:09 +00:00
f5085a2490 Updated with the latest blog posts 2025-03-04 07:04:06 +00:00
0fc8c6cb80 feat(content): 支持内容集合中可选的日期字段 2025-03-04 14:08:17 +08:00
5a7c9eced0 Updated with the latest blog posts 2025-03-04 06:05:10 +00:00
45bbf23dbc Update docs and sort content 2025-03-04 05:52:40 +00:00
66cbee31df Updated with the latest blog posts 2025-03-03 09:04:49 +00:00
ae886f5596 Updated with the latest blog posts 2025-03-03 08:05:41 +00:00
fcf0f24937 Updated with the latest blog posts 2025-03-03 07:04:17 +00:00
10abfc34a7 Update docs and sort content 2025-03-03 06:20:42 +00:00
c5eca7b064 Update docs and sort content 2025-03-03 06:12:56 +00:00
6b7e3f1b70 Update docs and sort content 2025-03-03 06:00:44 +00:00
c12699b65c Update docs and sort content 2025-03-03 05:48:17 +00:00
937eee5627 Update docs and sort content 2025-03-03 03:51:30 +00:00
6dee4650b9 Updated with the latest blog posts 2025-02-28 02:27:51 +00:00
0e9ad45b65 Update main.yml 2025-02-28 10:20:08 +08:00
fd1bbcbf21 Updated with the latest blog posts 2025-02-27 07:03:59 +00:00
47473a34f9 Update docs and sort content 2025-02-27 06:27:49 +00:00
fdd2768e0c Update docs and sort content 2025-02-25 03:56:48 +00:00
57ee25f4f3 fix: add number type parse 2025-02-25 11:55:07 +08:00
58f4e095b5 Update docs and sort content 2025-02-25 03:25:15 +00:00
64383959c0 Update docs and sort content 2025-02-24 15:37:36 +00:00
bb1b0eaa5b Updated with the latest blog posts 2025-02-24 08:05:39 +00:00
2bfda8024b Updated with the latest blog posts 2025-02-24 07:04:21 +00:00
0cf1cbb56a Update docs and sort content 2025-02-24 06:33:22 +00:00
e2e98f9cc7 feat: update rss config 2025-02-24 14:19:48 +08:00
c037d61e49 Merge branch 'main' of https://github.com/KazooTTT/kazoottt-blog-v2 2025-02-24 14:05:41 +08:00
ab931dd953 fix: update feed id for notes 2025-02-24 14:05:37 +08:00
0eba98f263 Updated with the latest blog posts 2025-02-24 06:05:32 +00:00
50d4e72216 fix: 修复未分类的筛选 2025-02-24 13:38:26 +08:00
b3004795f0 Updated with the latest blog posts 2025-02-23 19:03:14 +00:00
92aa02ed46 Updated with the latest blog posts 2025-02-23 18:04:30 +00:00
e7d79d1733 Updated with the latest blog posts 2025-02-23 17:03:34 +00:00
f5a8cd1a06 Update docs and sort content 2025-02-23 16:16:20 +00:00
e5a5192922 Update docs and sort content 2025-02-23 16:12:23 +00:00
7037b5a0fb Update docs and sort content 2025-02-23 16:07:15 +00:00
275 changed files with 3650 additions and 14847 deletions

View File

@ -14,7 +14,7 @@ jobs:
- name: Pull in dev.to posts
uses: gautamkrishnar/blog-post-workflow@v1
with:
template: $newline - [$date 【$categories】 $title]($url)
template: $newline - [$date $title]($url)
date_format: "yyyy-mm-dd"
feed_list: "https://blog.kazoottt.top/rss.xml"
max_post_count: 25

View File

@ -1,52 +1,13 @@
# KazooTTT | 声控烤箱 博客
# KazooTTT 博客
## [Blog](https://blog.kazoottt.top/posts/)
<!-- BLOG-POST-LIST:START -->
- [2025-02-21 【碎片】 rsshub中新增asianfanfics路由](https://blog.kazoottt.top/posts/fragmented-notes-2025-02-21-16-38-50/)
- [2025-02-20 【碎片】 openwebui长时间白屏解决方案](https://blog.kazoottt.top/posts/openwebui-long-loading-white-screen-solution/)
- [2025-02-16 【周报】 2025-W07](https://blog.kazoottt.top/posts/2025-W07/)
- [2025-02-12 【脑洞】 处理markdown图片链接包含空格导致无法预览图片的问题](https://blog.kazoottt.top/posts/handling-markdown-image-links-containing-spaces-causing-preview-failures/)
- [2025-02-09 【周报】 2025-W06](https://blog.kazoottt.top/posts/2025-W06/)
- [2025-02-09 【前端】 不引入astro wiki plugin实现链接跳转的思路](https://blog.kazoottt.top/posts/redirect-links-without-astro-wiki-plugin/)
- [2025-02-06 【软件】 Obsidian Web Clipper 离线阅读同人作品](https://blog.kazoottt.top/posts/obsidian-web-clipper-offline-reading-fanfics/)
- [2025-02-01 【软件】 封面生成器推荐](https://blog.kazoottt.top/posts/cover-generator/)
- [2025-01-30 【年报】 Y5-2024年度总结](https://blog.kazoottt.top/posts/2024-annual-summary/)
- [2025-01-14 【frontend】 how to generate the path like router config in vite + react + react-router project](https://blog.kazoottt.top/posts/how-to-generate-the-path-like-router-config-in-vite-react-react-router-project/)
- [2025-01-12 【随笔】 原来亲人在侧,是我最深重的感谢](https://blog.kazoottt.top/posts/plain-and-simple-is-true/)
- [2025-01-07 【随笔】 ollama + excel 处理器开发总结](https://blog.kazoottt.top/posts/ollama-excel-processor-development-summary/)
- [2025-01-06 【项目】 MUV家元旦24H限定食堂 - 汇总网站](https://blog.kazoottt.top/posts/milklovemuv/)
- [2024-12-19 【推荐】 值得一看的博客](https://blog.kazoottt.top/posts/blogs-worth-reading/)
- [2024-12-18 【】 与hanser有关的github仓库](https://blog.kazoottt.top/posts/hanser-repository/)
- [2024-12-17 【】 Share My Incorrect Usage Cases of Zustand](https://blog.kazoottt.top/posts/share-my-incorrect-usage-case-of-zustand-en/)
- [2024-12-17 【前端】 分享一下我的zustand错误使用案例](https://blog.kazoottt.top/posts/zustand-use-record/)
- [2024-12-11 【】 raycast + imessage 2famessauto的半平替](https://blog.kazoottt.top/posts/raycast-imessage-2fa/)
- [2024-11-29 【】 使用github action定时同步obsidian内容到astro博客仓库](https://blog.kazoottt.top/posts/synchronize-profiles-to-remote-and-local-on-a-regular-basis/)
- [2024-11-23 【软件】 个人工具与设备清单202502](https://blog.kazoottt.top/posts/personal-tools-and-equipment-inventory-202502/)
- [2024-11-12 【旅行】 五一 上海-重庆-成都流水账](https://blog.kazoottt.top/posts/may-1st-shanghai-chongqing-chengdu-flow-account/)
- [2024-09-02 【旅行】 2024 小缘永不完结的冒险 武汉线下vlog](https://blog.kazoottt.top/posts/yukari-2024-live/)
- [2024-07-30 【项目】 微信读书网页版复制快捷键](https://blog.kazoottt.top/posts/wechat-reading-web-version-copy-shortcut/)
- [2024-07-17 【旅行】 2024 BW记录-个人向流水账版](https://blog.kazoottt.top/posts/bw-record-personal-notes/)
- [2024-07-11 【周报】 2024-W03](https://blog.kazoottt.top/posts/2024-W03/)<!-- BLOG-POST-LIST:END -->
## 关于我
## [Memos](https://blog.kazoottt.top/notes/)
<!-- MEMO-POST-LIST:START -->
- [2025-02-21 配置 cloudflare 规则实现重定向](https://blog.kazoottt.top/notes/fragmented-notes-2025-02-21-15-44-58/)
- [2025-02-19 241029 1144 vite环境变量](https://blog.kazoottt.top/notes/fragmented-notes-2025-02-19-21-11-25/)
- [2025-02-19 碎片-2025-02-19 17时30分 You Should Use Hono in your Next Projec](https://blog.kazoottt.top/notes/fragmented-notes-2025-02-19-17-30-55/)
- [2025-02-17 碎片-2025-02-17 10时55分 做事设计](https://blog.kazoottt.top/notes/fragmented-notes-2025-02-17-10-55-29/)
- [2025-02-16 2024-10-25 13分02秒 Vintage Camera Lab](https://blog.kazoottt.top/notes/fragmented-notes-2025-02-16-23-41-18/)
- [2025-02-14 碎片-2025-02-14 15时00分 状态没变更记录一次没阻止冒泡导致的bug](https://blog.kazoottt.top/notes/fragmented-notes-2025-02-14-15-00-49/)
- [2025-02-14 碎片-2025-02-14 15时18分 飞书 excalidraw画图对比](https://blog.kazoottt.top/notes/fragmented-notes-2025-02-14-15-18-56/)
- [2025-02-11 碎片-2025-02-11 12时32分](https://blog.kazoottt.top/notes/fragmented-notes-2025-02-11-12-32-42/)
- [2025-02-08 如何解决 Nginx 启动时未联网无法访问DNS而挂掉的问题](https://blog.kazoottt.top/notes/nginx-startup-fix-configure-local-hosts-file/)
- [2025-02-06 小红书长文切图笔记?其实 craft 就可以实现。](https://blog.kazoottt.top/notes/use-craft-to-cut-the-long-text-note-of-xiaohongshu/)
- [2025-02-06 试试action5 pro推流到本地rtmp和有线连接的效果](https://blog.kazoottt.top/notes/action5-pro-obs-rtmp/)
- [2025-02-05 askfm的关停](https://blog.kazoottt.top/notes/askfm-shutdown/)
- [2025-02-05 使用 1password 的 secure notes 存储提示词](https://blog.kazoottt.top/notes/use-1password-secure-notes-to-store-prompt-templates/)
- [2025-02-03 记录一次滴滴打车维权](https://blog.kazoottt.top/notes/record-a-ride-sharing-complaint/)
- [2025-01-31 Blender on macOS - Steam Version Limitations for Apple Silicon Devices](https://blog.kazoottt.top/notes/blender-macos-steam-version-limitations/)
- [2025-01-31 how to split window in blender](https://blog.kazoottt.top/notes/split-window-in-blender/)
- [2025-01-20 how to separate object in blender](https://blog.kazoottt.top/notes/how-to-separate-object-in-blender/)
- [2025-01-20 win11如何下载chatgpt](https://blog.kazoottt.top/notes/win11chatgpt/)
- [2025-01-15 how to make a hollow cylinder in blender](https://blog.kazoottt.top/notes/how-to-make-a-hollow-cylinder-in-blender/)
- [2025-01-07 在浏览器中 opengl 的配置与检测](https://blog.kazoottt.top/notes/how-to-check-opengl-configuration-and-detection-in-browser/)<!-- MEMO-POST-LIST:END -->
无论是博客还是笔记,最重要的服务对象是我自己。
[平台合集](https://bento.me/kazoottt)
[个人博客Blog](https://blog.kazoottt.top/)
[个人笔记 Notes](https://notes.kazoottt.top/)
[GitHub](https://github.com/KazooTTT)

View File

@ -68,5 +68,6 @@
"reading-time": "^1.5.0",
"tailwindcss": "4.0.7",
"typescript": "^5.7.3"
}
},
"packageManager": "pnpm@10.7.0+sha512.6b865ad4b62a1d9842b61d674a393903b871d9244954f652b8842c2b553c72176b278f64c463e52d40fff8aba385c235c8c9ecf5cc7de4fd78b8bb6d49633ab6"
}

7767
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 437 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 184 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 663 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 458 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 218 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 603 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 317 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 560 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 459 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 191 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 356 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 241 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 249 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 241 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 281 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 788 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 455 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 478 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

View File

@ -61,19 +61,16 @@ const { className = "", dataPagefindBody = true } = Astro.props;
/* 修改图片相关样式 */
:global(article img) {
opacity: 0;
position: relative;
background-color: #f0f0f0;
transition: all 0.5s ease-in-out;
}
:global(article img.loading) {
opacity: 1;
filter: blur(10px);
}
:global(article img.loaded) {
opacity: 1;
filter: blur(0);
}
</style>

View File

@ -121,6 +121,11 @@ const socialImageURL = new URL(ogImage ? ogImage : "/social-card.png", Astro.url
})(window, document, "clarity", "script", "kvbyuhu6d2");
</script>
<script
defer
src="https://cloud.umami.is/script.js"
data-website-id="247d7726-70c1-46fd-9453-fbe95630c3d6"></script>
<meta content={Astro.generator} name="generator" />
<style is:global>

View File

@ -0,0 +1,30 @@
---
import { getAllCollectionPosts } from "@/data/post";
import { MAX_LATEST_POSTS } from "@/utils/constant";
import { getLatestUpdatedPost } from "@/utils/date";
const allPosts = await getAllCollectionPosts();
const latestUpdatedPost = allPosts.sort(getLatestUpdatedPost).slice(0, MAX_LATEST_POSTS);
---
{
(
<div>
<h2 class="title mb-4 flex items-center gap-2 text-lg">
<a class="">最近更新</a>
</h2>
<ul class="flex flex-wrap gap-2">
{latestUpdatedPost.map((post) => (
<li>
<a
href={`${post.collection === "post" ? "/posts/" : "/notes/"}${post.id}/`}
class="hover:text-link"
>
<span>{post.data.date_modified.toLocaleDateString()}</span>
{post.data.title}
</a>
</li>
))}
</ul>
</div>
)
}

View File

@ -1,7 +1,7 @@
---
import { Icon } from "astro-icon/components";
/**
/**
Uses https://www.astroicon.dev/getting-started/
Find icons via guide: https://www.astroicon.dev/guides/customization/#open-source-icon-sets
Only installed pack is: @iconify-json/mdi
@ -27,14 +27,9 @@ const socialLinks: {
link: "https://x.com/kazoottt",
name: "mdi:twitter",
},
{
friendlyName: "Bilibili",
link: "https://space.bilibili.com/391236013",
name: "mdi:video",
},
{
friendlyName: "YouTube",
link: "https://www.youtube.com/@kazoottt4718",
link: "https://www.youtube.com/@kazoottt255",
name: "mdi:youtube",
},
{
@ -47,6 +42,11 @@ const socialLinks: {
link: "https://bento.me/KazooTTT",
name: "mdi:open-in-new",
},
{
friendlyName: "rss",
link: "https://blog.kazoottt.top/rss.xml",
name: "mdi:rss-box",
},
];
---

View File

@ -1,18 +1,18 @@
---
import type { CollectionEntry } from "astro:content";
import FormattedDate from "@/components/FormattedDate.astro";
import Card from "../componentsBefore/Card.astro";
import { Icon } from "astro-icon/components";
import Label from "../componentsBefore/Label.astro";
import type { PostItem } from "@/types";
interface Props {
content: CollectionEntry<"post">;
content: PostItem;
readingTime: string;
ogImage: string;
}
const {
content: { data },
content: { data, dateToCmp },
readingTime,
ogImage,
} = Astro.props;
@ -27,13 +27,7 @@ const socialImageURL = new URL(ogImage ? ogImage : "/social-card.png", Astro.url
{
socialImageURL && (
<div class="mb-6 aspect-video">
<img
alt={socialImageURL}
class="rounded-lg object-cover"
fetchpriority="high"
loading="eager"
src={socialImageURL}
/>
<img alt={socialImageURL} class="rounded-lg object-cover" src={socialImageURL} />
</div>
)
}
@ -54,7 +48,7 @@ const socialImageURL = new URL(ogImage ? ogImage : "/social-card.png", Astro.url
</h1>
<div class="flex flex-wrap items-center gap-x-3 gap-y-2">
<p class="font-semibold">
<FormattedDate date={data.date} dateTimeOptions={dateTimeOptions} /> /{" "}
<FormattedDate date={dateToCmp} dateTimeOptions={dateTimeOptions} /> /{" "}
{readingTime}
</p>
{

View File

@ -1,10 +1,10 @@
---
import type { CollectionEntry } from "astro:content";
import FormattedDate from "@/components/FormattedDate.astro";
import type { HTMLTag, Polymorphic } from "astro/types";
import type { AllItem } from "@/types";
type Props<Tag extends HTMLTag> = Polymorphic<{ as: Tag }> & {
post: CollectionEntry<"post">;
post: AllItem;
withDesc?: boolean;
};
@ -17,7 +17,11 @@ const { as: Tag = "div", post, withDesc = false } = Astro.props;
/>
<Tag>
{post.data.draft && <span class="text-red-500">(Draft) </span>}
<a class="cactus-link" data-astro-prefetch href={`/posts/${post.id}/`}>
<a
class="hover:text-link"
data-astro-prefetch
href={`${post.collection === "post" ? "/posts/" : "/notes/"}${post.id}/`}
>
{post.data.fixedToTop && <span class="text-accent-2 mr-2">*</span>}
{post.data.title}
</a>

View File

@ -13,7 +13,7 @@ const {
<li class={`${depth > 2 ? "ms-2" : ""}`}>
<a
class={`line-clamp-2 hover:text-accent ${depth <= 2 ? "mt-3" : "mt-2 text-xs"}`}
href={`#${slug}`}><span aria-hidden="true" class="me-0.5">#</span>{text}</a
href={`#${slug}`}><span aria-hidden="true" class="me-0.5"></span>{text}</a
>
{
!!children.length && (

View File

@ -1,111 +1,111 @@
---
import kazootttAvatar from '../../assets/kazoottt-avatar.jpeg'
import { Image } from 'astro:assets'
import kazootttAvatar from "../../assets/kazoottt-avatar.jpeg";
import { Image } from "astro:assets";
---
<header class='fixed left-0 right-0 top-0 z-50 bg-white shadow-sm dark:bg-gray-800'>
<header class="fixed top-0 right-0 left-0 z-50 bg-white shadow-sm dark:bg-gray-800">
<nav
class='mx-auto flex w-full items-center justify-between px-4 py-3 lg:flex lg:w-3/5 lg:w-4/5 lg:items-center'
aria-label='global'
class="mx-auto flex w-full items-center justify-between px-4 py-3 lg:flex lg:w-3/5 lg:w-4/5 lg:items-center"
aria-label="global"
>
<a class='flex items-center' href='/'>
<a class="flex items-center" href="/">
<Image
src={kazootttAvatar}
alt='profile photo'
class='mr-2 h-8 w-auto rounded-full lg:hidden'
loading='eager'
alt="profile photo"
class="mr-2 h-8 w-auto rounded-full lg:hidden"
loading="eager"
/>
<div class='hidden flex-none text-xl font-semibold lg:block' aria-label='Brand'>声控烤箱</div>
<div class="hidden flex-none text-xl font-semibold lg:block" aria-label="Brand">KazooTTT</div>
</a>
<!-- Mobile menu button -->
<button
id='mobileMenuButton'
class='rounded-md p-2 hover:bg-border lg:hidden'
aria-label='Toggle mobile menu'
id="mobileMenuButton"
class="hover:bg-border rounded-md p-2 lg:hidden"
aria-label="Toggle mobile menu"
>
<svg
xmlns='http://www.w3.org/2000/svg'
width='24'
height='24'
viewBox='0 0 24 24'
class='h-6 w-6'
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
class="h-6 w-6"
>
<path fill='currentColor' d='M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z'></path>
<path fill="currentColor" d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"></path>
</svg>
</button>
<!-- Desktop Navigation -->
<div class='hidden flex-row items-center justify-center gap-x-7 lg:flex'>
<div class='relative'>
<div class="hidden flex-row items-center justify-center gap-x-7 lg:flex">
<div class="relative">
<a
href='/blog'
class={`peer flex items-center text-[1.05rem] font-medium ${Astro.url.pathname.startsWith('/blog') ? 'text-green-400' : ''}`}
aria-label='Blog Menu'
href="/blog"
class={`peer flex items-center text-[1.05rem] font-medium ${Astro.url.pathname.startsWith("/blog") ? "text-green-400" : ""}`}
aria-label="Blog Menu"
>
Blog
<svg
xmlns='http://www.w3.org/2000/svg'
width='20'
height='20'
viewBox='0 0 24 24'
class='ml-1 transform transition-transform duration-200 peer-hover:rotate-180'
xmlns="http://www.w3.org/2000/svg"
width="20"
height="20"
viewBox="0 0 24 24"
class="ml-1 transform transition-transform duration-200 peer-hover:rotate-180"
>
<path fill='currentColor' d='m12 15l-5-5h10z'></path>
<path fill="currentColor" d="m12 15l-5-5h10z"></path>
</svg>
</a>
<div
class='invisible absolute left-0 mt-2 w-48 rounded-md bg-white py-2 opacity-0 shadow-lg transition-all duration-200 hover:visible hover:opacity-100 peer-hover:visible peer-hover:opacity-100 dark:bg-gray-800'
class="invisible absolute left-0 mt-2 w-48 rounded-md bg-white py-2 opacity-0 shadow-lg transition-all duration-200 peer-hover:visible peer-hover:opacity-100 hover:visible hover:opacity-100 dark:bg-gray-800"
>
<a
href='/categories'
class={`block px-6 py-3 text-[1.05rem] font-medium transition-colors hover:bg-gray-100 ${Astro.url.pathname.startsWith('/categories') ? 'text-green-400' : ''} dark:hover:bg-gray-700`}
aria-label='Categories Page'
href="/categories"
class={`block px-6 py-3 text-[1.05rem] font-medium transition-colors hover:bg-gray-100 ${Astro.url.pathname.startsWith("/categories") ? "text-green-400" : ""} dark:hover:bg-gray-700`}
aria-label="Categories Page"
>
Categories
</a>
<a
href='/tags'
class={`block px-6 py-3 text-[1.05rem] font-medium transition-colors hover:bg-gray-100 ${Astro.url.pathname.startsWith('/tags') ? 'text-green-400' : ''} dark:hover:bg-gray-700`}
aria-label='Tags Page'
href="/tags"
class={`block px-6 py-3 text-[1.05rem] font-medium transition-colors hover:bg-gray-100 ${Astro.url.pathname.startsWith("/tags") ? "text-green-400" : ""} dark:hover:bg-gray-700`}
aria-label="Tags Page"
>
Tags
</a>
<a
href='/diary'
class={`block px-6 py-3 text-[1.05rem] font-medium transition-colors hover:bg-gray-100 ${Astro.url.pathname.startsWith('/diary') ? 'text-green-400' : ''} dark:hover:bg-gray-700`}
aria-label='Diary Page'
href="/diary"
class={`block px-6 py-3 text-[1.05rem] font-medium transition-colors hover:bg-gray-100 ${Astro.url.pathname.startsWith("/diary") ? "text-green-400" : ""} dark:hover:bg-gray-700`}
aria-label="Diary Page"
>
Diary
</a>
</div>
</div>
<a
href='/tools'
class={`flex-none text-[1.05rem] font-medium ${Astro.url.pathname.startsWith('/tools') ? 'text-green-400' : ''}`}
aria-label='Nav Menu Item'
href="/tools"
class={`flex-none text-[1.05rem] font-medium ${Astro.url.pathname.startsWith("/tools") ? "text-green-400" : ""}`}
aria-label="Nav Menu Item"
>Tools
</a>
<div class='relative'>
<button class='peer flex items-center text-[1.05rem] font-medium' aria-label='More Menu'>
<div class="relative">
<button class="peer flex items-center text-[1.05rem] font-medium" aria-label="More Menu">
More
<svg
xmlns='http://www.w3.org/2000/svg'
width='20'
height='20'
viewBox='0 0 24 24'
class='ml-1 transform transition-transform duration-200 peer-hover:rotate-180'
xmlns="http://www.w3.org/2000/svg"
width="20"
height="20"
viewBox="0 0 24 24"
class="ml-1 transform transition-transform duration-200 peer-hover:rotate-180"
>
<path fill='currentColor' d='m12 15l-5-5h10z'></path>
<path fill="currentColor" d="m12 15l-5-5h10z"></path>
</svg>
</button>
<div
class='invisible absolute right-0 mt-2 w-48 rounded-md bg-white py-2 opacity-0 shadow-lg transition-all duration-200 hover:visible hover:opacity-100 peer-hover:visible peer-hover:opacity-100 dark:bg-gray-800'
class="invisible absolute right-0 mt-2 w-48 rounded-md bg-white py-2 opacity-0 shadow-lg transition-all duration-200 peer-hover:visible peer-hover:opacity-100 hover:visible hover:opacity-100 dark:bg-gray-800"
>
<a
href='/friends'
class={`block px-6 py-3 text-[1.05rem] font-medium transition-colors hover:bg-gray-100 ${Astro.url.pathname.startsWith('/friends') ? 'text-green-400' : ''} dark:hover:bg-gray-700`}
aria-label='Friends Page'
href="/friends"
class={`block px-6 py-3 text-[1.05rem] font-medium transition-colors hover:bg-gray-100 ${Astro.url.pathname.startsWith("/friends") ? "text-green-400" : ""} dark:hover:bg-gray-700`}
aria-label="Friends Page"
>
Friends
</a>
@ -113,30 +113,30 @@ import { Image } from 'astro:assets'
</div>
<button
id='toggleDarkMode'
class='relative rounded-md border border-border p-1.5 transition-all hover:bg-border'
id="toggleDarkMode"
class="border-border hover:bg-border relative rounded-md border p-1.5 transition-all"
>
<span class='sr-only'>Dark Theme</span>
<span class="sr-only">Dark Theme</span>
<svg
xmlns='http://www.w3.org/2000/svg'
width='32'
height='32'
viewBox='0 0 24 24'
class='h-[1.2rem] w-[1.2rem] rotate-0 scale-100 transition-all dark:hidden dark:-rotate-90 dark:scale-0'
xmlns="http://www.w3.org/2000/svg"
width="32"
height="32"
viewBox="0 0 24 24"
class="h-[1.2rem] w-[1.2rem] scale-100 rotate-0 transition-all dark:hidden dark:scale-0 dark:-rotate-90"
><path
fill='currentColor'
d='M12 15q1.25 0 2.125-.875T15 12q0-1.25-.875-2.125T12 9q-1.25 0-2.125.875T9 12q0 1.25.875 2.125T12 15m0 1q-1.671 0-2.836-1.164T8 12q0-1.671 1.164-2.836T12 8q1.671 0 2.836 1.164T16 12q0 1.671-1.164 2.836T12 16m-7-3.5H1.5v-1H5zm17.5 0H19v-1h3.5zM11.5 5V1.5h1V5zm0 17.5V19h1v3.5zM6.746 7.404l-2.16-2.098l.695-.744l2.111 2.134zM18.72 19.438l-2.117-2.14l.652-.702l2.16 2.098zM16.596 6.746l2.098-2.16l.744.695l-2.134 2.111zM4.562 18.72l2.14-2.117l.663.652l-2.078 2.179zM12 12'
fill="currentColor"
d="M12 15q1.25 0 2.125-.875T15 12q0-1.25-.875-2.125T12 9q-1.25 0-2.125.875T9 12q0 1.25.875 2.125T12 15m0 1q-1.671 0-2.836-1.164T8 12q0-1.671 1.164-2.836T12 8q1.671 0 2.836 1.164T16 12q0 1.671-1.164 2.836T12 16m-7-3.5H1.5v-1H5zm17.5 0H19v-1h3.5zM11.5 5V1.5h1V5zm0 17.5V19h1v3.5zM6.746 7.404l-2.16-2.098l.695-.744l2.111 2.134zM18.72 19.438l-2.117-2.14l.652-.702l2.16 2.098zM16.596 6.746l2.098-2.16l.744.695l-2.134 2.111zM4.562 18.72l2.14-2.117l.663.652l-2.078 2.179zM12 12"
></path></svg
>
<svg
xmlns='http://www.w3.org/2000/svg'
width='32'
height='32'
viewBox='0 0 24 24'
class='hidden h-[1.2rem] w-[1.2rem] rotate-90 scale-0 transition-all dark:block dark:rotate-0 dark:scale-100'
xmlns="http://www.w3.org/2000/svg"
width="32"
height="32"
viewBox="0 0 24 24"
class="hidden h-[1.2rem] w-[1.2rem] scale-0 rotate-90 transition-all dark:block dark:scale-100 dark:rotate-0"
><path
fill='currentColor'
d='M12.058 20q-3.334 0-5.667-2.333Q4.058 15.333 4.058 12q0-3.038 1.98-5.27Q8.02 4.5 10.942 4.097q.081 0 .159.006t.153.017q-.506.706-.801 1.57q-.295.865-.295 1.811q0 2.667 1.866 4.533q1.867 1.867 4.534 1.867q.952 0 1.813-.295q.862-.295 1.548-.801q.012.075.018.153q.005.078.005.158q-.384 2.923-2.615 4.904T12.057 20'
fill="currentColor"
d="M12.058 20q-3.334 0-5.667-2.333Q4.058 15.333 4.058 12q0-3.038 1.98-5.27Q8.02 4.5 10.942 4.097q.081 0 .159.006t.153.017q-.506.706-.801 1.57q-.295.865-.295 1.811q0 2.667 1.866 4.533q1.867 1.867 4.534 1.867q.952 0 1.813-.295q.862-.295 1.548-.801q.012.075.018.153q.005.078.005.158q-.384 2.923-2.615 4.904T12.057 20"
></path></svg
>
</button>
@ -144,71 +144,71 @@ import { Image } from 'astro:assets'
<!-- Mobile Navigation -->
<div
id='mobileMenu'
class='fixed inset-x-0 top-[72px] z-50 hidden max-h-[calc(100vh-72px)] overflow-y-auto rounded-b-lg bg-white shadow-lg dark:bg-gray-800 lg:hidden'
id="mobileMenu"
class="fixed inset-x-0 top-[72px] z-50 hidden max-h-[calc(100vh-72px)] overflow-y-auto rounded-b-lg bg-white shadow-lg lg:hidden dark:bg-gray-800"
>
<div class='space-y-2 px-4 py-2'>
<div class="space-y-2 px-4 py-2">
<a
href='/blog'
class={`block py-2 text-[1.05rem] font-medium ${Astro.url.pathname.startsWith('/blog') ? 'text-green-400' : ''}`}
href="/blog"
class={`block py-2 text-[1.05rem] font-medium ${Astro.url.pathname.startsWith("/blog") ? "text-green-400" : ""}`}
>
Blog
</a>
<a
href='/categories'
class={`block py-2 text-[1.05rem] font-medium ${Astro.url.pathname.startsWith('/categories') ? 'text-green-400' : ''}`}
href="/categories"
class={`block py-2 text-[1.05rem] font-medium ${Astro.url.pathname.startsWith("/categories") ? "text-green-400" : ""}`}
>
Categories
</a>
<a
href='/tags'
class={`block py-2 text-[1.05rem] font-medium ${Astro.url.pathname.startsWith('/tags') ? 'text-green-400' : ''}`}
href="/tags"
class={`block py-2 text-[1.05rem] font-medium ${Astro.url.pathname.startsWith("/tags") ? "text-green-400" : ""}`}
>
Tags
</a>
<a
href='/diary'
class={`block py-2 text-[1.05rem] font-medium ${Astro.url.pathname.startsWith('/diary') ? 'text-green-400' : ''}`}
href="/diary"
class={`block py-2 text-[1.05rem] font-medium ${Astro.url.pathname.startsWith("/diary") ? "text-green-400" : ""}`}
>
Diary
</a>
<a
href='/tools'
class={`block py-2 text-[1.05rem] font-medium ${Astro.url.pathname.startsWith('/tools') ? 'text-green-400' : ''}`}
href="/tools"
class={`block py-2 text-[1.05rem] font-medium ${Astro.url.pathname.startsWith("/tools") ? "text-green-400" : ""}`}
>
Tools
</a>
<a
href='/friends'
class={`block py-2 text-[1.05rem] font-medium ${Astro.url.pathname.startsWith('/friends') ? 'text-green-400' : ''}`}
href="/friends"
class={`block py-2 text-[1.05rem] font-medium ${Astro.url.pathname.startsWith("/friends") ? "text-green-400" : ""}`}
>
Friends
</a>
<button
id='mobileToggleDarkMode'
class='mt-2 flex w-full items-center py-2 text-[1.05rem] font-medium'
id="mobileToggleDarkMode"
class="mt-2 flex w-full items-center py-2 text-[1.05rem] font-medium"
>
<span>Theme</span>
<svg
xmlns='http://www.w3.org/2000/svg'
width='32'
height='32'
viewBox='0 0 24 24'
class='ml-2 h-[1.2rem] w-[1.2rem] rotate-0 scale-100 transition-all dark:hidden dark:-rotate-90 dark:scale-0'
xmlns="http://www.w3.org/2000/svg"
width="32"
height="32"
viewBox="0 0 24 24"
class="ml-2 h-[1.2rem] w-[1.2rem] scale-100 rotate-0 transition-all dark:hidden dark:scale-0 dark:-rotate-90"
><path
fill='currentColor'
d='M12 15q1.25 0 2.125-.875T15 12q0-1.25-.875-2.125T12 9q-1.25 0-2.125.875T9 12q0 1.25.875 2.125T12 15m0 1q-1.671 0-2.836-1.164T8 12q0-1.671 1.164-2.836T12 8q1.671 0 2.836 1.164T16 12q0 1.671-1.164 2.836T12 16m-7-3.5H1.5v-1H5zm17.5 0H19v-1h3.5zM11.5 5V1.5h1V5zm0 17.5V19h1v3.5zM6.746 7.404l-2.16-2.098l.695-.744l2.111 2.134zM18.72 19.438l-2.117-2.14l.652-.702l2.16 2.098zM16.596 6.746l2.098-2.16l.744.695l-2.134 2.111zM4.562 18.72l2.14-2.117l.663.652l-2.078 2.179zM12 12'
fill="currentColor"
d="M12 15q1.25 0 2.125-.875T15 12q0-1.25-.875-2.125T12 9q-1.25 0-2.125.875T9 12q0 1.25.875 2.125T12 15m0 1q-1.671 0-2.836-1.164T8 12q0-1.671 1.164-2.836T12 8q1.671 0 2.836 1.164T16 12q0 1.671-1.164 2.836T12 16m-7-3.5H1.5v-1H5zm17.5 0H19v-1h3.5zM11.5 5V1.5h1V5zm0 17.5V19h1v3.5zM6.746 7.404l-2.16-2.098l.695-.744l2.111 2.134zM18.72 19.438l-2.117-2.14l.652-.702l2.16 2.098zM16.596 6.746l2.098-2.16l.744.695l-2.134 2.111zM4.562 18.72l2.14-2.117l.663.652l-2.078 2.179zM12 12"
></path></svg
>
<svg
xmlns='http://www.w3.org/2000/svg'
width='32'
height='32'
viewBox='0 0 24 24'
class='ml-2 hidden h-[1.2rem] w-[1.2rem] rotate-90 scale-0 transition-all dark:block dark:rotate-0 dark:scale-100'
xmlns="http://www.w3.org/2000/svg"
width="32"
height="32"
viewBox="0 0 24 24"
class="ml-2 hidden h-[1.2rem] w-[1.2rem] scale-0 rotate-90 transition-all dark:block dark:scale-100 dark:rotate-0"
><path
fill='currentColor'
d='M12.058 20q-3.334 0-5.667-2.333Q4.058 15.333 4.058 12q0-3.038 1.98-5.27Q8.02 4.5 10.942 4.097q.081 0 .159.006t.153.017q-.506.706-.801 1.57q-.295.865-.295 1.811q0 2.667 1.866 4.533q1.867 1.867 4.534 1.867q.952 0 1.813-.295q.862-.295 1.548-.801q.012.075.018.153q.005.078.005.158q-.384 2.923-2.615 4.904T12.057 20'
fill="currentColor"
d="M12.058 20q-3.334 0-5.667-2.333Q4.058 15.333 4.058 12q0-3.038 1.98-5.27Q8.02 4.5 10.942 4.097q.081 0 .159.006t.153.017q-.506.706-.801 1.57q-.295.865-.295 1.811q0 2.667 1.866 4.533q1.867 1.867 4.534 1.867q.952 0 1.813-.295q.862-.295 1.548-.801q.012.075.018.153q.005.078.005.158q-.384 2.923-2.615 4.904T12.057 20"
></path></svg
>
</button>
@ -219,59 +219,59 @@ import { Image } from 'astro:assets'
<script>
function getCurrentTheme() {
return localStorage.getItem('theme')
return localStorage.getItem("theme");
}
function setupDarkModeToggle() {
const toggleDarkModeButton = document.getElementById('toggleDarkMode')
const mobileToggleDarkMode = document.getElementById('mobileToggleDarkMode')
const toggleDarkModeButton = document.getElementById("toggleDarkMode");
const mobileToggleDarkMode = document.getElementById("mobileToggleDarkMode");
function toggleTheme() {
const currentTheme = getCurrentTheme()
const newTheme = currentTheme === 'dark' ? 'light' : 'dark'
localStorage.setItem('theme', newTheme)
document.documentElement.classList.toggle('dark')
const currentTheme = getCurrentTheme();
const newTheme = currentTheme === "dark" ? "light" : "dark";
localStorage.setItem("theme", newTheme);
document.documentElement.classList.toggle("dark");
// Dispatch theme change event
window.dispatchEvent(new CustomEvent('theme-change', { detail: { theme: newTheme } }))
window.dispatchEvent(new CustomEvent("theme-change", { detail: { theme: newTheme } }));
}
if (toggleDarkModeButton) {
toggleDarkModeButton.addEventListener('click', toggleTheme)
toggleDarkModeButton.addEventListener("click", toggleTheme);
}
if (mobileToggleDarkMode) {
mobileToggleDarkMode.addEventListener('click', toggleTheme)
mobileToggleDarkMode.addEventListener("click", toggleTheme);
}
}
function setupMobileMenu() {
const mobileMenuButton = document.getElementById('mobileMenuButton')
const mobileMenu = document.getElementById('mobileMenu')
if (!mobileMenuButton || !mobileMenu) return
const mobileMenuButton = document.getElementById("mobileMenuButton");
const mobileMenu = document.getElementById("mobileMenu");
if (!mobileMenuButton || !mobileMenu) return;
mobileMenuButton.addEventListener('click', () => {
mobileMenu.classList.toggle('hidden')
})
mobileMenuButton.addEventListener("click", () => {
mobileMenu.classList.toggle("hidden");
});
// Close mobile menu when clicking outside
document.addEventListener('click', (event) => {
document.addEventListener("click", (event) => {
if (
!mobileMenuButton.contains(event.target as Node) &&
!mobileMenu.contains(event.target as Node)
) {
mobileMenu.classList.add('hidden')
mobileMenu.classList.add("hidden");
}
})
});
}
// Setup initial functionality
setupDarkModeToggle()
setupMobileMenu()
setupDarkModeToggle();
setupMobileMenu();
// Re-setup functionality after view transitions
document.addEventListener('astro:after-swap', () => {
setupDarkModeToggle()
setupMobileMenu()
})
document.addEventListener("astro:after-swap", () => {
setupDarkModeToggle();
setupMobileMenu();
});
</script>

View File

@ -23,12 +23,15 @@ const year = new Date().getFullYear();
</div>
<nav
aria-labelledby="footer_links"
class="flex gap-x-2 sm:gap-x-0 sm:divide-x sm:divide-gray-500"
class="flex flex-wrap gap-x-2 sm:gap-x-0 sm:divide-x sm:divide-gray-500"
>
<p id="footer_links" class="sr-only">More on this site</p>
{
menuLinks.map((link) => (
<a class="hover:text-global-text px-4 py-2 hover:underline sm:py-0" href={link.path}>
<a
class="hover:text-global-text px-2 py-2 hover:underline sm:px-4 sm:py-0"
href={link.path}
>
{link.title}
</a>
))

View File

@ -1,5 +1,5 @@
---
import { type CollectionEntry, render } from "astro:content";
import { render } from "astro:content";
import FormattedDate from "@/components/FormattedDate.astro";
import type { HTMLTag, Polymorphic } from "astro/types";
import GiscusComment from "@/components/componentsBefore/GiscusComment";
@ -8,8 +8,9 @@ import ShareButtons from "../ShareButtons.astro";
import ContentFooter from "../ContentFooter.astro";
import { cn } from "@/utils/tailwind";
import Card from "../componentsBefore/Card.astro";
import type { NoteItem } from "@/types";
type Props<Tag extends HTMLTag> = Polymorphic<{ as: Tag }> & {
note: CollectionEntry<"note">;
note: NoteItem;
isPreview?: boolean | undefined;
index?: number;
enableLineClamp?: boolean;
@ -78,17 +79,17 @@ if (modifiedDate && modifiedDate.toDateString() === date.toDateString()) {
enableLineClamp && "line-clamp-4"
)}
>
{
!isPreview && note.data.description && note.data.description.trim().length > 0 && (
<Card heading="摘要由llm生成" altText="摘要" class="my-4 w-full">
<div class="text-muted-foreground ml-4">{note.data.description}</div>
</Card>
)
}
{
!isPreview && note.data.description && note.data.description.trim().length > 0 && (
<Card heading="摘要由llm生成" altText="摘要" class="my-4 w-full">
<div class="text-muted-foreground ml-4">{note.data.description}</div>
</Card>
)
}
<Content />
</div>
</div>
{!isPreview && <ContentFooter />}
{!isPreview && <GiscusComment client:load />}
@ -99,5 +100,4 @@ if (modifiedDate && modifiedDate.toDateString() === date.toDateString()) {
</div>
)
}
</ArticleContainer>

View File

@ -5,6 +5,23 @@ function removeDupsAndLowerCase(array: string[]) {
return [...new Set(array.map((str) => str.toLowerCase()))];
}
// 辅助函数:处理各种格式的日期
function processDate(val: string | number | Date): Date {
// 如果是数字如20250225转换为字符串并格式化
if (typeof val === "number") {
const numStr = val.toString();
// 假设格式为YYYYMMDD
if (numStr.length === 8) {
const year = numStr.substring(0, 4);
const month = numStr.substring(4, 6);
const day = numStr.substring(6, 8);
return new Date(`${year}-${month}-${day}`);
}
}
// 其他情况直接使用Date构造函数
return new Date(val);
}
const baseSchema = z.object({
title: z.string(),
});
@ -17,9 +34,18 @@ const post = defineCollection({
draft: z.boolean().default(false),
banner: z.string().optional(),
tags: z.array(z.string()).default([]).transform(removeDupsAndLowerCase),
date: z.union([z.string(), z.date()]).transform((val) => new Date(val)),
date_modified: z.date().optional(),
data_created: z.date().optional(),
date: z
.union([z.string(), z.number(), z.date()])
.optional()
.transform((val) => (val ? processDate(val) : undefined)),
date_modified: z
.union([z.string(), z.number(), z.date()])
.optional()
.transform((val) => (val ? processDate(val) : undefined)),
data_created: z
.union([z.string(), z.number(), z.date()])
.optional()
.transform((val) => (val ? processDate(val) : undefined)),
category: z.string().optional().nullable(),
fixedToTop: z.boolean().optional().default(false),
}),
@ -29,10 +55,20 @@ const note = defineCollection({
loader: glob({ base: "./src/content/note", pattern: "**/*.{md,mdx}" }),
schema: baseSchema.extend({
description: z.string().optional().nullable(),
date: z.union([z.string(), z.date()]).transform((val) => new Date(val)),
date_modified: z.date().optional(),
data_created: z.date().optional(),
date: z
.union([z.string(), z.number(), z.date()])
.optional()
.transform((val) => (val ? processDate(val) : undefined)),
date_modified: z
.union([z.string(), z.number(), z.date()])
.optional()
.transform((val) => (val ? processDate(val) : undefined)),
data_created: z
.union([z.string(), z.number(), z.date()])
.optional()
.transform((val) => (val ? processDate(val) : undefined)),
tags: z.array(z.string()).default([]).transform(removeDupsAndLowerCase),
category: z.string().optional().nullable(),
}),
});

View File

@ -1,30 +0,0 @@
---
title: '2023-02-11'
slug: diary-2023-02-11
date: 2023-02-11T00:00:00.000Z
author: KazooTTT
tags:
- 日记
published: true
description: >-
2023年2月11日星期六菜单包括外婆菜炒蛋搭配土豆箜饭饮料为冰糖加柠檬片。当天的计划包括使用tailwind编写样式学习Photoshop或Figma操作以制作视频封面模板以及进行AI
Hanser的相关工作。
rinId: 22
toAstro: true
category: 日记
date_created: 2025-01-04T03:34:08.000Z
date_modified: 2025-02-19T17:54:54.000Z
---
# 2023-02-11 星期六
## 今日菜单 + 饮料
外婆菜炒蛋 + 土豆箜饭
冰糖 + 柠檬片
## 今日计划
- [ ] 使用 tailwind 编写样式
- [ ] 学习 ps 或者 figma 操作,制作视频封面模板
- [ ] AI Hanser

View File

@ -1,27 +0,0 @@
---
title: '2023-09-08'
slug: diary-2023-09-08
date: 2023-09-08T00:00:00.000Z
author: KazooTTT
tags:
- 日记
- 歌词
- hanser
published: true
description: 2023年9月8日星期五的记录中提到了一段关于直播的内容强调不需要背负任何负担只需带着空行囊和彼此即可。
rinId: 24
toAstro: true
category: 日记
date_created: 2025-01-04T03:34:08.000Z
date_modified: 2025-02-19T17:54:54.000Z
---
# 2023-09-08 星期五
<!-- start of weread -->
<!-- end of weread -->
## 直播
> 不需要 背负任何
> 只需要空行囊和彼此就够

View File

@ -1,26 +0,0 @@
---
title: '2023-09-09'
slug: diary-2023-09-09
date: 2023-09-09T00:00:00.000Z
author: KazooTTT
tags:
- 日记
published: true
description: 2023年9月9日星期六的日程安排包括已完成的项目升级和游泳以及待完成的nextjs+node运行时脚本测试。
rinId: 25
toAstro: true
category: 日记
date_created: 2025-01-04T03:34:08.000Z
date_modified: 2025-02-19T17:54:54.000Z
---
# 2023-09-09 星期六
<!-- start of weread -->
<!-- end of weread -->
## 今天要做的事情
- [x] 版本升级
- [ ] nextjs+node 运行时 脚本运行测试
- [x] 游泳

View File

@ -1,20 +0,0 @@
---
title: '2023-09-10'
slug: diary-2023-09-10
date: 2023-09-10T00:00:00.000Z
author: KazooTTT
tags:
- 日记
published: true
description: >-
2023年9月10日某博客讨论了其支持的模板语法指出虽然功能丰富但使用起来感觉不够灵活且学习成本较高。文章中提出疑问低代码是否是一种高效但可能过于简化的编程方式。
rinId: 26
toAstro: true
category: 日记
date_created: 2025-01-04T03:34:08.000Z
date_modified: 2025-02-19T17:54:54.000Z
---
# 2023-09-10 星期日
- 13:17 某博客支持各种模板语法,但是使用的时候反而觉得不灵活以及学习成本过高了。<br>觉得突然想到,是不是低代码是一种含糖量极高的编程方式。<br>

View File

@ -1,39 +0,0 @@
---
title: '2023-09-12'
slug: diary-2023-09-12
date: 2023-09-12T00:00:00.000Z
author: KazooTTT
tags:
- 日记
- 健身
published: true
description: >-
今天的任务包括完成多项链表相关的编程题目其中已完成的有“86.分隔链表”和“141.环形链表”未完成的有“142.环形链表-ii”和“160.相交链表”。此外已完成的任务还包括在Obsidian中链接外部代码文件。健身方面进行了跑步、椭圆机和器械锻炼并计划下次带拖鞋以便洗完澡后直接穿回家。
rinId: 27
toAstro: true
category: 日记
date_created: 2025-01-04T03:34:08.000Z
date_modified: 2025-02-19T17:54:54.000Z
---
# 2023-09-12 星期二
<!-- start of weread -->
<!-- end of weread -->
## 今天要做的事情
- [ ] 刷题回顾
- [x] [86.分隔链表](https://notes.kazoottt.top/03-领域/编程/算法/记录/86.分隔链表)
- [x] [141.环形链表](https://notes.kazoottt.top/03-领域/编程/算法/记录/141.环形链表)
- [ ] [142.环形链表-ii](https://notes.kazoottt.top/03-领域/编程/算法/记录/142.环形链表-ii)
- [ ] [[160.相交链表]]
- [x] [[obsidian链接外部代码文件]]
## 打卡
## 健身
【打卡】跑步 15 分钟,椭圆机 15 分钟,器械(大腿 腹部 背部4 组
下次要把拖鞋带来,洗完澡直接穿拖鞋回家。

View File

@ -1,75 +0,0 @@
---
title: '2023-09-13'
slug: diary-2023-09-13
date: 2023-09-13T00:00:00.000Z
author: KazooTTT
tags:
- 日记
- todo
published: true
description: >-
On September 13, 2023, the individual focused on several tasks including
reviewing coding problems, specifically completing the "141.环形链表" and planning
to tackle "142.环形链表-ii" and "160.相交链表". They also dealt with issues related to
the react-noiton-x library, which is used in their blog's search interface,
and attempted to compile the library from source code due to outdated
versions. Challenges included issues with yarn proxy settings, understanding
workspace concepts, and the process of npm publishing. Additionally, they
worked on their blog, integrating Sentry for error tracking and adjusting the
giscus comment section's style to better fit different themes. On the personal
front, they skipped the gym due to poor physical condition but exercised at
home using an elliptical machine. They also considered upgrading their
smartwatch as it was no longer compatible with the latest watch face market
updates.
toAstro: true
category: 日记
date_created: 2025-01-04T03:34:08.000Z
date_modified: 2025-02-19T17:54:54.000Z
---
# 2023-09-13 星期三
<!-- start of weread -->
<!-- end of weread -->
## 今天要做的事情
- [ ] 刷题回顾
- [x] [141.环形链表](https://notes.kazoottt.top/03-领域/编程/算法/记录/141.环形链表)
- [ ] [142.环形链表-ii](https://notes.kazoottt.top/03-领域/编程/算法/记录/142.环形链表-ii)
- [ ] [[160.相交链表]]
## 打卡
wakatime 数据:
![IMG-20241021113029099](<https://pictures.kazoottt.top/2024/11/20241125-7139a104f1df9b03b462a7d8b582b109.png>)
## React-noiton-x
今天一直在看 react-noiton-x 的问题,因为博客里依赖了这个库的搜索接口,而该接口虽然在源代码里更新了,但是最新一次打包是二月份
![IMG-20241021113029126](<https://pictures.kazoottt.top/2024/11/20241125-e05ed84ba105012a9d605957c3813d65.png>)
所以尝试自己从源代码打包一份,然后新发一个版本给自己使用。
遇到的问题有:
1. 忘记修改过 yarn 的代理(公司内网),导致安装失败。代理优先级应该是 yarn 自身代理>npm 代理
2. 对于 workspace 的概念不熟悉
3. 对于 npm 发布不熟悉
后续要做的事:
打包,然后发布
## Blog
然后继续折腾了一下博客,接入了 sentry,
之前的 giscus 评论区的样式是比较怪异的(即使切换了主题,背景色还是白色),今天做成适配的了。不过这个切换有些生硬,后续要加个过渡
![IMG-20241021113029153](<https://pictures.kazoottt.top/2024/11/20241125-c8924e57d362b973da60017a4ad7bbdd.gif>)
## 健身
状态不好没去健身房在家踩了椭圆机3-11 档阻力交叉 30 分钟
=、= 感觉该换手表了,突然发现这个手表表盘市场都不兼容了
![IMG-20241021113029196](<https://pictures.kazoottt.top/2024/11/20241125-4cd6f6565440bf5c21b6ee94587de167.jpeg>)
![IMG-20241021113029229](<https://pictures.kazoottt.top/2024/11/20241125-16152535d36b14dc442cccfd8484b72b.jpeg>)

View File

@ -1,35 +0,0 @@
---
title: '2023-09-14'
slug: diary-2023-09-14
date: 2023-09-14T00:00:00.000Z
author: KazooTTT
tags:
- 日记
published: true
description: >-
今天是2023年9月14日星期四。今天的计划包括打卡和健身。健身内容包括跑步20分钟和使用器械30分钟虽然9点去健身房时间有点紧张。此外已经下单了一款新手表预计下周五到货。感觉自己的背部似乎直了一些。还提到了一种快速获取telegram
chatId并实现消息通知的方法。
toAstro: true
category: 日记
date_created: 2025-01-04T03:34:08.000Z
date_modified: 2025-02-19T17:54:54.000Z
---
# 2023-09-14 星期四
<!-- start of weread -->
<!-- end of weread -->
## 今天要做的事情
## 打卡
## 健身
健身打卡
跑步 20 分钟,器械 30 分钟9 点去健身房时间还是有点紧了!
下单了新的手表,下周五能到!
不知道是不是错觉,感觉自己背直了一点
[快速获取telegram chatId然后实现消息通知的方法](/notes/quick-way-to-get-telegram-chatid-and-then-implement-message-notification)

View File

@ -1,25 +0,0 @@
---
title: '2023-09-15'
slug: diary-2023-09-15
date: 2023-09-15T00:00:00.000Z
author: KazooTTT
tags:
- 日记
published: true
description: 2023年9月15日星期五的日程包括修复notion-blog中vercel og的问题并进行打卡记录。
toAstro: true
category: 日记
date_created: 2025-01-04T03:34:08.000Z
date_modified: 2025-02-19T17:54:54.000Z
---
# 2023-09-15 星期五
<!-- start of weread -->
<!-- end of weread -->
## 今天要做的事情
## 打卡
[修复了notion-blog中vercel og的问题](https://notes.kazoottt.top/05-临时/01-草稿箱/修复了notion-blog中vercel og的问题)

View File

@ -1,48 +0,0 @@
---
title: '2023-09-17'
slug: diary-2023-09-17
date: 2023-09-17T00:00:00.000Z
author: KazooTTT
tags:
- 日记
- 健身
published: true
description: >-
2023年9月17日个人日记记录了当天的活动和任务。白天主要在休息晚上进行了健身活动包括30分钟的椭圆机训练和30分钟的器械训练。健身后回家泡脚并在此期间编写了一个油猴脚本用于直播间管理增强已完成弹窗样式修改和response拦截及第一页数据填充后续计划实现滚动加载后的数据填充。此外还记录了两个待处理的事项屏蔽推特黄推和使用shot.so进行图片美化。
toAstro: true
category: 日记
date_created: 2025-01-04T03:34:08.000Z
date_modified: 2025-02-19T17:54:54.000Z
---
# 2023-09-17 星期日
<!-- start of weread -->
<!-- end of weread -->
## 今天要做的事情
## 打卡
今天白天主要在休息,
晚上出门健身了,椭圆机 30 分钟,器械 30 分钟。
然后回到家泡了脚,出了挺多汗的。
一边泡脚一边写了一个油猴脚本,具体如下。
[直播间管理增强脚本](https://notes.kazoottt.top/05-临时/01-草稿箱/直播间管理增强脚本)
今日完成:
弹窗样式修改
response 拦截 + 第一页数据填充
后面要做的事:
实现滚动加载后,填充对应的数据
![IMG-20241021113029272](<https://pictures.kazoottt.top/2024/11/20241125-15619d7536bbeb8537e13a5580d60fbd.png>)
## Inbox
[屏蔽推特黄推](/notes/blocking-twitter-yellow-tweets)
[shot.so - 图片美化工具](/notes/shotso-image-beautification-tool)

View File

@ -1,31 +0,0 @@
---
title: '2023-09-24'
slug: diary-2023-09-24
date: 2023-09-24T00:00:00.000Z
author: KazooTTT
tags:
- 日记
- 翻译
published: true
description: >-
今天的任务包括翻译YouTube视频《Monorepos - How the Pros Scale Huge Software Projects //
Turborepo vs
Nx》并投稿到Bilibili视频链接为https://www.youtube.com/watch?v=9iU_IE6vnJ8投稿链接为https://www.bilibili.com/video/BV1uz4y1V7cb/?spm_id_from=..search-card.all.click&vd_source=729e6f70ca3cee328ccece68cb2bbd30。此外还有待处理的inbox事项。
toAstro: true
category: 日记
date_created: 2025-01-04T03:34:08.000Z
date_modified: 2025-02-19T17:54:54.000Z
---
# 2023-09-24 星期日
<!-- start of weread -->
<!-- end of weread -->
## 今天要做的事情
## 打卡
[Monorepos - How the Pros Scale Huge Software Projects // Turborepo vs Nx](<https://www.youtube.com/watch?v=9iU_IE6vnJ8>) 的翻译然后 [投稿](<https://www.bilibili.com/video/BV1uz4y1V7cb/?spm_id_from=..search-card.all.click&vd_source=729e6f70ca3cee328ccece68cb2bbd30>)
## Inbox

View File

@ -1,29 +0,0 @@
---
title: '2023-10-06'
slug: diary-2023-10-06
date: 2023-10-06T00:00:00.000Z
author: KazooTTT
tags:
- 日记
published: true
description: >-
今天的任务包括给手表充电和录制关于如何使用MessAuto和iMessage实现iPhone和mac信息同步及自动复制验证码的视频并计划将视频发布到B站和小红书上。
toAstro: true
category: 日记
date_created: 2025-01-04T03:34:08.000Z
date_modified: 2025-02-19T17:54:54.000Z
---
# 2023-10-06 星期五
<!-- start of weread -->
<!-- end of weread -->
## 今天要做的事情
- [ ] 给手表充电
- [ ] 录 [[安利/MessAuto + iMessage 实现iPhone和mac信息同步和自动复制验证码]] 的视频,发布到 b 站和小红书
## 打卡
## Inbox

View File

@ -1,27 +0,0 @@
---
title: '2023-10-10'
slug: diary-2023-10-10
date: 2023-10-10T00:00:00.000Z
author: KazooTTT
tags:
- 日记
published: true
description: 今天的计划包括阅读vite文档并进行打卡和处理inbox事项。
toAstro: true
category: 日记
date_created: 2025-01-04T03:34:08.000Z
date_modified: 2025-02-19T17:54:54.000Z
---
# 2023-10-10 星期二
<!-- start of weread -->
<!-- end of weread -->
## 今天要做的事情
[从零开始阅读vite文档](https://notes.kazoottt.top/05-临时/01-草稿箱/从零开始阅读vite文档)
## 打卡
## Inbox

View File

@ -1,27 +0,0 @@
---
title: '2023-10-18'
slug: diary-2023-10-18
date: 2023-10-18T00:00:00.000Z
author: KazooTTT
tags:
- 日记
published: true
description: 今天的日程包括图片上传测试和打卡活动同时有一个待处理的inbox事项。
toAstro: true
category: 日记
date_created: 2025-01-04T03:34:08.000Z
date_modified: 2025-02-19T17:54:54.000Z
---
# 2023-10-18 星期三
<!-- start of weread -->
<!-- end of weread -->
## 今天要做的事情
[[图片上传测试]]
## 打卡
## Inbox

View File

@ -1,27 +0,0 @@
---
title: '2023-10-21'
slug: diary-2023-10-21
date: 2023-10-21T00:00:00.000Z
author: KazooTTT
tags:
- 日记
published: true
description: 2023年10月21日星期六的日程安排包括打卡和处理inbox事务。具体打卡内容通过一张图片展示而inbox的具体内容未详细说明。
toAstro: true
category: 日记
date_created: 2025-01-04T03:34:08.000Z
date_modified: 2025-02-19T17:54:54.000Z
---
# 2023-10-21 星期六
<!-- start of weread -->
<!-- end of weread -->
## 今天要做的事情
## 打卡
![IMG-20241021113029319](<https://pictures.kazoottt.top/2024/11/20241125-2c8dfa24dd6c560da504635981725bb0.png>)
## Inbox

View File

@ -1,27 +0,0 @@
---
title: '2023-10-22'
slug: diary-2023-10-22
date: 2023-10-22T00:00:00.000Z
author: KazooTTT
tags:
- 日记
published: true
description: 今天的计划包括防抖技术的学习和打卡任务,同时还有待处理的邮件。
toAstro: true
category: 日记
date_created: 2025-01-04T03:34:08.000Z
date_modified: 2025-02-19T17:54:54.000Z
---
# 2023-10-22 星期日
<!-- start of weread -->
<!-- end of weread -->
## 今天要做的事情
[防抖](https://notes.kazoottt.top/05-临时/01-草稿箱/防抖)
## 打卡
## Inbox

View File

@ -1,28 +0,0 @@
---
title: '2023-11-06'
slug: diary-2023-11-06
date: 2023-11-06T00:00:00.000Z
author: KazooTTT
tags:
- 日记
published: true
description: 2023年11月6日星期一记录了当天的打卡情况显示Wakatime的使用时间较长给人留下了深刻印象。此外还提到了inbox但未详细说明内容。
toAstro: true
category: 日记
date_created: 2025-01-04T03:34:08.000Z
date_modified: 2025-02-19T17:54:54.000Z
---
# 2023-11-06 星期一
## 今天要做的事情
## 打卡
![IMG-20241021113029371](<https://pictures.kazoottt.top/2024/11/20241125-d50f8d9b645bbfacc13485c8594b5f18.png>)
今天的 wakatime 有点恐怖了
## Inbox
<!-- start of weread -->
<!-- end of weread -->

View File

@ -1,31 +0,0 @@
---
title: '2023-11-16'
slug: diary-2023-11-16
date: 2023-11-16T00:00:00.000Z
author: KazooTTT
tags:
- 日记
published: true
description: >-
今天是2023年11月16日星期四。今天的主要任务是开始学习web3特别是参加了一个名为solidity_bootcamp的在线课程该课程由open
build提供。此外还记录了学习笔记但具体内容未在提供的材料中详细说明。
toAstro: true
category: 日记
date_created: 2025-01-04T03:34:08.000Z
date_modified: 2025-02-19T17:54:54.000Z
---
# 2023-11-16 星期四
## 今天要做的事情
## 打卡
开始学习 web3上周报名的 open build 的 solidity_bootcamp 开营了。
[solidity_bootcamp学习笔记](https://notes.kazoottt.top/03-领域/编程/web3/solidity_bootcamp学习笔记)
## Inbox
<!-- start of weread -->
<!-- end of weread -->

View File

@ -1,32 +0,0 @@
---
title: '2023-11-17'
slug: diary-2023-11-17
date: 2023-11-17T00:00:00.000Z
author: KazooTTT
tags:
- 日记
published: true
description: >-
今天的任务清单中已完成的是下午去办理港澳通行证而未完成的是准备公司评级的材料和学习web3基础知识。此外今天的日程中还包括打卡和查看inbox但没有具体的事项列出。
toAstro: true
category: 日记
date_created: 2025-01-04T03:34:08.000Z
date_modified: 2025-02-19T17:54:54.000Z
---
# 2023-11-17 星期五
## 今天要做的事情
## 打卡
## 明天要做的事情
- [x] 下午去办港澳通行证
- [ ] 去公司准备评级的材料
- [ ] 学习 web3 基础知识
## Inbox
<!-- start of weread -->
<!-- end of weread -->

View File

@ -1,47 +0,0 @@
---
title: '2024-03-05'
slug: diary-2024-03-05
date: 2024-03-05T00:00:00.000Z
author: KazooTTT
tags:
- 日记
description: >-
今天的主要任务包括完成Python学习至day15和刷题已完成的任务有Python学习和刷题。未完成的任务包括整理周一和周二的资讯、进行多线程批量测试、解决Python的AttributeError问题以及JetBrains
IDE的terminal无法打开问题。此外还帮助前部门面试了一位前端候选人。明天计划继续处理未完成的任务并记录了2024年3月5日的文件路径信息。
published: true
toAstro: true
category: 日记
date_created: 2025-01-04T03:34:08.000Z
date_modified: 2025-02-19T17:54:54.000Z
---
# 今天要做的事情
- [x] python 看到 day15 [python100 1-15](https://notes.kazoottt.top/03-领域/编程/后端/python/python100 1-15)
- [x] 刷题
- [ ] 整理周一和周二的资讯
- [ ] 多线程批量跑测试
- [ ] [[AttributeError module 'select' has no attribute 'epoll']]
- [ ] [[jerbrains的ide打不开terminal]]
- [ ] [2024-03-05 刷题](https://notes.kazoottt.top/03-领域/编程/算法/记录/2024-03-05 刷题)
# 打卡
主要在看 Python另外刷了两道算法题。
帮之前部门的人面试了一个前端。​​​
# 今天记录的内容
```dataview
table file.path
from ""
where dateformat(file.ctime, "yyyy-MM-dd") = "2024-03-05"
```
# 明天要做的事情
# Inbox
<!-- start of weread -->
<!-- end of weread -->

View File

@ -1,56 +0,0 @@
---
title: '2024-03-06'
slug: diary-2024-03-06
date: 2024-03-06T00:00:00.000Z
author: KazooTTT
tags:
- 日记
description: >-
今天的工作主要集中在解决错误和提交代码上成功地向autogen和notionnext提交了pull
request其中autogen的请求已被合并。同时开通了notion
ai并迁移了部分本地内容到博客上。此外收到了购买的时尚小物品感到非常满意。遗憾的是今天没有进行学习和刷题。计划早点休息为明天做准备。
published: true
toAstro: true
category: 日记
date_created: 2025-01-04T03:34:08.000Z
date_modified: 2025-02-19T17:54:54.000Z
---
# 今天要做的事情
# 打卡
工作上排了一天的错,本来要做的工作也没有做。
给 autogen 和 notionnext 提了 prautogen 的已经被合并了,这是第二次被 autogen 合并,
🙏非常感谢。
然后开通了 notion ai发现它支持 google pay这点对我来说挺友好的。开通的原因是想用它的自动生成 tags 和 summary 的功能。搭配 notionnext比较方便。然后迁移了一部分本地的内容到博客上去。
买的时尚小垃圾到了,挺喜欢的。
![IMG-20241021113029511](<https://pictures.kazoottt.top/2024/11/20241125-30be30b76c47cff90a88e37b7562e1ed.png>)
![IMG-20241021113029604](<https://pictures.kazoottt.top/2024/11/20241125-15265af8fa83af8ec5365f588256f85b.jpeg>)
![IMG-20241021113029671](<https://pictures.kazoottt.top/2024/11/20241125-c33b78a016b48a6729cb3aa8e939e125.jpeg>)
今天的不足之处是没有学习也没有刷题。
昨天太累了,今天早睡吧。晚安。
# 今天记录的内容
```dataview
table file.path
from ""
where dateformat(file.ctime, "yyyy-MM-dd") = "2024-03-06"
```
# 明天要做的事情
# Inbox
<!-- start of weread -->
<!-- end of weread -->

View File

@ -1,27 +0,0 @@
---
toAstro: true
astroType: null
toWexin: null
toJuejin: null
toZhihu: null
slug: fragmented-notes-2024-10-21-11-17-17
tags:
- 碎片
- 记账软件
- 财务管理
- 飞书
description: 使用飞书作为记账工具,能够有效地记录和管理财务信息。
date_created: 2025-02-11T15:38:40.000Z
date_modified: 2025-02-21T14:45:45.000Z
title: 2024-10-21 11分17秒 使用飞书来记账
date: 2024-10-21T00:00:00.000Z
author: KazooTTT
published: true
category: 碎片
---
使用飞书来记账
![IMG-57FB4A797CCE28DF5413ACAC19610F28](/mdImages/IMG-57FB4A797CCE28DF5413ACAC19610F28.png)
![IMG-7F9EB8A6DF15D7814E3A8AEBB48D1E6B](/mdImages/IMG-7F9EB8A6DF15D7814E3A8AEBB48D1E6B.png)

View File

@ -1,48 +0,0 @@
---
slug: fragmented-notes-2025-02-16-23-41-18
tags:
- 复古相机,摄影爱好者,数字中心
- 碎片
description: >-
Vintage Camera Lab
是专注于复古相机的网站,提供多种型号的详细信息与历史,按品牌、格式和类型分类,便于摄影师、收藏家了解相机的背景与特点。此外,该网站还提供复古相机风格的周边商品。
date_created: 2025-02-11T15:38:40.000Z
date_modified: 2025-02-19T17:54:51.000Z
title: 2024-10-25 13分02秒 Vintage Camera Lab
date: 2025-02-16T00:00:00.000Z
author: KazooTTT
published: true
toAstro: true
astroType: null
category: 碎片
---
![IMG-69C73A35AE6AA1B14805360168652323](/mdImages/IMG-69C73A35AE6AA1B14805360168652323.png)
**Vintage Camera Lab复古相机爱好者的数字中心**
**地址**[Vintage Camera Lab](<https://vintagecameralab.com/>)
**日期**20241025
**摘要**Vintage Camera Lab 是专注于复古相机的网站,涵盖多种型号的详细信息与历史,按品牌、格式和类型分类,便于摄影师、收藏家等了解相机的背景与特点。同时,该网站还提供复古相机风格的周边产品。
**亮点**
- 丰富的相机数据库,包含规格与历史背景。
- 支持按品牌、格式和类型分类。
- 提供复古相机主题的周边商品。
- 面向复古摄影爱好者和相机收藏家。
---
Vintage Camera Lab复古相机爱好者的数字中心
Vintage Camera Lab 是专注于复古相机的网站,涵盖多种型号的详细信息与历史,按品牌、格式和类型分类,便于摄影师、收藏家等了解相机的背景与特点。同时,该网站还提供复古相机风格的周边产品。
亮点:
• 丰富的相机数据库,包含规格与历史背景。
• 支持按品牌、格式和类型分类。
• 提供复古相机主题的周边商品。
• 面向复古摄影爱好者和相机收藏家。

Some files were not shown because too many files have changed in this diff Show More