Hexo 图片引发的目录问题
本文介绍了在使用 Butterfly 主题时,遇到的目录大小计算问题,即目录仅统计首次加载时的内容而非加载完成后的实际大小。文章提供了解决方案:通过为图片添加 CSS 容器,设置 width: 100%、aspect-ratio 和 object-fit 属性,实现图片占位与裁剪,从而解决目录高度计算错误。同时,作者强调了根据网站图片比例(如 4:3、16:9 或 1:1)调整 aspect-ratio 值,并建议使用压缩后的 .webp 格式图片以保持原分辨率。最后给出了在主题配置文件中注入该 CSS 文件的方法。
Butterfly 网站深色模式
本文介绍了在 Butterfly 主题中启用深色模式并解决 SVG 图片颜色冲突的方法。通过在 _config.butterfly.yml 中配置 darkmode 选项,可以开启深色模式切换按钮,并设置自动跟随系统或固定时间段切换。然而,手动引入的 .svg 图片在深色模式下不会自动变色,仍显示为黑色。为解决此问题,使用 CSS 媒体查询 @media (prefers-color-scheme: dark) 和滤镜 filter: brightness(0) invert(1) !important,将 SVG 图片在深色模式下反转成白色。将该样式保存为 svg.css,并通过 inject.head 配置注入到网站中,从而实现深色模式下 SVG 图片变为白色、浅色模式下保持黑色,避免颜色冲突。
Shell 写的大语言模型客户端
本文介绍了 一个基于 Shell 脚本的终端聊天工具,通过调用 OpenAI API 实现与语言模型的交互。脚本首先提示用户输入 OpenAI API URL、API Key 及模型名称,并初始化一个 JSON 格式的历史记录文件。随后进入无限循环,每次读取用户输入,将用户消息追加到历史记录中,再通过 curl 发起 API 请求,从返回的 JSON 中提取模型回复并显示在终端上,同时将助手回复也更新到历史记录文件,从而实现多轮对话的上下文维护。该脚本简化了与 AI 模型的命令行交互过程,适合快速测试或二次开发。
下载 Ubuntu 壁纸脚本
本文介绍了如何使用 Shell 脚本从清华镜像源下载并提取 Ubuntu 壁纸文件。脚本首先通过 curl 获取 ubuntu-wallpapers 软件包列表,使用 grep 和 tail 提取最新版本的原生 tar.gz 压缩包文件名。接着利用 wget 下载该文件,并创建 ubuntu-wallpapers 和 temp 两个目录。然后使用 tar 解压到 temp 文件夹,再通过 find 命令查找所有 .jpg 和 .png 格式的图片文件,将它们移动到 ubuntu-wallpapers 目录中。最后删除临时目录和下载的压缩包,完成壁纸的提取与整理。整个过程自动化地从清华镜像获取 Ubuntu 官方壁纸资源,适合用于批量收集或本地备份。
Butterfly 友链存活脚本
本文介绍了如何使用一段 Shell 脚本检查指定文件中的链接存活状态。该脚本首先定义文件路径为 source/_data/link.yml ,然后判断文件是否存在,若存在则使用 grep 提取所有 https 开头的主机名,通过 sed 去除协议头,再借助 xargs 和 sh 执行 ping 命令,对每个主机发送 4 个 ICMP 包。根据 ping 结果,脚本会输出该主机“存活!”或“死亡!”。本文适用于需要定期验证博客或网站友情链接是否有效的场景,可快速检测链接的可用性,便于运维人员及时处理失效链接。
下载文件分类脚本
本文介绍了如何使用 Bash 脚本自动整理 ~/Download 目录下的文件,根据文件类型将其移动到对应的子目录中。脚本依次检查 ~/Documents、~/Pictures、~/Music、~/Videos 等目标目录是否存在,若存在则使用 find 命令匹配相应扩展名的文件(如 .txt、.docx、.jpg、.mp3、.mp4 等),并通过 -exec mv 将其移动至对应目录。该脚本实现了文档、图片、音频、视频等常见文件类型的自动分类归档,可有效避免下载文件夹杂乱无章,提升文件管理效率。
Dotfiles 备份脚本
本文介绍了一个用于自动备份配置文件的 Shell 脚本。脚本通过设置远程仓库与本地仓库路径,检查本地目录是否存在,若不存在则克隆远程仓库。随后进入本地仓库目录,将用户目录下的 .mozilla、.vimrc、.config 等配置文件复制到仓库内,并执行 git add、git commit(提交信息含当前时间)、git push 操作,从而实现配置文件的增量备份与云端同步。该脚本适用于 Linux 环境下快速备份个性化配置。
Butterfly 说说脚本
本文介绍了如何使用 Shell 脚本向 YAML 文件动态追加数据记录。脚本定义了两个函数:nofile 用于在文件不存在时创建并写入第一条记录,包含当前日期时间、固定 key 值 1 以及用户输入的内容;hadfile 则读取已有文件中的最大 key 值并自动递增,然后追加新记录。主逻辑通过检查文件是否存在来调用相应函数。该脚本适用于自动化博客或静态站点中类似说说、动态等内容的管理,实现简单且高效。



