Waline 后台空白问题:一天内从排查到修复
本文介绍了作者在使用 Waline 评论系统时遭遇的后台空白故障及其解决过程。某天作者发现管理后台页面完全空白,反复刷新并更换浏览器均无效,随后重新部署时遇到 Vercel 502 错误,经排查得知是 @waline/vercel 新版本存在兼容问题。在 DeepSeek 指导下手动回退版本号后编译通过,但后台仍为空白。作者向 Waline 提交了 Issue,详细描述了现象、步骤和日志。项目负责人认为与另一 Issue 相似,但作者对比后发现本质不同,并补充了截图和日志。当日下午,维护者 lizheming 确认问题源于新版 Waline 核心模块改动引发的连锁反应,导致所有基于新版的后台均失效。当晚,外国用户和作者朋友峰哥也反馈了同样问题。作者通过修改 Neon 数据库中评论的 user_id 字段使评论正确显示博主标签。深夜,维护者发布了修复版本,去除了有问题的功能模块,虽然界面简陋但核心功能恢复。全文展示了开源社区快速响应(一天内修复)的优势,也指出了活跃项目频繁重构(如 Rust 重写)给用户带来的升级困扰。
开往拒绝后:我放弃所有博客活动,回归自由写作
本文介绍了作者将自己的博客网站提交至“开往”博客互推项目的经历,以及由此引发的心理变化与最终决定。提交后,机器人通过审核让其欣喜若狂,但随后人工管理者发现其网站实际未满两个月,便移除了该申请。这一反复过程让作者感到被戏弄与失望,从兴奋跌入失落。他反思自己为何如此在意规则与认可,联想到此前参加“十年之约”活动也曾因不懂规则被驳回,逐渐认识到自己性格不适合这类需要严格审核与集体审视的活动。作者认为加入活动后内容易被公开品评,违背了自己写博客自由记录、自得其乐的初衷。最终,他删除了网站上所有为参加活动预留的徽章与代码,不再追求任何收录或认可,回归到最初安静、只属于自己的写作状态。文章通过个人经历探讨了博客圈中规则、归属感与个人自由之间的冲突,表达了在失望后重新找回初心的淡然与释然。
公开邮箱被爬虫抓取后,我遭遇了邮件轰炸
本文介绍了作者遭遇邮件轰炸的经历,起初怀疑一位儒雅随和的朋友,但随后发现自己的 QQ 邮箱地址曾公开写在网站的关于页面中,可能被搜索引擎爬虫抓取并汇入垃圾邮件发送者数据库,导致攻击者可能是陌生人。作者于 26 号修改了网站设置,彻底删除 QQ 邮箱显示,替换为专用的域名邮箱,并决定日常不再使用已暴露的 Q 邮。文章提醒独立博客作者检查公开邮箱,建议将邮箱隐藏在卡片或联系表单后,防止爬虫抓取明文地址。作者反思之前关闭了 Cloudflare 的邮箱保护功能,导致防线失守,并警告有一伙人正大规模从搜索引擎结果中扫描公开邮箱发动垃圾轰炸。虽然攻击者仍可能是熟人,但邮箱公开使得线索指向两个方向:社交圈内敌意或无差别自动化攻击。作者最终将问题交给黑名单机制处理,等待真相。
独立博客抄袭事件,原创与创意来源探讨
本文介绍了独立博客圈中的一起抄袭事件及其引发的思考。作者的朋友姓王者被抄袭,发现抄袭者并非为了名利,而是为了满足某些平台对“原创文章不少于20篇”的硬性门槛而机械式搬运。作者通过与 AI 讨论,厘清了抄袭的法律边界:若未接触原文且子句表达不同,即使主题相似仍属原创;反之,若接触过原文且未标注来源则构成抄袭。AI 还建议创意枯竭时去真实世界中体验生活,而非抄袭他人。此外,文章强调了知识共享协议(CC 协议)的重要性,指出多数独立博客通过标注协议明确转载需署名并附原文链接,违反者即使不违法也违背了作者授权。作者计划后续普及 CC 协议知识,帮助读者正确引用。文章呼吁独立博主保护原创,同时尊重他人创作成果。
我为何把个人网站换回最初的简洁主题
本文介绍了作者在管理个人网站和 B 站信箱过程中经历的反思与回归。作者首先描述了 B 站信箱因评论被顶到热门而充斥陌生人的无效留言,使其难以分辨真实交流,转而通过回看视频评论区逐条回复来寻求真实感。接着,作者回顾了个人网站建设中因添加过多定制功能如毛玻璃卡片、深色模式等导致界面臃肿混乱,最终意识到最初的主题简洁完整,决定换回旧主题以回归初心。由于缺乏 Git 记录,作者借助 Matugen 生成配色方案,并利用 GLM 将配色写入主题,预期呈现更明亮清新的效果。同时,作者保留了部分实用功能如 CSS 覆写规则、404 页面自动修复、友链模块和评论区头像解析,实现删繁就简的融合升级。最后,作者反思过度美化的教训,强调简洁是需学习的克制,并建议访客在重新访问前清空浏览器缓存以避免样式冲突。
Cloudflare 邮箱混淆,导致 PJAX 网站邮箱显示异常解决方法
本文介绍了作者在使用 Cloudflare 服务时遭遇的邮箱显示异常问题及其解决过程。凌晨作者发现网站前台邮箱全部变为 [email protected],经 AI 提示得知这是 Cloudflare 内置的电子邮箱地址混淆功能,旨在防止爬虫抓取真实邮箱减少垃圾邮件。文章随后阐述了 Cloudflare 作为域名托管与 CDN 加速服务商的背景,以及该功能的底层实现原理:在数据传输层修改 HTML 源码将邮箱替换为占位符,并注入加密 JavaScript 脚本,在安全环境下动态还原。然而作者的网站采用了 PJAX 技术实现局部刷新,导致该脚本在页面切换时不会执行,邮箱始终显示占位符,国内访客无法看到有效联系方式,造成沟通障碍。作者最终通过 Cloudflare 仪表盘关闭该功能,但凌晨操作时遭遇 API 返回 504 错误,疑似后台维护,直到星期六早上才成功关闭,网站联系方式恢复正常。
用 GitHub Actions 和 RSS 实现静态博客邮件推送不重复
本文介绍了作者针对静态博客实现邮箱订阅推送的解决方案。文章首先指出现有方案(如基于 GitHub Issues 的推送)存在重复推送、依赖读者 GitHub 账号等问题,随后提出利用 GitHub Actions 的 Cache 系统记录已推送文章链接,从而避免重复。作者详细说明了整体流程:通过定时触发 Actions,运行 Python 脚本抓取博客 RSS 地址中的最新文章,解析标题、摘要和链接,并与缓存文件比对,若为新文章则生成 HTML 邮件,并通过 SMTP 协议密送订阅者。所有敏感配置(如 SMTP 凭据、邮箱列表)均存入 GitHub Secrets 以保护隐私。文章还给出了完整的 YAML 工作流配置和 Python 脚本示例,支持自定义邮件模板标签。最后,作者推荐使用 Resend 等免费 SMTP 服务,并列出需要创建的 Secrets 参数,方便读者 Fork 仓库后直接使用。该方案实现了真正的不重复邮箱推送,适用于任何拥有 RSS 输出的静态博客。
告别匿名头像,用 CSS 与 JSON 动态替换 Gravatar 默认头像
本文介绍了如何解决评论区默认 Gravatar 头像导致大量匿名用户使用相同默认图标、破坏页面视觉一致性的问题。作者首先指出大部分评论系统基于 Gravatar 机制,但国内用户很少注册,导致评论区频繁出现蓝色背景的默认头像。最初的方案是利用 CSS 的 img[src=""] 属性选择器和 content: url() 声明直接替换头像地址,但发现 CSS 文件被浏览器或 CDN 缓存后无法即时更新,且随着无头像访客增多,维护成本极高。为此作者提出了更优雅的解决方案:将头像映射关系写成 JSON 格式,部署在 GitHub Pages 上,再通过自执行 JavaScript 脚本从服务器拉取该 JSON,动态生成 CSS 样式并注入页面头部,从而替换所有匹配的 Gravatar 头像。该方案不依赖特定评论系统,只要底层使用 Gravatar 机制均可适用。作者最终将此服务命名为“梁栋烨头像联盟”,并开放共享,同时鼓励读者自行搭建以完全掌控数据。文章还表示会为长期访客提供头像解析工单,帮助其获得专属视觉标识。
博客页脚随机展示友链的小技巧,与响应式实现
本文介绍了作者在网站优化过程中,重新关注友链功能并为其创造更大价值的思考与实践。作者在投入大量精力调整网站加载速度、排版布局和交互逻辑后,偶然通过社交媒体结识了一批新人博主并主动交换友链。然而,作者意识到传统友链页面容易被访客忽视,无法有效为小博主引流,因此设想在页脚以随机形式展示友链,使其更自然地触达访客。作者参考了安知鱼博客主题的类似实现,并基于此前编写的用于抓取友链数据的 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 选择器和统一的间距设置,网站排版获得了“书卷气”般的舒适阅读体验。



