惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
The Blog of Author Tim Ferriss
TaoSecurity Blog
TaoSecurity Blog
U
Unit 42
Blog — PlanetScale
Blog — PlanetScale
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
大猫的无限游戏
大猫的无限游戏
NISL@THU
NISL@THU
Scott Helme
Scott Helme
G
Google Developers Blog
T
Threat Research - Cisco Blogs
aimingoo的专栏
aimingoo的专栏
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Apple Machine Learning Research
Apple Machine Learning Research
H
Hackread – Cybersecurity News, Data Breaches, AI and More
T
The Exploit Database - CXSecurity.com
G
GRAHAM CLULEY
The Cloudflare Blog
The Hacker News
The Hacker News
Spread Privacy
Spread Privacy
N
Netflix TechBlog - Medium
Hacker News: Ask HN
Hacker News: Ask HN
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
C
Cisco Blogs
O
OpenAI News
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Forbes - Security
Forbes - Security
Recorded Future
Recorded Future
C
CXSECURITY Database RSS Feed - CXSecurity.com
D
DataBreaches.Net
云风的 BLOG
云风的 BLOG
S
Security Affairs
B
Blog RSS Feed
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
P
Privacy & Cybersecurity Law Blog
Martin Fowler
Martin Fowler
Know Your Adversary
Know Your Adversary
F
Full Disclosure
The GitHub Blog
The GitHub Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Google DeepMind News
Google DeepMind News
博客园 - Franky
F
Fortinet All Blogs
Last Week in AI
Last Week in AI
C
Cybersecurity and Infrastructure Security Agency CISA
L
Lohrmann on Cybersecurity
T
Tenable Blog
V
V2EX
W
WeLiveSecurity
Google Online Security Blog
Google Online Security Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed

爱吃猫的鱼

当身体被强制暂停 盘点开发者眼里的赛博大善人(一) 博客系统 FlecBlog 现已正式开源 Windows 注册表原理与实战指南 GitHub Actions 自动化部署全攻略 2025 年度总结 替代 Alist 的多存储文件列表程序 OpenList 高通 410 随身 WiFi 刷入 Debian 利用 BAT 脚本实现高效自动化部署方案 B7c61c40 全面详解开箱即用的 AI 工具 Cursor 2024 年度总结 使用 Hexo 多种部署方法搭建个人网站 利用 Termux 让安卓手机成为专属家庭服务器 全面详细的常用Linux命令汇总(2) Follow:信息浏览聚合,万物皆可订阅 QRcodeGen项目介绍,基于Python打造二维码生成新利器 Nginx 可视化编辑工具 Nginx UI 安装和使用 深入探究电子邮件三大协议 使用Ventoy集成多PE打造强大U盘 Xterminal:颜值高、功能强,追求卓越体验的SSH工具 高效利用 GitHub 搜索,精准快速获取所需 IDM:广受欢迎的高速下载管理器 让Meting API解锁音乐开发新可能 零基础Docker入门指南 服务器最佳搭档,宝塔和1Panel的部署与选择 FinalShell:功能强大的服务器管理和远程连接工具 掌握Markdown技巧,轻松应对写作需求 C3dc4fa3 玩转npm:从基础到实践的全面指南 GitHub Desktop:让代码托管不再高深莫测 85af4b3 推荐10个有趣的摸鱼网站,让快乐简单起来 F34ad695 E2f1455b 503a6294 22ea4c20 A43ddadb Ba7d8a84 Caffd8d6 20820ccd E3ddac0 88040fa7 Ca1756cf Aa5669ee 78084f29 98b56a65 Efba7c23
自研博客系统打造极致极简创作体验
Talen · 2026-01-23 · via 爱吃猫的鱼

1 前言

不知不觉中我的个人博客网站创建了两年多了,两年来 Hexo 一直是我主要的建站工具,换了很多主题,在界面美化、细节优化上投入了大量时间和精力,也曾对比试用过WordPress、Halo以及Hugo、VuePress等多种建站工具,但用下来还是觉得 Hexo 最顺手、最灵活,最终无一例外的用回 Hexo。

不过,用Hexo的时间长了,也渐渐遇到了一些让我困扰的问题。最主要的两点,一是跨设备创作不太方便,我用的是 GitHub Actions 工作流,每次在不同设备上写文章,都需要拉取仓库、编辑、提交再触发部署,流程虽自动化了,但总缺少点无缝和即时的体验;二是各种功能依赖第三方服务比较分散,为了更好的体验,我得额外部署 Artalk 评论、Moments 动态,还得接入 51la 统计、Algolia 搜索、Follow 订阅等服务,管理起来有点零散。这些问题时不时让我动念头,想换到更一体化的系统,一站式的管理创作和全部功能。

