为不同尺寸适配字体:博客字体可读优化,媒体查询响应式实践
本文介绍了作者在收到多位访客反馈后,发现博客页面在高分屏(如 4K 或视网膜屏幕)上出现文字模糊、字号过小的问题,而作者自身设备显示正常。经排查,排除了字体与 CSS 样式错误,推测问题源于操作系统或浏览器的缩放比例与页面适配机制冲突。作者最初采用 CSS 的 clamp() 函数实现流体排版,但实测发现该函数在缩放后的 4K 屏幕上计算出的字号异常偏大,难以精准适配不同设备的缩放习惯与像素密度。为此,作者转而使用 @media 媒体查询为不同视口宽度指定基准字号:屏幕宽度超过 2560 像素时根字体设为 1.4rem,低于 1024 像素时设为 0.9rem,以平衡各类阅读场景。此外,博客内置了“阅读模式”按钮,可切换为系统字体、宽行距的沉浸式排版,但多数非技术背景访客不理解该功能,甚至不知如何启用。作者曾考虑撰写图文指南并置顶首页,又担心过于正式显得像使用命令,最终搁置了计划。文章反映了在美观与用户体验之间权衡的困境,以及为不同设备适配字体所付出的努力。
静态博客实现路径纠错:网站路径纠错实现,自动跳转 SEO 优化
本文介绍了网站重构或迁移后路径变化导致搜索引擎索引失效的问题,并给出了一种基于前端脚本的路径纠错解决方案。文章描述了当用户访问错误路径时,浏览器会展示预设的 404 页面,然后通过脚本获取当前路径,并与从 sitemap.txt 中提取的合法路径列表进行语义匹配,利用 Levenshtein 距离和路径层级评分找到最可能的正确路径,并在 5 秒后自动跳转。还提供了调试函数 error_location 用于本地测试。文章详细说明了编写脚本过程中遇到的坑,例如 Butterfly 主题的 404 容器类名、Hexo 生成的 sitemap 包含 index.html 后缀问题,以及如何通过另一个脚本去除 index.html 实现干净跳转。最后给出了在 _config.butterfly.yml 的 inject 中引入脚本的配置示例。该方案有效保留了 SEO 索引,提升了用户体验。
Butterfly 固定首页高度:首页文章列表,固定高度动态补齐方法
本文介绍了 Butterfly 主题中首页文章列表高度不统一的问题及其解决方案。由于博客每页显示固定篇数(如 10 篇),末页文章数量不足时,列表容器高度会大幅缩减,导致底部大量空白,影响视觉一致性。为解决该问题,文章提供了一种基于 JavaScript 的动态补齐方法:通过 fillRecentPostItems 函数检测 .recent-post-items 容器内实际文章条目数,若少于目标值(如 10),则自动追加对应数量的隐藏 div 元素(visibility: hidden),使容器高度始终与满篇数保持一致。该逻辑还通过监听 pjax:complete 事件兼容 PJAX 无刷新加载,确保页面切换后自动执行补齐。同时指出,在 index_layout 参数为 4 或 6 的特殊布局下,由于文章条目高度依赖封面图片,纯隐藏标签会导致高度不一致,因此需要额外添加空封面占位元素。最后说明如何通过主题的 inject 配置将脚本注入页面底部,无需修改核心文件,便于维护升级。该方案有效解决了分页高度不一致的布局问题。
Butterfly 底部随机友链:博客页脚随机展示友链与响应式实现
本文介绍了作者在网站优化过程中,重新关注友链功能并为其创造更大价值的思考与实践。作者在投入大量精力调整网站加载速度、排版布局和交互逻辑后,偶然通过社交媒体结识了一批新人博主并主动交换友链。然而,作者意识到传统友链页面容易被访客忽视,无法有效为小博主引流,因此设想在页脚以随机形式展示友链,使其更自然地触达访客。作者参考了安知鱼博客主题的类似实现,并基于此前编写的用于抓取友链数据的 JavaScript 脚本进行改造。脚本逻辑包括:在配置文件中添加空容器标签,页面加载后异步请求 /friends 页面 HTML,解析 DOM 提取第一个 flink-list 中的友链信息,过滤无效数据,再根据屏幕宽度(大于 768 像素显示 6 个,否则显示 3 个)随机抽取不重复的友链接,动态生成链接元素插入页脚。这一响应式设计避免了手机端布局错乱,同时充分利用电脑端空间,使友链从静态列表变为动态信息流,真正释放其引流价值。
AI 自动生成文章摘要:LLM 自动生成摘要,提升 SEO 与阅读体验
本文介绍了作者如何利用 AI 技术为博客文章自动生成摘要,以解决主题默认截取前 500 字作为页面描述所带来的内容不完整、体验不佳的问题。作者借鉴了 CSDN 的 AI 摘要功能,基于已有的 Markdown 文件处理、API 调用与 Frontmatter 解析经验,设计并实现了 1 个自动化脚本。该脚本接收文章文件路径,读取内容后以 --- 为定位符提取正文,将正文发送给 DeepSeek 模型,并附带精心设计的提示词,要求生成以“本文介绍了”或“本文描述了”开头、字数超过 200 字、符合中英文空格规范的中文摘要。最后将 AI 返回的摘要作为 description 值插入到 Frontmatter 中。此脚本不仅能够提升 SEO 优化效果,更重要的是尊重访客的阅读体验,使他们能快速判断文章内容,实现更高效的浏览。整个实现复用 auto-tags.py 等已有代码,技术路径清晰,体现了技术服务于人的理念。
Butterfly 自定义提示条:网站更有人味,Hexo 自定义时段问候
本文介绍了如何为 Butterfly 主题添加一个根据时间段自动显示问候语的 Snackbar 提示条功能。文章将一天划分为六个时段并对应不同问候语,通过 JavaScript 脚本判断首页后延迟一秒触发提示。同时详细说明了利用主题的 inject 配置项将脚本注入所有页面,并针对 Snackbar 自带的 Roboto 字体与网站 ZCOOLXiaoWei 字体不统一的问题,编写自定义 CSS 覆盖字体设置,使提示条外观与网站风格一致。整个过程轻柔自然,不干扰浏览体验,且支持灵活修改文案,为博客增添人情味。
Butterfly 网站默哀功能:默哀日网站自动变灰功能的实现方法
本文介绍了如何使用一段简单的 JavaScript 代码为网站添加默哀功能,即在特定纪念日自动将网页元素从彩色变为灰白色。代码通过检测当前日期是否匹配清明节、国家公祭日、汶川地震纪念日、七七事变纪念日、九一八事变纪念日、烈士纪念日、日本投降纪念日以及毛泽东、周恩来、邓小平逝世纪念日等日期,若匹配则对 document.documentElement 应用 grayscale(100%) 滤镜。文章还说明了需在主题配置文件中通过 inject 方式导入该 JS 脚本,并提供了示例配置代码段。整体实现简洁,无需额外提醒文字,仅通过视觉变化体现默哀。
Butterfly 关注粉丝统计:用友链数当粉丝数,改造按钮显示统计
本文介绍了如何通过 JavaScript 脚本将博客“关注我”按钮改造为显示友链数量的动态统计。作者利用博客的友链页面(如 /friends)抓取所有友链链接,统计数量后替换按钮中的显示内容,实现类似社交平台的粉丝数效果。文章详细说明了脚本实现步骤、配置方式(如 Butterfly 主题的 inject 设置),并提醒根据实际页面路径修改代码。该方法以交换友链作为“关注”的等价行为,是一种轻量级的替代方案。
Butterfly 随机文章跳转:Hexo 主题实现文章随机跳转盲盒教程
本文介绍了如何为 Butterfly 主题实现随机跳转文章的功能,通过编写 JavaScript 脚本爬取归档页面并提取文章链接,再随机选择一个链接进行跳转。文章详细展示了从复用友链跳转脚本到修改选择器适配归档页面的过程,并给出了完整的 randomizer 函数代码。同时说明了在主题配置中注入脚本文件以及在页脚添加触发链接的方法,最后提醒不同主题需根据实际情况调整链接类名。
Butterfly 友链随机跳转:Hexo 主题实现友链随机跳转简单教程
本文介绍了如何在 Butterfly 主题中实现随机跳转友链的功能。原本计划使用 AnZhiYu 主题,但因配置繁琐而选择了 Butterfly 并稍作美化,但缺少安知鱼主题的随机跳转友链功能。作者通过前端抓取友链页面,提取所有 a.href 链接组成列表,然后随机抽取并跳转。具体实现为:定义一个名为 go 的异步函数,使用 fetch 获取 /friends 页面,解析 HTML 后提取所有 .flink-list-item a 的 href 属性,过滤无效链接后随机选择并跳转。通过修改主题配置文件,将脚本注入到每个页面的底部,并在页脚自定义文本中添加一个调用 go() 的链接,既不影响导航栏布局,又能为访客提供惊喜。作者最终将此功能作为彩蛋,避免与开往按钮混淆。



