备份你的 Waline 评论:备份数据,借助 GitHub 定时执行任务
本文介绍了 1 个用于备份 Waline 评论数据的 Python 脚本及其配套的 GitHub Actions 工作流。脚本基于 Playwright 自动化浏览器操作,通过 Waline 官方提供的一键导出功能,将评论数据保存为 JSON 文件。运行时需要设置环境变量 WALINE_RESET_URLS 获取重置链接,依次访问后台并跳转至迁移页面,点击导出按钮完成下载。文章详细展示了参数解析、链接处理、文件命名及异常处理等核心代码,并说明了 Actions 的定时触发与密钥配置方式。此外,作者提醒用户应创建私密仓库存放备份,并强调保护好备份文件的重要性,因为其中包含的用户信息可能被恶意利用。整体内容兼顾代码展示与技术讲解,适合需要自动化备份 Waline 数据的开发者参考。
写了个壁纸切换脚本:macOS 用 Shell 自动更换壁纸的简单方法
本文介绍了在 macOS 系统上通过 Shell 脚本实现随机壁纸自动轮换的方法。作者受他人动态启发,希望为 macOS 打造类似 Linux 的壁纸切换方案,并借助 desktoppr 工具配合 Homebrew 安装。脚本使用 wget 从随机壁纸接口下载图片,以时间戳命名文件,避免因文件名重复导致系统不更新壁纸;通过 trap 捕获 Ctrl + C 信号,在退出时恢复原有壁纸;同时检测并跳过重复图片,避免频繁切换相同内容。用户可通过设置 WALLPAPER_SWITCH 变量自由调整切换间隔。该方案相比功能繁重的壁纸软件更轻量,不常驻后台,资源占用极小,适合追求简洁高效的用户。文章提供了完整代码,并解释了设计细节与健壮性处理,帮助读者快速上手。
从 Git 历史中复制文件:恢复历史提交中的旧文件,不必用 Reset
本文介绍了如何使用 Git 的 git show 命令从历史提交中恢复旧文件,以解决网站主题修改后想回退却忘记配置细节的问题。作者先描述了因访客不满新样式而决心改回旧版,但已遗忘具体参数,借助 Git 历史记录找回文件的经历。文章对比了 git reset 与 git show 的差异,强调后者更轻量,只展示指定提交中某路径的文件内容,不改变工作区或提交历史。具体操作是先通过 git log 定位目标提交的哈希值,再执行 git show c5b8851:path > path 将输出重定向到当前文件,并说明 > 覆盖写入与 >> 追加写入的区别。最后指出该方法适用于文本、配置、样式表等普通文件,且不受 LFS 管理限制。
被 A 社吓哭了:Claude Code 隐私检测,让我果断卸载回归开源
本文介绍了作者将日常开发工具从 DeepSeek TUI 切换到 Claude Code 的经历,虽然仅将 Claude Code 作为前端、后端仍使用 DeepSeek API,但其出色的交互体验曾令作者满意。然而,作者通过一则 7 月 1 日发布的技术视频发现,Claude Code 内部存在隐蔽的检测机制:它会读取系统时区、自动改写提示词日期格式、在文本中嵌入四种不同类型的引号以区分用户,甚至会在用户申诉邮件中植入 JavaScript 代码来获取真实 IP。此外,该工具内置包含百度、阿里等国内大厂的域名黑名单,被怀疑用于验证用户身份合法性。作者深感隐私受到严重威胁,认为 An-thropic 公司可能不仅满足于封号,还会收集时区、IP、语言等敏感数据。尽管本人从未注册 Claude 账号,仍果断执行了 npm 卸载命令并清理残留文件。文章最后建议,若顾虑隐私,应改用 DeepSeek TUI、OpenCode 等完全开源透明的终端工具,强调在当今环境下隐私价值远超工具效率的提升。
微信账单同步日历:使用 Python 脚本将支付记录导出到苹果日历
本文介绍了 1 个将微信支付账单 XLSX 文件转换为苹果 ICS 日历事件的 Python 脚本。作者为帮助母亲实现简易记账,设计并实现了该工具。脚本读取微信导出的 XLSX 账单,解析交易时间、收支类型和金额,按日期汇总每日收入与支出,然后生成 ICS 格式日历文件。生成的事件为全天事件,标题仅包含每日收支总金额和净收支,描述中保留笔数等细节,去除了店名等冗余信息,避免信息过载。用户只需在命令行指定 XLSX 文件路径,脚本即可输出 ICS 文件,双击即可导入 macOS 或 iOS 日历,每天打开手机便可直观查看收支概况。文章提供了完整的 Python 代码,包含文件解析、ICS 构建、命令行交互等模块,并给出了项目 GitHub 地址。该脚本设计极简实用,不包含图表分析或复杂分类,就像在纸质日历上写字一样纯粹直接。
批量拉黑 B 站评论区账号:评论区太乱?这个脚本帮你批量拉黑
本文介绍了作者为解决 B 站评论区充斥不适内容而开发的 Bilibili Comment Blacklist Tool 脚本。该工具基于 Playwright 框架,能够自动滚动评论、点击“更多”按钮并执行“加入黑名单”操作,全程不显示评论内容,避免用户情绪污染。文章详细阐述了脚本面临的两大技术挑战:嵌套 Shadow DOM 的结构穿越以及默认隐藏的“更多”按钮,并给出通过 JavaScript evaluate 强制覆写 CSS 样式、使用 dispatchEvent 模拟点击的解决方案。同时,脚本处理了拉黑后评论区自动刷新的情况,通过 UID 去重避免重复拉黑。部署步骤包括克隆项目、创建 Python 虚拟环境、安装依赖及 Playwright 的 Chromium 浏览器,并需将 B 站 Cookie 粘贴到配置中。文章最后强调该工具仅供学习研究,存在封号风险,作者通过加入随机延迟(0.5 - 3.5 秒)模拟人类操作以降低检测概率,并计划未来增加按关键词或用户名拉黑等精细功能,帮助用户过滤不良内容。
为不同尺寸适配字体:博客字体可读优化,媒体查询响应式实践
本文介绍了作者在收到多位访客反馈后,发现博客页面在高分屏(如 4K 或视网膜屏幕)上出现文字模糊、字号过小的问题,而作者自身设备显示正常。经排查,排除了字体与 CSS 样式错误,推测问题源于操作系统或浏览器的缩放比例与页面适配机制冲突。作者最初采用 CSS 的 clamp() 函数实现流体排版,但实测发现该函数在缩放后的 4K 屏幕上计算出的字号异常偏大,难以精准适配不同设备的缩放习惯与像素密度。为此,作者转而使用 @media 媒体查询为不同视口宽度指定基准字号:屏幕宽度超过 2560 像素时根字体设为 1.4rem,低于 1024 像素时设为 0.9rem,以平衡各类阅读场景。此外,博客内置了“阅读模式”按钮,可切换为系统字体、宽行距的沉浸式排版,但多数非技术背景访客不理解该功能,甚至不知如何启用。作者曾考虑撰写图文指南并置顶首页,又担心过于正式显得像使用命令,最终搁置了计划。文章反映了在美观与用户体验之间权衡的困境,以及为不同设备适配字体所付出的努力。
Waline 修复版本日志:修改博客主题配置,固定 Waline 版本实操
本文介绍了由于 Waline 客户端更新导致 Butterfly 主题样式出现异常,例如多出按钮或布局变化,这些并非主题作者更新所致,而是 Waline 自身变动。为解决此问题,文章指导用户如何修改 Butterfly 主题内置的 Waline 版本以固定版本。具体步骤包括:确保使用 Butterfly 主题;找到主题配置文件末尾的 CDN 选项段;定位 waline_js 项,取消注释并指定版本,例如使用 https://unpkg.com/@waline/client@v3.8.0/dist/waline.js;修改后提交源码至 GitHub 等静态服务器,部署后检查评论区结构。文章还指出 Waline 将源码作为 JS 直接引用热更新虽快,但频繁更新无关样式功能反而带来不便,建议开源社区保持本体仅修复 Bug,样式由第三方维护。最终通过固定版本避免不必要的更新问题。
RSSHub 订阅折腾实录:RSS 阅读器结合树莓派,订阅 B 站博主
本文介绍了作者使用 NetNewsWire 这款 macOS 上的 RSS 阅读器,重新获得了对阅读内容的掌控感,能够自由订阅个人博客并针对特定源设置系统通知。文章描述了 RSS 阅读带来的独特孤独体验,并由此引出著名的开源项目 RSSHub,它可以将不支持 RSS 的网站转换为标准订阅源。作者利用闲置的树莓派,通过 Docker 和一份 Docker Compose 配置文件轻松部署了 RSSHub 实例,其中包含无头浏览器、RSSHub 和 Redis 三个服务,并给出了安全建议,如关闭非必要服务的端口映射以减少攻击面。文章还详细说明了如何订阅 B 站 UP 主:通过浏览器开发者工具获取登录后的 Cookie 中的 SESSDATA 键值对,将其配置为环境变量,并添加对应 UID,即可生成独立的 RSS 订阅链接。最后,针对首次访问正常但后续出现 412 状态码的问题,指出需补充完整 Cookie 而非仅 SESSDATA 来解决。整体而言,本文是一份实用性强的 RSSHub 部署与 B 站内容订阅指南。
Butterfly 配置 Umami:手把手教你为网站部署和配置访问统计
本文介绍了作者因对不蒜子统计 API 的不稳定感到困扰,并在发现网站总浏览量接近两万后,对访客来源、设备类型等数据产生强烈好奇,最终决定部署开源网站分析工具 Umami 的过程。文章详细描述了 Umami 的部署步骤:首先通过 Vercel 官方链接一键克隆仓库,创建项目并配置 Neon 数据库实现自动集成注入环境变量 DATABASE_URL,其次绑定自定义域名或使用 Vercel 提供的二级域名,然后触发重新部署。部署完成后使用默认账号 admin 和密码 umami 登录,并立即修改密码并切换界面语言为简体中文。核心环节是将博客网站添加到 Umami 统计界面,通过修改 Hexo 主题配置文件(如 _config.butterfly.yml),将 enable 设为 true,填入 serverURL 和从 Umami 控制台获取的 website_id,并可按需关闭不蒜子以避免数据冗余。最终,Umami 能提供访客国家地区地图展示、页面停留时间、访客行为等详细分析,帮助作者根据数据优化写作方向。全文强调通过 Vercel 与 Neon 的深度集成,部署过程已极为简化,即使是技术基础薄弱的用户也可按步骤完成。