于是我花了很长时间研究 WordPress 和 Halo。WordPress 生态非常成熟,插件主题应有尽有,但对我来说它太“重”了,PHP环境、数据库、频繁的安全更新和插件冲突,维护成本让我望而却步;Halo 则轻量很多,Java 写成也挺现代,可定制门槛较高,生态也还不够丰富,用起来总觉得差了点完全贴合自己习惯的灵活度。一番深入研究后,收获颇丰,虽然没能找到理想的“替代品”,但让我对建站方式有了更多思考。

这种思考持续了一段时间后,我开始认真考虑另一种可能性:为什么不试着自己来搭建一个更符合个人需求的博客程序呢?从选定技术栈开始,我一点点实现核心功能,用户管理、文章编辑、评论、动态、搜索、统计等功能的内置支持,以及跨设备访问的优化。开发过程中不断调整方案,平衡细节优化和性能打磨,代码结构也在迭代中越来越清晰有条理。

随着功能一个个完善,在前段时间我正式把站点迁了过来,文章、评论、动态、友链都保留完整,唯独统计信息只能选择放弃。现在没了繁琐的发布流程,也没有割裂的三方服务,所有操作都收归一处,这番折腾总算没白费,困扰许久的问题在这里找到了最舒服的解法。

2 新站展示

2.1 博客端

博客端,即前端前台,基于 Nuxt 4.2.2 框架,整体风格极简,参考 清羽飞扬 大佬的 Butterfly 主题魔改设计。

  • 首页
  • 文章

图片

图片

  • 归档/分类/标签
  • 友链/动态/留言
  • 关于

图片

图片

  • 个人信息/通知中心

图片

图片

2.2 管理端

管理端,即前端后台,使用 Vue 3 + Element Plus 创建,以操作简单、功能实用为设计原则,可以更好的将重心放在文章创作和内容输出上。

  • 仪表盘

图片

  • 内容管理
  • 互动管理

图片

图片

  • 系统管理

图片

图片

  • 文章创作

2.3 服务端

服务端,即后端,使用 Go 语言编写,遵循 RESTful 设计原则,且 Swagger 文档完善,推荐使用 Docker 部署,资源占用极低。

  • Seagger 文档

图片

图片

3 设计理念

这次自建博客的核心理念可以用三个词概况:极简、一体化、个人化

极简是视觉和交互层面的双向追求,我不想让博客变成信息过载的门户,只希望访客进来就能安静阅读。我在保证一切是自己喜欢的前提下,尽可能保留干净的排版、可读性强的字体和舒适的配色。说到这里就不得不再次提到清羽飞扬大佬,他的站点太漂亮了,我甚至想把配图、配色也借鉴过来,本站博客端有八成以上参考了他的设计,另外他写的文章也都是干货满满,强烈安利一波。

以前我遇到的痛点之一就是服务太分散,评论、统计、搜索等功能需要借助自部署或第三方服务,而现在的一体化则完全解决了这一问题。所有操作、功能都归于一处,打开管理端就可以完成创作、发布、管理、统计,跨设备也只需要重新登录,再也不用拉仓库、推代码、等构建了。

最后压轴说的是个人化。市面上动态的、静态的博客框架非常多,虽如此,我也没能找到一个完全契合自己的,与其反复妥协,不如自己动手。用惯了 Hexo框架和 Butterfly 类主题,于是延续了很多管理方法和呈现理念,在此基础上不断完善各项功能,最终做出了一个完全遵循我的习惯、尽量适配大众习惯的个人博客系统。

技术栈的选择也遵循了这三个核心理念。首先博客端使用 Nuxt 4,我对 Vue 生态最熟,Nuxt 的 SSR(服务端渲染) 也能保证首屏加载速度和 SEO,于我而言这是作为内容型网站最佳选择;而像管理端,则直接使用了 Vue 3,配合 Element plus 组件,让我快速完成开发,且极低的服务器开销,完美流畅的页面体验,让一切变得轻快。

