这个博客现在是 Hexo + 一个自己写的主题(叫 rose),部署在腾讯 EdgeOne,套了 blog.leguans.cn 的域名。准确说,这个博客是豆包帮我做的——起因也简单,豆包更新了个新版本,支持工作模式,还送了一个月套餐,我就随手试了试。结果这一试,从最早那页 HTML 个人主页,一路做到现在的 Hexo 主题,基本全是它干的,我负责提需求、审核、填内容。

最开始就一页 HTML

最早这里不是什么博客,就一个 index.html,豆包生成的。样式写在 <style> 里,逻辑写在 <script> 里,打开就是”个人主页”:关于、作品、经历、联系方式,再挂一个博客视图。

那页还挺任性的。CSS 变量定死了主题色 #964572,标题用衬线,整个页面一个图标都没有。这套审美一直没变,rose 主题基本就是照它画的。

单页的问题也很明显。文章写死在 JS 数组里,加一篇要动代码;评论存在 localStorage,换个浏览器就没影了;点赞数字刷新一下可能就回去。能用,但撑不起”博客”两个字。

中间差点自己造轮子

想正经上博客的时候,本来打算自己写一套。反正就是文章列表、详情、评论区这些东西,自己撸也就几天的事。也确实让豆包先写了个雏形,带评论区那种。

但写着写着觉得没必要。hexo、Astro 这些静态博客框架,把生成、插件、部署这套都趟平了,干嘛从零再踩一遍。干脆拿一个成熟框架,让豆包把官方主题克隆下来改,改成带我们自己审美的样子——省时间,还能保住前面单页那套设计。

最后选了 Hexo。理由很实在:生态大、插件多、写文章就是 Markdown,推到仓库自动部署,一套齐活。

rose 主题是怎么长出来的

主题把单页那套设计语言整个搬了过来:同样的 CSS 变量、同样的 #964572、同样的衬线标题、同样的”无图标”原则。等于把之前那个 index.html 的魂,注进了一套正经模板里。

功能是后来让豆包一个一个补的。

朋友圈那块我最喜欢。它跟博文不一样,博文要写正经东西,朋友圈就是碎碎念,一条几句话,配几张图。长得太长的默认收起,收起的地方压一层渐隐遮罩,点开再展开;图片点击能放大看。这个是从”我想记点生活但不想写长文”的需求来的。

友链、留言板也都做了。友链从旧博客搬过来,补了头像;留言板是个独立页面,挂的还是 Waline。移动端适配也修过一轮:文章页长代码块会把整个容器撑到七百多像素宽,手机上横向溢出,最后给 grid 子项补了最小宽度才算完。亮色、暗色、跟随系统三档,prefers-color-scheme 加个手动开关。

搬家,又是搬家

这博客不是第一次搬家。早年是 Typecho,后来迁到 Astro,域名也从 www.ymxx.net 换成了 blog.leguans.cn——net 到期续费太贵,干脆丢了。这次是又搬一次。

搬家最怕的不是代码,是数据。文章、朋友圈、友链都得原样搬。碎碎念是从旧站一条条拖过来的,友链也是。评论走的是 Waline,从旧站导出一份 1403 条评论的 JSON,一次性灌进去。

灌的时候踩了个坑:Waline 按路径存评论,旧站路径都是小写,新站生成出来大小写对不上,好几篇的评论怎么都显示不出来。最后在模板里把评论路径统一转成小写,评论才全找回来。

部署和一些收尾

部署用的是腾讯 EdgeOne Pages,连上 GitHub 仓库,代码推上去自动构建发布,域名 CNAME 指过去。写文章就是往 source/_posts 丢一个 Markdown 推上去,完事。

有一批老文章里的图,是 typecho 时代的外链,域名早挂了,全是 404。原图找不到,就让豆包按文章内容生了一批写实风格的图,转成 webp 换上去,至少不破图。

首页最近也改了。以前首页就是文章列表,现在改成介绍页,文章都收进 /posts/,想写就写,不用管版面。

折腾完回头看一眼,这博客到现在也没多少篇东西,但每一处基本都是豆包做的,我主要就是在旁边提需求和挑毛病。后面大概还会继续让它改。