基于本地部署的博客总会遇到些奇奇怪怪的问题,如文章又打不开,首页一片空白,文件维护麻烦,如何配置图床,诸如此类。但对我来说就像打游戏刷怪,慢慢就能积攒解决问题的经验,先搜索互联网上的教程,如果没有再求助于 AI。前期自然免不了花时间和精力来配置,折腾之余也能带来快感,到现在我写文章已经能够固化为一套简单的流程。
但是随着文章数量增加,从短短五百篇到现在的八百余篇,就带来一个致命的问题:引用繁琐。我在写作时难免援引旧文,既方便感兴趣的读者探索,也方便我对照过去的思路有何变化1,这仅仅是贴上一段链接到文字上,就已经创造了一个入口。
过去我的解决方法很简单,在浏览器打开我自己博客的归档页,搜索关键词,定位到目标文章后右键复制链接,再贴到我现在的文章里。非常笨拙,却异常有效。不过次数多了之后,我也觉得工序过于繁琐,总想着还有没有更方便的方法,可囿于我的技术知识,又束手无策。
某天我突然想到 Minja 的本地书签思路,这是把收藏的内容类网页全部放在一个 txt 文件,再借助自动化工具 LaunchBar,只要输入关键词,就能找到过去你所收藏的一切书签。那么同样是基于本地资料检索关键词,那我能不能给自己写一个博客文章的搜索工具?
但这么做尚有两个问题:原来的方法是只检索一个本地 txt,技术难度较低,而我本地有八百多篇博客,想必检索难度有所提高(比如我修改了某篇博客链接后,它如何做到后台更新);如果放弃本地,转而备份线上文章链接,再基于此来搜索固然方便,可又要不断备份索引,流程也多。
不管了,先和 ChatGPT 聊过再说。结果证明,这的确是囿于我那薄弱的技术知识,和 ChatGPT 聊过几轮后,它就直接帮我写自动化脚本,当我跃跃欲试打开动作后,随便搜索一个关键词,过去文章呈现在一张清晰的列表上,按方向键选择目标文章。技术原理如下:
- 输入关键词后,LaunchBar 会把它传给脚本,而且动作开启了实时反馈,重新搜索就会更新列表;
- 脚本是直接读取本地文件,并把文章拆分成两部分:属性(标题、日期、标签、slug、摘要等)和正文,这样即便关键词不在属性里,也能识别到包含关键词的正文;
- 匹配方式是文字匹配,但显示顺序是优先标题,其次 slug、标签、摘要、正文,它会优先展示相关性更高的文章,相关性相同时,再按日期从新到旧排列;
- 网址则是我没想到的处理方式,我以为它会扒网上的链接,但它先读取博客的网址规则,再根据每篇文章的 slug 拼出链接,无需联网查找,再把这些整理成 JSON,方便显示为列表;
- 如果找到目标文章,回车复制链接,⌘Command+回车则复制 Markdown 链接。
让我欣喜的是,每次检索的数据都是最新保存的内容。它没有另建一份索引,也不需要常驻后台监听修改,而是每次搜索时重新读取本地文章——毕竟都是纯文本文件,读取速度快。
这个动作之所以如此有效,最关键的原因是我的博客都存放在本地,它们就是天然的数据库,压根不需要维护新的数据库,也不用联网更新索引。一切基于文件。只要我编辑或修改本地文章后,一切变动都会推送到云端,那么就没有必要再联网抓取信息,只要本地资料完备,自能从容检索。
诚然,写博客的人不多,基于本地博客的人更不多,所以狭义来看这份技术思路适用者寥寥。
好在 AI 本来就不局限于博客,检索博客文章链接只是一例,顺着这个思路延展开来,就能发现诸多痛点:查找说明书、保修单,搜索过去的办证经验并分享给亲友,复制常用文字信息(如发票抬头、收件地址),批量把 PDF 转为图片等等。
我所用的工具是 LaunchBar,但上述思路并不局限于某一软件。macOS 上的 Alfred、Raycast,Windows 上的 Flow Launcher,都能作为这种快捷入口;但如果是要处理一连串重复操作,macOS 有快捷指令和 Keyboard Maestro,Windows 有 AutoHotkey 和 Quicker。
如果你并不知道自己需要哪个软件,完全可以把这一切也交给 AI2:倾诉你的需求和设备,再让它推荐软件并设计自动化动作,反复对话调试,直到工具能跑起来。
唯需注意,一旦前期取得成果后,工具运行无碍后,日常就不用 AI 介入;等遇到新问题,再呼出 AI 辅助修改。毕竟自动化这件事,AI 越少越好。
留言
正在读取留言…