最重要的部分当属后端,他是维持着一切的基础。我的后端技能远不如前端,最熟悉的是 Python,因此第一个 Demo 就是拿 Django 做的,但后来一些深入了解后,让我决定后端使用性能更好的 Gin,也就是 Go 最流行的 Web 框架。这是我第一次使用 Go 完成完整的项目,在此必须感叹 AI 辅助编程的强大,从方案决策到代码实现,AI 都提供了巨大帮助。经过反复迭代,最终形成了一个基本完善的项目。

还有就是数据库,我从最开始就坚持使用 PgSQL,对于个人博客这样的中小型网站,利用 PgSQL 的一些特性,在很多时候可以避免额外引入 Redis 做缓存、ES 做搜索,从而节省资源并简化架构(仅代表个人看法),但这就导致了一个问题,为了一些方言和拓展,我很难再去兼容 Mysql 或其他数据库。

总的来说,这次自建博客就是为了把“用着最舒服”这件事落到实处。极简让我保持了阅读的纯粹,一体化治好了分散的痛,个人化则让一切都贴合习惯。现在系统轻快稳定,维护几乎零负担,创作更能专心内容本身。未来还会慢慢迭代,但当前这个版本,已经有了我理想博客的雏形。

4 核心功能

4.1 用户管理与认证

用户模块最初打算参考 RuoYi 那样做,但后来想想完全没必要,像个人博客这样简单的网站,没必要把角色和权限弄得这么复杂。

我认为一张用户表搭配四个内置角色就足够了,分别是超级管理员、管理员、普通用户和游客,超级管理员拥有全部权限,管理员则在其基础上去除了一些敏感操作权限。最复杂的是处理普通用户与游客的关系。因为评论系统沿用了 Artalk 支持匿名评论的特性,所以我引入了“游客”身份。我的目标是在操作简便的前提下,清晰界定这两种身份的权限,并确保它们之间可能的转换流程都能正常工作。

另外还有第三方登录,目前内置了 QQ、Google、Github,主要依赖 Goth 库(Go 的 OAuth 库,国内支持较差,像 QQ 就需要额外自定义实现)。第三方登录和邮箱登录组成了完整的登录方式,可以任意组合,有完整的绑定流程以及各种登录方式异常的逻辑处理。(为什么 QQ 登录不给邮箱 无语ing

4.2 文章编辑

文章的编辑以及预览是整个博客最为重要的部分,我习惯于 Markdown 写作,于是 markdown-it 成了不二之选,我能轻松的找到各种语法支持,并且还可以非常容易的自定义语法,目前本站除了原生 Markdown 语法支持外,还有提示框、标签页、折叠面板、链接卡片以及照片墙等自定义语法支持,基本满足了我大部分写作需求。

还有就是编辑器的选择,我一度纠结于 CodeMirror 和 md-editor-v3,后者是一个开箱即用的 Markdown 编辑器,我可以非常轻松的接入它,可以节省大半的时间成本,但是它被封装的太好了,而我对核心的编辑功能更多希望的是深度定制且更高的拓展上限,于是我选择了 CodeMirror,它本质是编辑器内核,就意味着我花了大量时间去完成基础建设和能力体系,但最后的结果我还是比较满意的。

另外还有 AI 集成、封面制作、全文导出、微信公众号导出等一系列功能,没有什么值得讲的,我最喜欢的就是封面制作功能,我只需要点击制作封面,文章标题、作者姓名、头像就会自动填充到模板里,我只需要在此基础上简单调整位置和文本,就可以快速完成封面的制作。

4.3 丰富的配置项

延续了之前 Hexo 的习惯,我喜欢把更多的选项以配置呈现,而不是写死在代码里,这就组成了现在丰富的配置项。

所有配置都在一张表里,使用了 KV 配置表结构,额外搭配分组和是否公开 Bool,组成了完整的请求策略,截至目前,配置项拥有六十多个,涵盖了主题、通知、AI、上传等大部分功能。

4.4 实用的其他页面

除了像文章详情页、归档/分类/标签页、友链页、关于页等基础功能页面,还包含有留言、动态、反馈投诉这样的实用页面和 Cookies、隐私政策、版权协议、提问须知等展示页面或者有趣的页面。

5 写在最后

前段时间新站就已经用上了,未来我也会不断去完善,这个项目花了我太多心思,在写这篇文章的时候有好多创意和设计我都想更深入的分享,但碍于是一篇介绍为主的文章,我还是尽量克制住了长篇大论。

现在仓库历史提交还比较混乱,待我整理优化后再公开,现在有感兴趣的朋友可以联系我要源码。如果你对本项目有什么好的建议或者发现了什么问题,欢迎告知在评论区。(求求了)