更新日志

更新日志

记录博客项目的功能迭代、问题修复与重要变更

13条更新
  1. 新增全站命令面板(Ctrl/Cmd+K 快速跳转)与侧边栏天气卡片

    命令面板

    • Ctrl / Cmd + K 唤起,构建时聚合 89 条可跳转目标:21 篇文章(含 3 篇加密文章角标)、11 个分类、35 个标签、7 个系列、15 个站点页面
    • 分层模糊匹配:标题精确 > 前缀 > 包含 > 关键词 > 子序列,输入 dockerrun 也能命中「Docker 入门与实战」
    • 支持 选择、 进入、Esc 关闭、点击遮罩关闭;走 swup 无刷新跳转,失败时退回普通导航
    • 滚动条复用主题的 custom-scrollbar 样式,浅色与暗色表现一致

    天气卡片

    • 侧边栏展示访客所在地区的实时天气,通过 wttr.in 按访客 IP 定位(浏览器直连,不经过站点服务器)
    • 提供 8 种天气图标、10 分钟本地缓存与手动刷新按钮
    • 请求失败或超时时整块隐藏,不影响侧边栏其它组件
  2. 新增「AI 大模型开发 Python 重点笔记」,并重整分类与系列的划分

    新增文章

    • AI大模型开发入门 Python 重点笔记(替换原先的《Python 语法基础》):覆盖 Python 基础语法、逻辑判断、循环、函数与高阶应用、数据容器、文件操作、异常与模块,以及 Linux 基础命令、用 Python 调用 Ollama 进行模型对话与聊天界面实战
    • 原文内容未作改动,仅按博客渲染要求做了必要的格式适配:补 frontmatter、统一为 LF 换行、把正文里的分卷标题由一级降为二级(确保正文只有一个 <h1>

    分类与系列重整

    原先「分类」与「系列」大面积重合 —— Linux、云计算、面试、开发工具、Python 五组在两个维度上同名,职责不清。现按「分类 = 知识领域系列 = 同一主题的连载」重新划分:

    • 分类由 11 个收敛为 7 个:学习笔记(10 篇,吸收原 Linux / 云计算 / Python / Windows / 测试 / 项目管理)、DevOps(4 篇)、面试(3 篇)、博客指南、开发工具、文章示例、杂项
    • 系列收敛为 5 个,且不再保留单篇系列(开发工具、Python 的单篇系列已取消):容器化与 CI/CD(4 篇)、Linux(3 篇)、云计算(3 篇)、面试(3 篇)、Firefly 功能示例(2 篇)
    • 新增 AI 学习系列,《AI 大模型开发入门 Python 重点笔记》归入其中,后续 AI 相关笔记可持续追加
    • 修正 Linux 分类值带引号导致的不一致,以及 PMP 文章「目录为「项目管理」、分类却写作「杂项」」的错位
  3. 修复音乐播放器/动态页加载与多项数据展示问题,并补充链接、卡片的悬停交互

    加载与性能

    • 音乐播放器一直加载:主接口 api.i-meto.com 已失效(90 秒超时且返回 0 字节),而原代码没有超时机制,备用接口永远轮不上。改用实测可用的 api.injahow.cn,并加上 12 秒超时24 小时本地歌单缓存
    • 动态页一直显示「正在加载动态」:数据加载既无缓存也无超时,接口一旦不返回,loading 状态就永远退不出去。改为先读本地缓存立即渲染(30 分钟内有效)、再后台取最新数据,并加 8 秒超时;接口出错时若已有缓存内容则保留,不再清空已经显示出来的动态
    • 导航图标首次查看时空白astro-icon 会把某个图标「首次被渲染」的位置作为它的 <symbol> 定义处,其余位置用 <use> 引用。而 Navbar 渲染在前、这些 symbol 原本定义在后面的移动端菜单里,导致引用时找不到 symbol(实测 <use> 位于文档 44% 处、<symbol> 在 47% 处)。现在在 <body> 最前面预热导航图标,让 symbol 定义落在文档开头,所有引用都能立即命中

    数据展示

    • 移动端「更新热力图」挤成一团:53 列等分容器宽度,手机屏下光 52 个 3px 间隙就吃掉近一半宽度,格子只剩 3px 左右;且 min-width: 0 让容器可以无限收缩,overflow-x: auto 永远触发不了。窄屏改为固定格宽 + 横向滚动,格子保持可读、53 周数据一列不丢
    • 「标签 TOP 15」条形全部一样长:百分比的分母误用了 Map 插入顺序的第一个值(遍历文章时最先遇到的标签计数),而不是最大值,算出的比例被统一下限截断。改用真正的最大值作基准,条形恢复成阶梯状
    • 数据看板卡片底部大片留白:「标签 TOP 15」与「周内更新分布」都与同排内容更高的卡片等高,内容填不满,呈现「贴顶不贴底」。改为让列表与图表撑满剩余高度并均匀分布,底部空白摊回到行间
    • 「周内更新分布」周六为 0 时只剩一条细灰线,看起来像渲染失败;现在 0 也会显示数字、柱子提升到可见下限,并高亮最大值
    • 「发布时段」标题有歧义:该组件统计的其实是动态(说说),而文章 frontmatter 只有日期、没有时分,无法统计。已改名为「动态发布时段」,并补充统计口径说明、横轴刻度与一句话结论
    • 动态发布时段时区偏移:动态 frontmatter 里是不带时区的本地时间,解析时按 UTC 处理,若再按 Asia/Shanghai 转换会多减 8 小时(20:30 显示成凌晨 4:30)。改为直接读 UTC 小时,与源文件时间一致

    页面切换

    • 修复 swup 无刷新切换页面时偶尔闪现错乱 UI:数据看板 / 知识图谱 / 年度总结 / 更新日志四个页面的页面级 <style is:inline> 排在页面内容之后。swup 替换容器内容时样式随内容一起插入,而 #content-wrapperonload-animation 渐显(opacity 从 0 开始,叠加 nth-child 延迟最长约 240ms),在这段窗口里内容会先以"无页面样式"的状态被渲染出来,样式到位后布局跳变 —— 表现为点击导航切换时偶尔闪一下错乱的界面。现将四个页面的样式块统一移到内容之前,解析内容时样式已就位

    交互与排版

    • 文章内链接 hover:下划线由虚线平滑变实线并微微下移、文字转强调色、背景淡淡提亮,带 0.22s 过渡
    • 文章卡片 hover:整体轻微抬升 + 双层柔和阴影。位移用 translate 独立属性而非 transform——卡片带 onload-animation 入场动画,动画占用了 transform 轨道会盖掉 hover 位移,表现为「只有阴影变化、卡片不动」
    • 表格行 hover 高亮、正文图片 hover 轻微放大(提示可点开看大图),且只在支持精确指针的设备上启用,避免触屏误触
    • 文章日期支持时分:frontmatter 写 published: 2026-04-19T14:30:00 时,文章页显示为 2026-04-19 14:30;只写日期则保持原样,现有文章不受影响
  4. 移除侧边栏天气卡片及其相关代码

    • 删除 Weather.astro 组件,以及侧边栏的组件注册与配置项(SideBar.astrosidebarConfig.ts
    • 移除原因:该组件通过 wttr.in 按访客 IP 定位,在代理或特殊网络环境下容易定位到服务节点所在地而非访客真实位置,可用性不稳定
    • 移除后页面不再产生任何指向外部天气服务的请求,侧边栏组成恢复为之前的组件集合
  5. 新增知识图谱 / 年度总结 / 数据看板三个页面,并增强项目展示页的筛选与统计

    新增页面

    • 知识图谱 /graph/:把文章、分类、系列、标签渲染成可拖拽的力导向关系图(74 个节点 / 99 条关联),支持按类型筛选、关键词高亮、滚轮缩放、拖拽平移、悬停查看邻居,单击文章节点直接跳转
    • 年度总结 /year/:按年份聚合发文量、总字数、篇均字数、活跃月份、连续更新天数与动态数,含月度写作节奏柱状图、主题分布、高频标签、年度之最与年度文章清单,年份可切换
    • 数据看板 /stats/:站点总览八项指标、近 53 周更新热力图(GitHub 风格,含活跃天数与单日峰值)、近 12 个月发文柱状图 + 累计增长曲线、周内更新分布、发布时段、内容之最、构建与环境信息

    项目展示页增强

    • 新增技术栈(标签)多选筛选,与状态筛选、关键词搜索叠加生效
    • 头部新增统计概览:项目数、各状态数量、技术栈种类、最近更新时间
    • 筛选时头部计数联动为当前可见数量,并提供「清除筛选」快捷按钮

    导航调整

    • 新增「探索」菜单,集中放置内容可视化与站点数据:知识图谱、数据看板、年度总结、书签导航
    • 「我的」菜单收敛为个人内容:动态、项目、相册、更新日志
    • 原「链接」菜单并入「关于」(关于我 / 彩蛋),顶级菜单结构更清晰

    问题修复

    • 修复 swup 无刷新导航首次进入页面时样式丢失、脚本不执行:知识图谱/年度总结/数据看板/更新日志四个页面的 <style><script> 原先写在 </MainGridLayout> 之后,即 swup 替换容器 #swup-container 之外;无刷新导航只替换容器内容,容器外的样式不会加载、脚本不会执行,所以首次点进去是空白或错乱,刷新(整页加载)才正常。现改为随容器内容一起插入并执行
    • 更新日志页脚本原为 TypeScript 模块(会被打包提升、且 ES 模块重复插入不会重新执行),改为内联脚本

    视觉调整

    • 知识图谱改用高饱和、色相分散的鲜艳色板(分类/系列按顺序取色,相邻区分度高),浅色与暗色各一套
    • 节点形状承载类型语义:文章 = 圆角方块、分类 = 圆、系列 = 菱形、标签 = 小圆点,加密文章带外环
    • 左下角图例改为「形状 + 代表色 + 类型」,不再只列前 4 个分类(原先易被误读为指标卡)

    暗色模式修复

    • 修复暗色模式下文字偏深、难以辨认:主题的 --deep-text / --content-meta 在暗色下取值仍偏深,图谱 Canvas 文字与更新日志正文据此渲染后对比度不足;现图谱按主题切换取浅色,更新日志页的暗色覆盖规则恢复生效
    • 根因:这些页面原先用 :global(.dark) 编写暗色覆盖(Astro scoped 语法),上一条修复改为内联样式后不再参与编译,:global() 成为无效选择器,导致全部暗色规则静默失效

    实现说明

    • 三个新页面均为构建时聚合数据 + 纯 CSS/SVG/Canvas 渲染,未引入任何新的运行时依赖
    • 修复一个隐蔽问题:图标名不存在(material-symbols:emoji-events-rounded)会导致 Astro 在该处静默中断渲染,后续内容及同级元素一并丢失且无任何报错,已改用 workspace-premium 并补充了图标名校验流程
  6. 更新日志筛选条优化:容器贴合内容宽度居中、去掉两侧渐隐遮罩,修复滑块错位

    筛选条优化

    • 容器改为贴合胶囊内容宽度的「适当宽度」并居中,不再撑满整行
    • 移除两侧渐隐 mask(之前会淡化边框,看起来像被覆盖)
    • 修复滑块:桌面端不再误触发页面滚动(scrollIntoView 仅横向可滚动容器执行),布局变化后自动重算滑块位置
  7. 开发计划示例:接下来计划做书架页与 Routines 规划页

    近期规划

    • 书架页(微信读书数据集成)
    • Routines / 规划页
  8. 文章页新增 AI 摘要打字机卡片,DeepSeek 构建时生成、逐字打出展示

    AI 摘要打字机

    • 生成机制:构建前运行 npm run ai-summary,调用 DeepSeek 为文章生成摘要;内容哈希缓存(.ai-summary-cache.json),仅变化的文章重新生成
    • 展示:文章页顶部摘要卡片,复用主题 TypewriterText 组件逐字打出
    • 加密文章自动跳过;访客侧零 API 调用

    验证

    • 本地 dev 实测 8 篇全部生成、二次运行全量复用缓存
  9. 更新日志页面上线,采用时间线 + 分类筛选布局

    更新日志页

    • 时间线布局,条目卡片点击展开详情
    • 支持按「功能新增 / 功能优化 / 问题修复 / 功能删除」筛选
  10. 接入 PagesCMS 可视化后台,浏览器即可编辑文章与动态

    后台管理系统

    • PagesCMS:GitHub 仓库为唯一数据源,可视化编辑文章/动态,保存后自动 commit 回仓库
    • 自动部署流水线:GitHub Actions 检测到 push 后自动构建并上传服务器,发文后数分钟自动上线
    • 配置:仓库根目录 .pages.yml(文章/动态集合,分类标签预设值)
  11. 左侧边栏新增「今日一言」组件,每日一句

    今日一言

    • 数据源:hitokoto.cn 公共 API(动画 / 漫画 / 诗词 / 哲学分类)
    • 每日缓存:localStorage 按日期缓存,同一天刷新不重复请求
    • 兜底:API 超时或失败时随机显示内置古诗文句子
  12. 部署 CloudFlare-ImgBed 图床,Telegram 存储 + Cloudflare CDN

    博客图床

    • CloudFlare-ImgBed 部署于 Cloudflare Pages(cloudflare-imgbed-55m.pages.dev),图片存储于 Telegram 频道,KV 数据库记录元数据
    • 支持多格式上传、文件管理后台、WebDAV
    • 已接入 PicGo 客户端,支持拖拽上传自动复制外链
  13. 移除音乐可视化页与足迹地图功能

    移除

    • 音乐可视化独立页(/music/)及导航入口
    • 足迹地图页(/places/)及高德 API 相关配置
Profile Image of the Author
Sakura
Hello, I'm Sakura.
公告
欢迎来到我的博客! 我是Sakura,祝你拥有美好的一天~
分类
标签
最新动态
站点统计
文章
21
分类
7
标签
35
总字数
85,101
运行时长
0
最后活动
0 天前
站点信息
构建平台
GitHub Actions
博客版本
Firefly v6.16.7
文章许可
CC BY-NC-SA 4.0

当前页面没有目录

文章目录

当前页面没有目录