Files
Ddmt-Blog/posts/2026/05/new-blog.md
2026-05-18 17:25:14 +08:00

59 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "打造一个全新的 Blog 系统"
date: 2026-05-17
description: "从 WordPress 到 Typecho再到 Astro + Bun + Git——讲述我如何构建一个轻量、现代、以 Git 为驱动的全新 Blog 系统。"
category: "tech"
tags: ["blog", "astro", "bun", "git", "markdown"]
pinned: true
author: "ddmt"
---
## 前言
前段时间,我关停了大量过时的站点,其中就包括 blog.ddmt.top。原因很简单它们采用的技术已经严重落后主要依赖大量归档文章作为阅读内容早已无法满足需求。但当时我并没有急于重建因为我还没有找到一个既高级又轻量、既前沿又兼顾读者阅读体验和作者写作体验的 Blog 方案。
在过渡期,我尝试了一种新的记录方式——在 Gitdts 上单独创建了一个仓库,通过 README.md 来更新服务器维护记录。这为后续搭建新站点提供了重要启发,直到一个全新的技术方案映入眼帘。
![使用Vscode编辑](/assets/images/image.png "使用Vscode编辑")
## 创作动机
我使用过的 Blog 程序不少,说实话,有些体验令人苦不堪言。
**Typecho** 是我最早使用的 Blog 程序,它着实令人着迷——强大的自定义插件、丰富灵活的模板,直到现在我仍然会推荐别人去尝试。但我最终放弃了它,原因也很简单:作为一个 Blog 站点,写作体验至关重要,而 Typecho 极其简陋的编辑器实在让人提不起写作欲望。
**WordPress** 毫无疑问是目前最强大的 Blog 程序,它拥有非常出色的编辑器,写作体验相当不错。但它实在过于庞大,每次加载都是对服务器的巨大考验,卡顿的页面同样让人难以提起编写欲望。
## 技术方案
我最终选择了一套全新的技术栈:**Astro + Bun + Git**,由 AI 辅助构建。
### 没有传统意义上的后端
这里的 Bun 在页面创作中主要参与开发和编译环节。正如渡一教育的老师对 Node 的见解——「Node 对于前端的意义是更大的」。Node.js 虽然是面向后端设计的 JavaScript Runtime但在实际使用中它更多地加速了前端框架的构建。Bun 在这个项目中的意义也类似:它主要充当一个自动化构建器的角色,监听来自 Gitdts 的 Webhook通知 Bun 何时应该拉取最新代码并自动完成构建。构建完成后,仅做静态托管。
### 没有数据库
所有内容完全来自 Gitdts 仓库中的 Markdown 文件。正因为没有数据库我可以借助全球最顶尖的内容数据源——Git。利用其原生的版本控制、分支管理、同步等能力使内容可以在任意地方进行编辑和管理。
### 没有网页编辑器
正因为没有网页编辑器我可以直接使用全球最优秀的文本编辑器——VSCode。它对 Git 的支持非常好,无需再额外开发一个网页编辑器。我无法想象那会是多大的工程量:必须考虑多端适配,甚至多人协同编辑,否则编辑器不好用,实在难以下笔。
## 构建架构
这套系统主观上采纳了 PHP 和 Pages 的优秀设计理念,使其在构建时如同 PHP 一样优雅,在上线后轻量到 Pages 即可稳定运行。
整体构建流程如下:
1. 在本地编写 Markdown 文件并推送到 Git 仓库
2. Gitdts 通过 Webhook 通知 Blog 服务器
3. 服务器验证签名,拉取最新内容,触发 Astro 全量构建
4. 新的静态文件立即生效
从代码推送到站点更新,整个过程仅需数秒。
## 总结
这是一个非常令我满意的作品。它用最前沿的框架、最先进的工具链,构建了一个轻量、高效、以 Git 为驱动的现代 Blog 系统。没有臃肿的数据库,没有复杂的后台,只有 Markdown、Git 和一个快速的构建流水线。