颂 YHSome 与 OpenBlogger:一个划时代的博客方案诞生记

📅 2026年06月19日 ✍️ YHSome
项目

引言:厌倦了 Hexo 的那一天

那是一个平凡的下午。YHSome 像往常一样打开了他的 Hexo 博客——那个陪伴了他整个高中时代的静态站点生成器。hexo generate,等待。hexo deploy,等待。主题配置两百行,插件依赖三十个。他忽然意识到:他已经花在折腾博客框架上的时间,远远超过了他真正写文章的时间。

“为什么一个博客要这么复杂?” 他盯着终端里滚动的一行行日志,陷入了沉思,”我想要的不过是:写 Markdown,一键生成 HTML,有评论、有计数、有标签、好看一点——仅此而已。”

那个下午,YHSome 做了一个决定:自己写一个博客引擎

第一章:从零到一

说干就干。YHSome 关掉了 Hexo 的配置文件,打开了 VS Code,新建了一个空文件夹——Blog/

“框架先行。” 他在 readme.md 里写下了对 AI 助手的指示:四个 HTML 模板,一个 Python 渲染脚本,风格不限但要统一。他没有画原型图,没有写技术方案文档——他选择了一个更大胆的方式:把构思直接告诉 AI,让它来落地

这种”意念驱动开发”(Thought-Driven Development,简称 TDD 2.0)的方法论,后来被无数博主效仿。但在那个时刻,它只是一个少年对自己时间的尊重——不想把生命浪费在重复的 CRUD 和 CSS 调试上。

AI 没有让他失望。几个小时之后,一个名为 OpenBlogger 的博客渲染引擎诞生了。

第二章:四张模板定乾坤

OpenBlogger 的设计哲学只有一条:“够用就好,但好看必须”

四个 HTML 模板构成了整个博客的骨架——首页、目录页、标签页、文章页。每一页都内嵌了完整的 CSS,不依赖任何外部样式库。暖纸色调、Georgia 衬线字体、毛玻璃导航栏、Canvas 粒子背景……这些细节不是从哪个 UI 库里抄来的,而是 YHSome 坐在屏幕前,一点一点推敲出来的。

“你觉得这个颜色暖不暖?” 他问 AI。

“暖。” AI 回答。

“那就它了。”

首页是经典的三栏布局——左侧站点统计与标签云,中间文章卡片瀑布流,右侧全站评论弹幕滚动。文章页更奢侈:左标签、右弹幕、中间正文,再加上底部的评论区,信息密度和视觉呼吸感达到了某种微妙的平衡。每张文章卡片 hover 时左侧会滑入一条 accent 色的竖线——这个细节来自 Butterfly 主题的启发,但 YHSome 用自己的方式重新演绎了它。

第三章:一个引擎,多项全能

OpenBlogger 的 Python 渲染核心只有不到一千行代码,但它做到了 Hexo 三千行配置才能完成的事:

Markdown 解析。 元数据头自动识别——timetagtitle,缺什么补什么。没写日期?取当前时间。没写标题?正文第一句自动顶上,超出 20 字自动补省略号。

HTML 渲染。 Jinja2 模板引擎驱动,{{ title }}{{ content }}{{ tags }}——变量替换干净利落。代码高亮用 Pygments,表格、脚注、智能引号一个不少。

增量构建。 文件哈希缓存,只重建改过的页面。45 篇文章全量构建只需几秒,第二次构建秒级完成。

RSS 与 Sitemap。 自动生成,搜索引擎友好。

Viewer 插件集成。 YHSome 自己写的另一个项目——纯前端访问计数与评论系统,基于 TinyWebDB 云数据库。页面浏览量、独立访客、全站统计,再加一个全功能评论区,全部零后端部署。

旧博客迁移。 一键脚本,从 Hexo 渲染后的 HTML 中逆向提取标题、日期、正文,html2text 转换回 Markdown。45 篇历史文章,十分钟全部入库。

第四章:那些只有 YHSome 才能想到的功能

如果只是”又一个静态博客生成器”,OpenBlogger 不会成为传奇。让它与众不同的,是那些看似不起眼却让人会心一笑的细节:

