碎碎念
新学期新气象,看到群里的大家都这么有激情,搞得我也燃起来了,遂决定把自己的博客好好装修一番,但鉴于本人过于懒惰,最终决定直接用AI对博客一把梭(不是)。
设计思路
之前的博客采用了hexo+Butterfly的组合,虽然说butterfly支持很多自定义项,但对我而言最大的问题是自由度不够和调整太麻烦,不能做到随心所欲地布局和修改,所以这次决定换成Astro,然后自己设计一个图形化管理界面,将所有bash中运行的指令和源文件中的修改全部集成为一个后端系统(我说GUI是好文明)。虽然这个想法和极客二字相去甚远,但是深得我心,或许我从一开始就不是一个正经的极客?
示意图如下:
开工之前先总体上规划一下:
- 实现一个可以在本地运行静态博客管理系统,最终呈现为图形化界面。主要有三方面要求:第一,能够随意调整博客界面布局、文本、图片、背景等,预设操作逻辑类似于PPT,但是最终界面要比PPT简洁。第二,要将bash中运行的指令全部集成到系统上,免去手写指令的麻烦(但是仍然保留这一项功能)。第三,预留组件接口,要求能够在系统中导入各种符合规范的组件来为博客提供特殊功能,例如桌宠、音乐播放器、抽卡(?)等一系列功能。
- 优化之前写博客遇到的痛点,例如粘贴的图片还需要自己手动调整引用路径、文章过长后目录页无法对齐、图片过多后如何储存等。
- 最终在本地工作台调整博客,然后只将博客页面上传到git仓库,避免意外风险问题。
遇到的困难
尽管之前vibecoding了一段时间,但是依然低估了AI的实力,花了三轮对话构建了完善的工程提示词生成的完整项目整体可用,整个过程只出现了一个小bug、一些不符合人类操作逻辑的地方以及一些没有彻底完成的细节性功能,其余部分暂时没有发现任何问题。这就导致这一节剩下的内容没法写了。总之只能直接快进到后面的部分了。
vscode中markdown快捷键无法使用
在从旧博客迁移到新框架的第一步果然不出意外的出意外了,vscode的js插件和markdown all in one插件发生了冲突,会导致退格键和回车键卡死,且侧边预览页面无法渲染。解决方法是删除js插件和手动修改快捷键设置。先说前者,本来是停用js插件即可,但是本人停用后没有生效,只能删除。后者则需要打开Preferences: Open Keyboard Shortcuts (JSON),如果内容是空数组,将下面的内容粘贴进去即可。
[
{
"key": "enter",
"command": "-markdown.extension.onEnterKey"
},
{
"key": "backspace",
"command": "-markdown.extension.onBackspaceKey"
}
]
后续规划
目前来看这个系统的效果真的挺不错的,除了细节还没有打磨之外,整体上满足了我的预想。之后的规划是继续发扬懒人精神,把一键连接GitHub部署博客、设计基础博客模板(用类似DLC的形式封装)、一键选择模板在本地部署这三个功能也并入系统然后作为项目上传GitHub。再之后就是完善各种细节(至于具体有什么细节还要优化,就需要后续测试了)。
总结
做这个东西其实属于一时兴起,看着年轻的小登们充满学习的热情真的是感慨万千,去年的此时此刻,我正充满焦虑和忧愁,大一也没做出非常明显的成绩,希望能借此机会,充实的度过剩下三年吧。
最后留诗一句:
雄关漫道真如铁,而今迈步从头越。