跳到主要内容

用DeepSeek Harness做了个个人网站工具

· 阅读需 4 分钟

前言

静态博客维护起来有点麻烦,尤其是对于图片的处理。之前为了处理博客里的图片,用Shell脚本写过工具,用Python写过,用Go写过,涉及图片上传到图床、图片压缩等。换来换去,现在基本不用图床了,图片直接和Markdown文件放一起,便于管理。由于我的网站用的国外的服务,访问速度不快,所以我会把图片进行压缩,这样页面加载起来可以快一点。考虑到avif格式图片压缩率比较高,现在我网站的图片基本都用avif格式了。一直以来,我都是用自己写的命令行工具去进行图片的处理的,勉强够用。

除了图片,我还会让AI给我生成博客的slug,这样URL的观感会好一些。最近体验了下DeepSeek Harness,我突然想用它来给我做个个人网站工具网站,这样能方便一些。

用DSH写工具

说干就干,我先简单调研了下,因为Docusaurus是基于NodeJS的,所以我想用纯NodeJS做,不想用Python、Go之类的后端语言,于是用NestJS+Vue这样的技术栈。

我整理了下我的需求,写了2000多字的提示词,然后喂给DeepSeek。它自动启用goal模式,并列出任务清单执行,还自动构建、测试。

DeepSeek运行了足足有半个多小时,Token花了我大概6元。不过,初次执行的产物就已经可以直接运行了,功能上没有很大的问题,后续再微调下就行。

由于前后端都是使用的NodeJS,所以启动起来非常简单,只需要cd到项目的目录,然后运行:

npm run dev

就行了。反正我是自己用,就不用构建了,直接dev模式就行。

下面介绍下我给我的网站做的工具网站,在本地运行,功能有:Wiz转博客、图片管理、工具箱。

Wiz转博客

我习惯先在为知笔记里写,然后用为知笔记导出Markdown。但是,要发布到博客需要经过一些处理,例如:添加front matter、处理图片等。整个过程有多个步骤,但是用工具的话,都可以帮我处理:

在处理元数据这步,会调用大模型生成标签和slug(就是图里的文件名,我将文件名作为slug)。还会自动确定合适的阅读更多插入的位置,这个是用的一套基于元素高度计算的算法确定的,而不是大模型,因为大模型不擅长这个,加上这个就变得很慢了。

在处理图片这步,会调用ffmpeg来对图片进行压缩。ffmpeg可不止是可以转换视频格式,也可以转换图片格式,功能超级强。在这里可以看到压缩前后大小对比,还可以设置缩放和CRF。这样比起我之前使用命令行工具一次性处理要精细化很多。

图片管理

图片管理可以看每篇博客或笔记关联的图片,然后也可以对这些图片进行处理,同样也可以设置缩放和CRF。还可以检测冗余图片、检测图片坏链,保障图片不多不少。

工具箱

至于工具箱,我暂时就想到一个打包网站的功能,这样我可以备份网站。可以看到,虽然网站上有上百篇博客,但整体大小只有5.84MB,在手机随便拍张照片就有几MB的今天,这个整体大小有点微不足道了。

一些感慨

AI的写代码能力如今已经变得很强大了,用AI写一些小工具非常便捷。AI的出现对程序员也产生了深远的影响,一方面提升了效率,另一方面也取代了一部分工作。我们无法阻止AI的潮流,只有顺应AI前进的步伐。