← 返回

功能、体验双优化,miniblog现已升级,轻量、免维护

作者:高仙森 最后修改:2026.8.6


依旧省流在前:本次更新支持了文章分类、优化MarkDown渲染、加入了文章分页、加入了快速返回顶端,以及一堆性能和体验的优化

项目GitHub开源地址:https://github.com/gxj8885718/miniblog

点击左下角阅读全文跳转Blog体验

下面依旧是碎碎念,想当电子榨菜的也可以看看


时间过得真快,miniblog 1.0发布,已经是半年前的事情,AI界也是发生了翻天覆地的变化。比如AI写代码有了个名词——Vibe Coding。。。

虽然个人Blog早已入土,上一篇公众号文章浏览也只有寥寥220,市面上也早已充斥着类似功能的轻量化博客站点(更有GitHub Pages、CloudFlare Pages等完全免费无需云服务器的免费方案),似乎完全没有必要再来花时间精力对miniblog这个项目进行更新。

但怎么说呢,可能这就是中登的恋旧吧,就像QQ空间,你知道你从来不再会去打开,更不再会去发布,但你知道那里有你的青春、有你的过去、可能还有你珍重的人……

回到这次更新。

工具更新

1.0版本还是通过通用大语言模型的对话,完成的开发。这次更新到1.5,基本用的都是现阶段免费的WorkBuddy(无广)。不得不说,自带沙箱真的可以随便造,直接修改目标代码块真高效……

为什么这么说,因为除了写miniblog的升级代码,我还让它进行了压力测试、安全评估、博文迁移等任务。

站点更新内容

1.支持了文章分类

像WordPress之类的传统博客,分类只是数据库中的一个字段,但是我这是纯md文件的轻量博客系统,不可能去扫描每篇文章中的“分类”字段,思来想去,文件管理最简单的方式——文件夹,那读取文章所在的文件夹不就好了。但实操起来,遇到了一个问题:文章URL与1.0系统存在兼容性问题。1.0中,文件名即为文章链接。比如“mrga0.com/文章”,如果放到二级目录中,链接就要变成“mrga0.com/分类/文章”,旧的那些已经被搜索引擎的链接就无法访问了。想要实现向下兼容,这样就不得不建立一个文章与实际储存位置的对应关系,即建个缓存,这就带来第二个更新点。

2.文章扫描优化

1.0的时候,每当有人访问,都会去拉一遍documents目录下的文件清单,文章少的时候无所谓,但一旦文章数量、并发人数变多,这个遍历的时间就无法被忽视了。生成一个缓存就很合理,后续所有拉取文章清单,获取文章与储存位置对应关系都只需要访问这个缓存即可。由于文章发布的不会很频繁,为了优化不必要的扫描,于是现在miniblog只有在检测到documents目录的修改时间发生变化了,才会去重建缓存。

3.搜索、分页

1.0的时候,是没有做目录分页功能的,搜索的实现,都是在用户浏览器端进行的。但是文章数量一多,一方面实在很难翻,而且,要把所有的缓存下到本地,这个事情也很不优雅。但是,miniblog又没有数据库,咋办,每次搜索服务器都加载一遍缓存,也很麻烦。一通研究,发现启用APCu后,就可以在内存中持续留存,后续请求不需要重复加载缓存,用起来。(后续可能考虑换成OPcache,但现在看来貌似问题不大)

4.MarkDown渲染优化

在后面的使用中,发现虽然站点可以正常解析MarkDown语法,但是像表格、代码块等很多样式,都没有绘制对应UI,比如表格没有框……,在这一版本中,做了大量的优化。除了公式,其他基本够用了。

5.回到顶部&搜索

这一版,在首页和文章页中,加上了回到顶部的快捷按钮,同时,首页上划后,搜索框没好地方放,就一起放在右下角了。

6.感知不强的一点优化

主要是苹果设备,不论是Mac还是iPhone/iPad,在从文章页返回到首页,不会记录此前滑动停留的位置,把位置写进缓存再加载,又会出现返回/刷新后有一个滚动动画,很怪,很不优雅。以及还有什么滑动动画没完成点不到文章啥的,乱七八糟也修了一堆。

更新后一些截图

电脑/iPad等桌面视图:依旧支持亮色暗色切换

image-20260806154949274

手机等移动版视图

image-20260806154856973

AI做的一些测试

在更新miniblog的时候,因为发现AI的工作空间是一个Linux的沙箱,于是让AI对miniblog做了两个测试——压力测试和安全测试,WorkBuddy竟然也顺利的完成了。

1.压力测试

直接贴报告:https://mrga0.com/轻量级博客对比报告.html

这个测试交给AI真的是太正确了。对于0开发基础的人来说,做这个小项目已经很艰巨了,想要做压力测试,第一步架设部署这些参测的网站就很复杂了,更不用说怎么生成1000篇文章导入到这些系统、如何测量响应时间、磁盘IO等性能数据……

