计划下个月的广州出行:MongoDB 聚会广州站,旧地重游与回忆
本文介绍了作者收到 MongoDB 开发者聚会邀请后决定前往广州的经历与回忆。文章描述了作者对广州的熟悉与怀念,包括越秀区的烈士陵园、白云山等旧地重游的感触,以及计划顺道探望住在越秀区的姑妈、姑父,并尝试前往未曾到过的增城体验当地风景与荔枝。作者回忆了广州炎热的天气、高铁站附近的闷热感受、昂贵的酒店住宿与更实惠的招待所选择,以及深巷中凉水铺的糖水、艇仔粥等美食带来的味觉记忆。此外,文章提到了网上订票时需要填写个人信息,作者特意使用域名邮箱以显得正式;还讨论了携带 MacBook Air 在高铁上写博客的打算,最终决定听从安检建议带上电脑,但未必在车上写作。全文以私人化的笔触交织了对广州的眷恋、对技术聚会的期待,以及对城市细节的观察,流露出对旧地重游的温情与对平凡生活的真实体味。
小区里那只流浪猫:被小区流浪猫跟踪到门口,我为何无法接纳
本文介绍了作者在小区楼道中遇到一只流浪花猫,并详细描述了这只猫长期在户外流浪的生存状态:它依靠翻垃圾桶、舔路边积水为生,全身体表携带大量细菌,远高于室内家猫,可能含有沙门氏菌、弓形虫等致病微生物。作者家住在三楼,某晚雨停后这只猫竟跟着作者上楼并守在家门口久久不去,导致作者和母亲无法正常外出散步。作者虽觉得猫可爱,但因自身长期患有鼻炎、对猫毛过敏,且家中已养了三只宠物乌龟(猫的捕猎本领会威胁乌龟安全),加之作者从小在城市楼房长大,对动物保持边界感,因此无法收养这只流浪猫。文中也提到母亲受“猫来穷人家,狗来富人家”的民间说法影响,而作者则认为城市单元楼空间狭小,猫带来的所谓“财运”无从体现。最后,猫已自行离开,作者声明自己并非参与网络上关于爱猫与虐猫的争论,写这篇博客仅为记录一件真实小事,不站队、不引战。
静态博客实现路径纠错:网站路径纠错实现,自动跳转 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 配置将脚本注入页面底部,无需修改核心文件,便于维护升级。该方案有效解决了分页高度不一致的布局问题。
静态博客实现邮件订阅:不需要服务器,RSS 实现博客邮件推送
本文介绍了作者针对静态博客实现邮箱订阅推送的解决方案。文章首先指出现有方案(如基于 GitHub Issues 的推送)存在重复推送、依赖读者 GitHub 账号等问题,随后提出利用 GitHub Actions 的 Cache 系统记录已推送文章链接,从而避免重复。作者详细说明了整体流程:通过定时触发 Actions,运行 Python 脚本抓取博客 RSS 地址中的最新文章,解析标题、摘要和链接,并与缓存文件比对,若为新文章则生成 HTML 邮件,并通过 SMTP 协议密送订阅者。所有敏感配置(如 SMTP 凭据、邮箱列表)均存入 GitHub Secrets 以保护隐私。文章还给出了完整的 YAML 工作流配置和 Python 脚本示例,支持自定义邮件模板标签。最后,作者推荐使用 Resend 等免费 SMTP 服务,并列出需要创建的 Secrets 参数,方便读者 Fork 仓库后直接使用。该方案实现了真正的不重复邮箱推送,适用于任何拥有 RSS 输出的静态博客。
DeepSeek TUI 初尝试:尝试开源社区的命令行工具,体验与分享
本文介绍了作者作为 DeepSeek 忠实用户的长期使用体验与最新发现。作者最初被 DeepSeek 吸引,因其开源特性带来代码透明与掌控权,API 按量付费模式对个人开发者极为经济,相比 Claude Code 等按月订阅方案更为灵活。近期因 Trae 引入高价排队机制而放弃使用,转而重新关注 iFlow CLI 但渴望更优的开源替代品。在社交媒体上发现由非专业出身的开发者 Hunter Bown 创建的 DeepSeek TUI,这是一款开源社区出品的命令行 Agent 工具。安装通过 npm 一行命令完成,初始化界面支持语言选择与 API Key 输入,默认使用 DeepSeek V4 Pro 并自动根据任务切换至 V4 Flash 以节省成本。其左侧面板实时展示 AI 当前操作、错误信息及 Token 预估费用,透明化设计让用户清楚每一步进展。作者利用该工具解决了之前由同一模型在 iFlow CLI 中编写的有问题的 PJAX 友链代码,实现了“自己修复自己 Bug”的效果。最后作者计划用 DeepSeek TUI 基于 SMTP 和 RSS 为静态网站搭建文章更新邮件提醒功能,旨在提供更纯粹、不依赖第三方平台的订阅体验,并充分利用闲置的邮箱地址。全文展现了开源工具链的自由度与社区创新的价值。
你会后悔自己的选择吗:一年的后悔与成长,从循环到学会向前
本文介绍了作者从 2024 年 5 月开始拥有第一个博客网站至今的建站历程与内心反思。作者回顾了反复建站、更换域名和主题的过程,从最初使用 MkDocs 搭建简陋站点,到尝试 Jekyll、Hexo、WordPress 等多种引擎,以及 Butterfly、Chirpy 等主题,经历了从只写技术教程到逐渐记录生活的转变。文中描述了作者因初中休学、技校退学、开店经历、长期感冒等事件产生的后悔情绪,但也认识到这些经历塑造了现在的自己。作者反思了早期缺乏关注、频繁更换站点导致友链失效等问题,最终领悟到网站可以同时写技术与生活,并决定向前看,努力做好下一件事。摘要涵盖了作者对博客活动的参与、与博友的互动、以及从 CSDN 到独立博客的转变,强调了成长过程中的自我意识与学习能力的重要性。
为无头像用户提供头像解析:CSS 和 JSON 替换 Waline 默认头像
本文介绍了如何解决评论区默认 Gravatar 头像导致大量匿名用户使用相同默认图标、破坏页面视觉一致性的问题。作者首先指出大部分评论系统基于 Gravatar 机制,但国内用户很少注册,导致评论区频繁出现蓝色背景的默认头像。最初的方案是利用 CSS 的 img[src=""] 属性选择器和 content: url() 声明直接替换头像地址,但发现 CSS 文件被浏览器或 CDN 缓存后无法即时更新,且随着无头像访客增多,维护成本极高。为此作者提出了更优雅的解决方案:将头像映射关系写成 JSON 格式,部署在 GitHub Pages 上,再通过自执行 JavaScript 脚本从服务器拉取该 JSON,动态生成 CSS 样式并注入页面头部,从而替换所有匹配的 Gravatar 头像。该方案不依赖特定评论系统,只要底层使用 Gravatar 机制均可适用。作者最终将此服务命名为“梁栋烨头像联盟”,并开放共享,同时鼓励读者自行搭建以完全掌控数据。文章还表示会为长期访客提供头像解析工单,帮助其获得专属视觉标识。
Butterfly 底部随机友链:博客页脚随机展示友链与响应式实现
本文介绍了作者在网站优化过程中,重新关注友链功能并为其创造更大价值的思考与实践。作者在投入大量精力调整网站加载速度、排版布局和交互逻辑后,偶然通过社交媒体结识了一批新人博主并主动交换友链。然而,作者意识到传统友链页面容易被访客忽视,无法有效为小博主引流,因此设想在页脚以随机形式展示友链,使其更自然地触达访客。作者参考了安知鱼博客主题的类似实现,并基于此前编写的用于抓取友链数据的 JavaScript 脚本进行改造。脚本逻辑包括:在配置文件中添加空容器标签,页面加载后异步请求 /friends 页面 HTML,解析 DOM 提取第一个 flink-list 中的友链信息,过滤无效数据,再根据屏幕宽度(大于 768 像素显示 6 个,否则显示 3 个)随机抽取不重复的友链接,动态生成链接元素插入页脚。这一响应式设计避免了手机端布局错乱,同时充分利用电脑端空间,使友链从静态列表变为动态信息流,真正释放其引流价值。
网站字体间隔及文章段落:如何用 CSS 调整字体间距与段落缩进
本文介绍了作者在维护个人博客网站时发现字体拥挤、段落缺乏缩进导致可读性差的问题,并借助 DeepSeek 寻求解决方案的过程。通过分析,作者确定需要针对文章正文容器(article p 和 div#article-container p)添加 text-indent: 2rem 实现首行缩进,同时为全站 body 设置 letter-spacing: 0.1rem 以增加字符间距。随后,作者在 _config.butterfly.yml 主题配置文件中正确引用了自定义的 paragraph.css 文件,并利用 GitHub Actions 自动部署更新。文章还强调了在开发者工具中验证样式是否生效、以及清除浏览器缓存或强制刷新页面等常见排查步骤,帮助读者避免因配置遗漏或缓存导致修改无效的陷阱。最终,通过精准的 CSS 选择器和统一的间距设置,网站排版获得了“书卷气”般的舒适阅读体验。