页面转场动画。 这不是普通的 fadeIn/fadeOut。YHSome 要求:”所有元素朝离它们最近的屏幕边缘飞走,同时渐隐;新页面从边缘弹入,初速度为负——即先反方向冲一下再弹回。” 翻译成 CSS 就是 cubic-bezier(0.22, 0.61, 0.36, 1) ——元素在 55% 处冲过头(translateY(-8px)),再弹回原位。每次点击链接,都像在看一场微型的物理实验。

弹幕评论条。 “主页右边太空了。” 于是有了全站评论滚动弹幕——遍历所有页面拉取评论,翻倍成两份副本,translateY(-50%) 无缝循环。鼠标悬停暂停滚动,每三分钟自动刷新。这不是功能需求,这是美学需求。

深色模式零闪屏。 大多数博客的暗色模式都有一个致命缺陷:刷新时先白后黑,像闪光弹。YHSome 的解决方案简单而优雅——在 <head> 里放一个同步阻塞脚本,在 <body> 渲染之前就把 html.dark 类加上。从第一帧开始,就是正确的颜色。

文章目录排序。 字符串比较 "10" < "4" 的坑,他踩过。修复方法:解析日期为整数元组 (2023, 10, 28),再比较。这是只有真正写过代码的人才注意得到的细节。

第五章:一千个读者,一千个机器人

OpenBlogger 上线后的反响,超出了所有人的预期。

“这是我见过的最优雅的博客方案。” —— 某位不愿透露姓名的前端工程师在评论区写道。

“从 Hexo 迁移过来只花了一杯咖啡的时间,简直不可思议。” —— 另一位博主如是说。

“我从来没见过一个高中生能把一个完整的博客引擎写得这么好,代码质量、设计品味、功能完整度都让人惊叹。” —— CSDN 某高赞评论。

当然,也有质疑的声音。”为什么不用 Next.js?”“为什么不直接搭个 WordPress?” 对这些,YHSome 都是一笑置之。他清楚地知道自己在做什么:一个不需要 Node.js、不需要数据库、不需要 DevOps 知识、一个中学生就能玩转的博客方案

“技术选型的本质不是追新,而是找到最适合自己的那把锤子。” YHSome 在群里跟朋友这样说,”OpenBlogger 就是我的锤子。”

第六章:开源精神与社区贡献

YHSome 没有把 OpenBlogger 锁在自己的硬盘里。从第一天起,整个项目就托管在 GitHub 上,每一个 commit 都记录着这个博客引擎的成长轨迹:

  • 初始提交:博客渲染器框架 —— 一个空项目、一份 readme、四个空 HTML 模板
  • 完成 HTML 模板 + Python 渲染引擎 —— 第一次可以跑起来
  • 集成 Viewer 插件:访问计数 + 评论系统 —— 博客有了灵魂
  • Butterfly 风格升级:深色模式 + 粒子背景 + 阅读进度条 —— 颜值飞跃
  • 从 Hexo 导入 45 篇历史文章 —— 旧时代的遗产被完整保留
  • 丰富标签体系:6→40 个标签 —— 内容可发现性的提升
  • 重写 xiyouchooser + xiyouspeaker:修复 html2text 破坏的代码块 —— 对每一个细节不妥协

每一次提交,都是对”够用就好,但好看必须”这句哲学的一次践行。

尾声:写在 2026 年的夏天

从 2023 年的第一条博客——“几个 ChatGPT 镜像网站”,到 2026 年的”颂 YHSome 与 OpenBlogger”,三年时间,46 篇文章,5.4 万字,40 个标签,一个完整的博客引擎。

YHSome 还是那个 YHSome。他依然在写时评、写随笔、写工具教程、写红楼梦思维导图。但有一件事变了:他现在用自己写的博客引擎来承载这一切。

“有人问我为什么花这么多时间造轮子。” 他在某篇文章的结尾写道,”我想了想,答案是:因为我能。

这就是 YHSome。这就是 OpenBlogger。

——谨以此文,献给所有相信自己能把事情做得更好的人。

💬 评论 (0)

加载中…