总而言之,AI自己对比了HTMLy、Bludit、Typecho、WordPress、Ghost、Hugo,在随机生成1000篇文章、10并发、300请求的测试中,miniblog首页响应时间1.07ms,文章响应时间1.42ms,并发吞吐2,428 rps,每点击磁盘文件读写3次,除了生成纯静态html的hugo,基本就是第一梯队了,超级适合像我用的这种垃圾虚拟主机(1G内存、CPU不明、磁盘IO限制1MB/s、网速限速80~120KB/s)。让AI加测了个弱服务器模拟,首页+文章加载仅609ms,优于参测对手。

提示词1:在网上搜索一下,热门的轻量博客项目有哪些,并在github中找到项目源码,将这些热门项目与miniblog项目(https://github.com/gxj8885718/miniblog )、WordPress做个对比。对比内容大框架参考,基础对比内容以及一些常见对比项目你来加:一基础功能对比,如项目部署方式、文章发布方式,二、技术路线对比,三、项目压力对比(分别搭建这些项目的运行环境,生成1000篇文章,然后模仿用户浏览,收集页面响应时间,搜索时间,用户每次点击会产生多少磁盘文件读写)。最终给我生成一份报告,以html形式呈现。

提示词2:你可以测量一下https://mrga0.com 发起请求到得到文件花了多少ms(类似电脑中取文件的寻道时间),并整体加测一轮模仿用户浏览首页、文章页的完整耗时。(服务器模拟1G内存、垃圾硬盘响应时间、垃圾网络延迟)。

2.安全测试

直接贴报告:https://mrga0.com/SecurityAudit-v1.3.13.html

只能说AI真的挺方便的,可以对代码做审计。虽然我完全不是码农,也从未接触过安全相关的工作,但只是用自然语言,让AI帮忙做个安全评估,就给出了这份报告,并给了解读。比如这个报告是基于1.3.13的评估报告,Parsedown SafeMode 显式关闭等问题,是因为插入视频等属于markdown原生不支持的语法,想在页面显示就需要关闭,而且本项目为个人博客,只采用站长同步上传.md文件的方式更新文章,因此可以忽略。

提示词:请下载miniblog项目(https://github.com/gxj8885718/miniblog )源码,帮我全面审查源码,告诉我这个站点可能存在哪些漏洞,给我生成一份安全性评估报告,以HTML形式呈现。

最后

做了这些,真的是完全认可黄仁勋 GTC 2026 演讲说的内容,未来是AI的未来……

如果你看到这里,贴上AI润色的本文,真的写的好多了。。。撰稿人:ChatGPT

为什么 2026 年,我还在维护一个没人用的小博客系统?

作者:高仙森
最后修改:2026.8.6

半年前,我做了一个很小的项目——miniblog

它没有数据库,没有后台,没有复杂的依赖,只需要放几篇 Markdown 文件,就能变成一个博客网站。

当时做它,更多只是为了满足自己的需求:我想要一个足够轻、部署简单、几乎不用维护的博客,而不是一个越来越臃肿的 CMS。

半年过去,AI 编程已经从当初的"写点代码"变成了现在大家常说的 Vibe Coding。与此同时,miniblog 也迎来了第一次比较大的升级。


为什么还在维护它?

说实话,现在再做个人博客,多少有点逆时代。

有 GitHub Pages、Cloudflare Pages 这种几乎零成本的静态方案,也有 WordPress、Typecho、Ghost 等成熟的博客程序,功能都比 miniblog 丰富得多。

上一篇介绍 miniblog 的公众号,到现在也只有两百多次阅读。

从任何角度来看,这个项目似乎都没有继续投入时间的必要。

但怎么说呢……

可能这就是中登的恋旧吧。

就像 QQ 空间。

你知道自己已经很多年没有打开过,也几乎不会再发动态了。

但你知道,那里放着你的青春,有你的过去,也可能还有一些曾经很重要的人。

所以,这次还是把它继续做下去了。


这次升级了什么?

相比 1.0,这次更多是一次"功能 + 体验"双升级。

一、终于支持文章分类了

这是很多人提过的需求。

传统博客的分类,通常只是数据库里的一个字段。

但 miniblog 本身没有数据库,每篇文章就是一个 Markdown 文件。

如果要求每篇文章都去维护一个分类字段,又违背了它"文件即文章"的设计理念。

所以最后采用了一个最符合直觉的方案:

文件夹就是分类。

文章放到哪个目录,它就属于哪个分类。

不过真正实现的时候,却遇到了一个兼容性问题。

1.0 的文章链接就是文件名,例如:

mrga0.com/文章名

如果改成目录结构,就会变成:

mrga0.com/分类/文章名

这样一来,搜索引擎已经收录的旧链接全部都会失效。

为了兼容旧版本,我最终建立了一份文章与实际存储位置的映射缓存

用户依然访问旧链接,而程序自动找到真正的 Markdown 文件位置。

整个升级过程中,兼容性反而成了最大的工作量。


二、文章扫描速度更快了

1.0 有一个比较"偷懒"的实现。

每当有人访问网站,程序都会重新扫描整个 documents 目录。

文章只有几十篇的时候,这几乎感觉不到区别。

但文章越来越多,或者访问人数稍微高一点以后,每次扫描目录都会变成一种浪费。

所以 1.5 增加了文章缓存。

以后文章列表、文章位置、分类等信息,都直接从缓存读取。

而缓存什么时候更新?

答案也很简单:

只有 documents 目录发生变化的时候。

如果没有新增、删除、修改文章,就不会重新扫描整个目录。

这样既保持了"免维护"的特点,也避免了大量不必要的磁盘访问。


三、搜索和分页终于来了

以前首页没有分页。

搜索也是浏览器端完成的。

文章少的时候没问题。

但如果文章越来越多,就意味着:

  • 首页越来越长;
  • 浏览器需要下载全部文章索引;
  • 搜索速度也越来越慢。

我一直不想为了这些功能引入数据库。

后来研究了一圈,发现 APCu 很适合这种场景。

文章索引会一直保存在内存里,后续请求无需重复读取缓存文件。

整个搜索和分页逻辑依旧保持轻量,同时响应速度也快了很多。


四、Markdown 渲染完善了

以前其实已经支持 Markdown。

但是很多细节一直没有完善。

比如:

  • 表格没有边框;
  • 代码块样式比较简单;
  • 一些常见 Markdown 元素显示效果一般。

这一版把这些地方基本都补齐了。

除了公式,目前常见的 Markdown 基本都能比较舒服地展示。


五、补了一堆"感觉不到"的小优化

这一类更新,其实工作量一点都不少。

比如苹果设备(Mac、iPhone、iPad)返回首页时,浏览位置无法恢复。

后来尝试过缓存滚动位置。

虽然解决了问题,但刷新页面时又会看到明显的滚动动画,看起来非常奇怪。

于是又换了另外一种实现方式。

除此之外,还有各种滑动动画、点击时机、页面切换等细节,也顺手修掉了一堆。

这些优化,大多数用户可能根本不会注意到。

但每天使用的时候,都会舒服一点。


更新后的界面

(这里放桌面版截图)

支持亮色 / 暗色模式。

(这里放移动版截图)

移动端布局也进行了优化。


AI 不只是帮我写代码

其实,这次升级让我感触最大的,并不是写代码。

而是 AI 已经能够参与整个开发流程。

这次我主要使用的是 WorkBuddy(无广)

不得不说,自带 Linux 沙箱真的很好用。

除了写升级代码之外,我还让 AI 做了很多以前一个人几乎不可能完成的事情。


1、压力测试

以前如果让我自己做压力测试,大概第一步就放弃了。

因为首先要:

  • 部署多个博客系统;
  • 批量生成 1000 篇文章;
  • 自动导入;
  • 编写压测脚本;
  • 统计响应时间、吞吐量、磁盘 IO;
  • 最后整理成报告。

而这一次,我只是告诉 AI:

找几个热门博客程序,搭建起来,对比 miniblog 的性能。

最后,它真的完成了。

它自动部署了:

  • HTMLy
  • Bludit
  • Typecho
  • WordPress
  • Ghost
  • Hugo

统一生成 1000 篇文章,在相同条件下完成压力测试,并最终输出了一份 HTML 报告。

报告地址:

https://mrga0.com/轻量级博客对比报告.html

测试结果也让我有点意外。

在随机生成 1000 篇文章、10 并发、300 请求的条件下:

  • 首页响应约 1.07 ms
  • 文章页约 1.42 ms
  • 吞吐量约 2428 RPS

除了纯静态生成的 Hugo,基本属于第一梯队。

后来我又让 AI 模拟了一台"垃圾服务器":

  • 1GB 内存;
  • 极慢磁盘;
  • 较高网络延迟。

最终首页和文章页完整加载约 609 ms,依然优于参测的大部分博客系统。

对于我现在这台共享虚拟主机来说,这正是我希望看到的结果。


2、安全审计

AI 还帮我完成了一份完整的源码安全审计。

报告地址:

https://mrga0.com/SecurityAudit-v1.3.13.html

虽然我既不是程序员,也没有做过安全相关工作。

但现在,只需要一句自然语言:

"帮我审查整个项目有哪些安全风险。"

AI 就能够下载源码、分析项目,并最终生成一份完整的 HTML 报告。

例如报告中提到 Parsedown SafeMode 被关闭。

这其实是一个设计上的取舍。

因为插入视频等内容,本身就不是 Markdown 原生支持的语法。

为了能够正常展示这些内容,需要关闭 SafeMode。

而 miniblog 本身定位就是个人博客,只允许站长上传 Markdown 文件,因此这一项风险是可以接受的。


最后

做完这次升级,我最大的感受其实并不是 miniblog 又多了几个功能。

而是很多过去需要一个团队才能完成的事情,现在一个普通人,也可以借助 AI 去完成。

写代码、重构、性能测试、安全审计……

它已经不只是一个代码补全工具,而是真正参与到了整个开发流程。

也许几年后再回头看,2026 年,会是软件开发方式发生巨大变化的一年。

而 miniblog,只是我亲身经历这一变化时留下的一点小小记录。


项目地址:

GitHub:https://github.com/gxj8885718/miniblog

如果你也喜欢这种轻量、免维护、Markdown 驱动的博客,欢迎体验,也欢迎提出建议。

联系我