独自一人的时候
经过了万次“要不要”的思索之后,我克服了自己的犹豫,选择退出了那些无聊的 QQ 群。这些群多是我上学时候,或者折腾东西无聊时候加的兴趣群,什么 SpeedyNote、Arch、Gentoo、假面骑士之类的。我觉得我真的做对了,人就应该去主动寻找适合自己的生活方式,我就不应该去搞什么无所谓的社交。这些占用我的个人时间,整得好像我是那啥成功人士一样。每天和那么多人聊天还被无视,简直就是费神又费力! SpeedyNote 是以前自己上技校、想搞开源项目那时候加进去的,群主是一个北美读书的人,退出原因是群里很无聊。以前给这个项目贡献过一点鸡毛蒜皮,而且我本身也不是电容屏用户,什么电容屏笔记确实和我没关系,加进去都算是热心人士添倒忙了。群名就是反馈交流群,因为这个就是群主自己写了一个软件,所以就很多使用了这个软件的用户进群,本来喜欢藏实力还有点自卑的我,听到这一声声的大佬确实受不了。 Arch 群是 Shorin 那个,和他们在一起聊天真的很累。本来就是小众系统,玩这个系统大部分应该都是自己一个人研究的。我记得有的还写博客,但是至少加群聊是很少的。这种玩亚文化还喜欢加群里的,没想到整个 A...
什么是最好的评论系统
我用的第一个评论系统是 Giscus,那时候我用来建站的工具是 Jekyll,主题是 Chirpy。这让我想起来 2025 年年底的那段时间,当时我是一个专门写技术文章的博主,文章的内容无非就是分享一些 Linux 的小技巧,以及自托管为什么好,还有介绍 RIME 如何安装之类的,听着就很土,大部分博主都写过的题材。 回顾往事我是这样子完成创作流程的——写完一篇文章后,把它上传到博客网站(不如说是代码仓库),打开那台二手 Mac 的录屏功能,对着这个网站页面口吃地读稿。没啥适配剪辑,纯粹就是读稿,你能想象吗?这是 2025 年的创作方式,怕不是 2015 年吧! 由此我就正式开始了我的博客建站之旅,为什么不是博客写作之旅?因为那时候开始我就反复建站,你可以去问一下王科文,他总是在问我网站为什么挂了,因为当时我在建站……好端端的网站为什么要重新建站,答,因为我当时是把建站当玩具玩的,这就是折腾期。从此我开始了不断地换建站引擎,因为不同博客主题支持的评论系统不同,我就体验过那么多评论系统。 评论系统Giscus 首先是 Giscus,我对这玩意的印象就是简单。他使用 GitHub D...
优化了一下网站样式
从建站到现在,算下来已经十多天了,我决定优化一下现有的网站。首先,我对导航菜单进行了调整。原本的“文章”菜单项改为了“归档”,这样的命名更加准确,也更符合博客的常规用法,让访客能够更直观地理解这个页面的功能(主要原因还是原本 Menu 为文章,访客点进来却显示归档,十分不统一,但是无法修改,只能从 Menu 入手了)。 其次,我优化了首页的布局样式(还是更加喜欢这种)。将 index_layout 从原来的 3 改为了 4,采用了新的卡片展示方式,让文章列表的呈现更加美观和现代化,提升了整体的视觉效果和用户体验。在内容展示方面,我将分页设置进行了调整。将每页显示的文章数量从 10 篇增加到了 15 篇,这样访客在浏览时可以一次性看到更多的内容,减少了翻页的频率(重点还是为了适配旁边那个长度),提升了浏览效率。 最后,也是最实用的改进,我为所有的说说条目添加了标签分类功能。之前发布的一百多条说说现在都有了对应的标签,包括“生活”、“美食”、“技术”、“娱乐”等多个分类。这样一来,访客可以更方便地通过标签筛选和查找感兴趣的说说内容,也让整个说说板块的内容组织更加清晰有序。这次优化虽然...
Waline 配置邮箱提醒
Waline 官网对于这部分的介绍过于复杂,折腾的时候总是漏了配置几个变量。最近发现秋葵笔记的评论系统从 Giscus 换到了 Waline,貌似是看到了我写给别人的回复。突然想起来,自己好像没在网站上,写过关于 Waline 配置邮箱提醒的文章。如果你已经搭建好了 Waline 并且已经给博客网站用上了,你还需要配置这几个环境变量(一个也不能少): AUTHOR_EMAIL:作者邮箱地址,用来接收读者评论通知。 SITE_URL:网站 URL,用来生成评论通知中的链接。 SMTP_USER:SMTP 用户名,填用来发提醒的那个邮箱,用来发送邮件。 SMTP_PASS:SMTP 密码,不是邮箱密码,是邮箱授权码,用来发送邮件。 SMTP_HOST:SMTP 主机地址,比如腾讯的 smtp.qq.com,用来发送邮件。 SMTP_PORT:SMTP 端口号,比如腾讯的 465,用来发送邮件。 SITE_NAME:网站名称,用来在评论通知中显示。 SMTP_USER 和 AUTHOR_EMAIL 可以是同一个;如果你不想泄露真实邮箱的话,可以给 SMTP_USER 配置一个域名邮...
QQ 空间和咚兄弟
QQ 空间发文章最近又做了一个梦,梦中我是一个 QQ 空间,空间中有一个叫咚兄弟的人,我和咚兄弟在空间中聊天,聊天中我问咚兄弟:“你是一个人吗?”咚兄弟回答:“我是一个人。”……神经病啊,我是梦到我重建了很久的博客网站,一直找不到很好的建站引擎,而且写的播客也没人看。 那天我听完一节课后,把数学笔记放在了 QQ 空间里,没想到看的人数指数级暴涨,一度来到了千指数级,好多人都访问过了我的 QQ 空间。我直接兴奋到想,要不要搭建一个 Notion 站把 QQ 空间的内容同步过去,以后就干脆在 QQ 空间写作了。 不定时打开 QQ 空间,总会收到很多陌生人发来的谢谢博主。我仅仅只是分享一个数学笔记而已,不至于帮助那么大吧?在梦里我把这件事告诉给了我爸,他理解并支持我。然而,一切的梦因仅仅只是我在睡前想了一下,能不能拿 QQ 空间来建站……我服了我自己 变身暴太郎咚兄弟在梦里我和一群人成为了《暴太郎咚兄弟》,我成为了红,而这些怪人居然在我的小区蛮横。当然,既然红色不是桃井太郎,那么其它颜色自然也不是本人。比如粉色不是原来的鸡哥,变成了一个有点小丑的女孩子,黄色也不是鬼妹,而是一个身材曼妙...
Butterfly 随机文章跳转
既然提到了 AnZhiYu 主题,那就不得不说一下随机跳转文章的作用。访客第一次来到我们的博客网站,不知道该从哪一篇文章开始看,这时候随机跳转能够很大程度上缓解访客的焦虑。Butterfly 包括大部分主题并没有内置原生的随机跳转功能,所以需要使用 JS 进行功能实现,流程如下: graph LR; A[爬取归档页面] --> B[提取文章链接] --> C[放入候选列表] --> D[随机链接跳转]; 由于之前已经写过了一个随机跳转友链的 JS 脚本,可以复用一下: 12345678910111213141516async function go() { const response = await fetch('/friends'); const html = await response.text(); const parser = new DOMParser(); const doc = parser.parseFromString(html, 'text/html...
Butterfly 友链随机跳转
这个网站原定计划是使用 AnZhiYu 主题来搭建的,但当时想到 AnZhiYu 需要配置那么多奇怪的地方,一上午时间全花在配置上,还是干脆使用 Butterfly 稍微美化一下好了。安知鱼的主题有一个随机跳转友链的功能,但是这个功能在 Butterfly 主题中没有。其实这个功能我还挺想要,因为现在的友链比以往任何时候要多。 随机跳转的本质就是抓取链接组成列表,在列表里面进行随机抽取最后跳转到抽中的链接。听起来貌似不难,但是如何获取友链才是一个大问题:比如 source/_data/link.yml 这个文件,你无法在构建完成的网站上找到。 所以我选择了在前端抓取友链页面,提取 a.href 的结果汇聚成列表: 12345678910111213141516async function go() { const response = await fetch('/friends'); const html = await response.text(); const parser = new DOMParser(); cons...
明日方舟和崩坏三
又做了一个梦,梦到自己打游戏,虽然已经很久没玩二游了。第一个梦,本来是梦到自己和同学回到了老学校,因为我们要做体检。醒来上了个厕所,第二个梦接着第一个梦。梦到自己在玩明日方舟,那群同学带自己玩。打过活动终于拿到了满级女儿,我还吐槽:“明日方舟是老带新的游戏,不然打不过活动!”。第三个梦是紧接第二个梦,为什么说第二个呢?因为我中途又上了一次厕所。这次梦到自己在玩崩坏三,独自一个人玩。拿婚纱德莉莎打一个难关卡,凭借着不断躲避敌人,最后赢了。做了梦醒来,虽然心里瘾瘾的,但是你叫我玩二游我都不会去玩了。
尝试压缩图片成 WebP
大家都知道啊,我平时喜欢去友链里点击“图片压缩”用在线的工具压缩图片。 今天晚上开始我发现,群主的网站好像无法访问了,无论是换到 114.114.114.114 还是 8.8.8.8 都没有效果。我又尝试了在手机和服务器上分别打开网站,事实证明,我们这一带确实无法访问网站了。无论是服务器的原因,还是自己的原因,WebP 肯定是要继续用下去的,这就到考验自己的时候了。一开始我想的是使用 FFmpeg 来解决这个问题,于是我去询问了 AI,结果 AI 跟我说: 从您的终端输出可以看到,您的 ffmpeg 支持 WebP 解码( D.VILS webp 中的 D 表示解码),但 不支持编码 (没有 E 标志)。 它是这样解释的: D = 解码支持 ✓ E = 编码支持 ✗(缺少) V = 视频编解码器 I = 帧内编解码器 L = 有损压缩 S = 无损压缩 哦,我懂了,那难道我就不玩了?不不不,接下来我继续问它,有什么推荐的工具吗?它说,有的,比如 cwebp。查了一下这个 cwebp,发现它用起来更加简单。你可...
AstrBot 再尝试
之前那篇关于 AstrBot 初尝试的文章发布之后,我原本以为会像往常一样石沉大海,毕竟技术类文章通常关注度不高。但出乎意料的是,评论区很快就有人留言了,而且不是那种简单的“沙发”或者“顶”,而是真正有内容的回复。这让我感到既惊喜又好奇,毕竟在上一篇文章里我确实遇到了不少问题,特别是关于如何让 AstrBot 执行 Shell 命令的困扰。作为一个技术爱好者,我深知遇到问题时的无助感,所以看到有人愿意分享解决方案,心里顿时涌起一股暖流。这种技术社区互帮互助的精神,正是开源世界最吸引人的地方。 好友教学 我怀着期待的心情点开通知,一看留言者的头像和昵称,果然是之前建议我使用 AstrBot 的那位好友。他不仅记得我之前遇到的困境,还特意花时间写了一段详细的教程,告诉我如何正确开启 AstrBot 的 Shell 功能。 按照好友的指导,我重新登录 AstrBot 的管理后台,找到了那个隐藏在设置深处的权限开关。当我小心翼翼地点击启用后,再次回到对话界面尝试询问系统信息。原来问题出在我对权限设置的理解上——我以为只要安装了 Shell 插件就能直接使用,但实际上还需要在 AstrB...

