从零搭建个人博客:一些过程与心得
一、为什么想要写博客?
说实话,最直接的原因是:我发现自己正在慢慢丢失”把思考变成文字”的能力。工作中的文档追求效率与准确,聊天则追求及时与简洁,那些需要静下心来梳理的、属于自己的文字,却越来越少。
常常有些事情在心中萦绕许久,觉得非记录下来不可,但真坐在电脑前时,想法又像雾一样散开了。
搭建这个博客,就是给自己一个”不得不写”的契机。更私心一点来说,我希望老了之后回头看,知道自己在某个特定的时空,喜欢过什么、思考过什么、又因为什么而感动过。那些真正塑造了我的东西,值得被留下来。
二、从 WordPress 迁移:一个更轻量的选择
其实早在几年前,我就用 WordPress 搭过个人博客。那是一个功能非常完善的系统——有后台管理、插件生态、可视化编辑器,几乎什么都能做。但用得越久,越觉得有些不对劲:
- 过于笨重:一个简单的博客背后,需要 PHP 运行环境、MySQL 数据库、定期备份和安全更新。每次登录后台,看到的都是”有 X 个插件需要更新”,而我只是想写一篇文章而已。
- 维护成本高:服务器偶尔被扫描、数据库报错、缓存插件冲突……这些运维琐事逐渐消磨了写作的热情。
- 写作体验割裂:WordPress 的古腾堡编辑器虽然强大,但真正写长文时,我还是更习惯本地的 Markdown 编辑器。每次都要复制粘贴、调整格式,很打断心流。
后来我开始关注静态站点生成器。这类工具直接把 Markdown 文件编译成 HTML,没有数据库、没有后台,只需一个简单的托管服务就能运行。而 Astro 就是我在对比了 Hugo、Hexo、VuePress 之后,最终选择的框架。
三、为什么选择 Astro 框架?
在静态博客方案中,Astro 有几个特别吸引我的点:
- 岛屿架构:只在必要的地方加载 JavaScript,其余部分纯静态输出,性能极佳。
- 对 Markdown 的一等支持:可以直接在
src/pages里写.md或.mdx文件,自动转换为页面。 - 组件灵活性:如果以后想在博客里加入交互组件(比如画廊、评论区),可以用 React/Vue/Svelte 等,但默认又不引入任何多余的 JS。
- 开发体验好:HMR 很快,配置简单,同时生态里有大量主题和集成可供选择。
对我来说,Astro 刚好踩在”足够简单”和”足够强大”的平衡点上,既不强迫你写复杂的前端代码,又在你想扩展时保留全部可能性。而且它生成的静态文件尺寸很小,非常适合部署在类似 EdgeOne Pages 这样的一站式托管平台上。
四、从零开始的搭建流程
整个搭建过程比我预想的要顺畅很多,但也踩了几个小坑,在这里简单分享一下。
环境准备与初始化
首先确保本地安装了 Node.js(建议使用 LTS 版本)。然后通过一行命令创建新项目:
npm create astro@latest按照提示选择模板(我选了 “Starter Kit” 并稍作精简),再选择是否安装 TypeScript 等依赖。完成后进入项目目录,安装依赖:
npm install这时已经可以看到一个可运行的初始站点了。
选择一个主题或从头构建
Astro 官网上有主题市场,你可以直接 git clone 一个现成主题。不过我自己更倾向于从空白项目开始,慢慢搭出一个符合”时光碎语”气质的界面——留白舒适、字体优雅、支持暗色模式。
主要工作集中在 src/pages/ 和 src/components/ 下。我写了一个简单的博客布局,并利用 Astro 的内容集合(Content Collections)来管理文章,这样能自动为每篇文章生成类型安全的 frontmatter 校验。
一个小坑:如果你不熟悉 Astro 的内容集合,建议先阅读官方文档。它虽然多写几行配置,但对后期维护帮助巨大。
配置与集成
为了让博客更好用,我添加了几个官方集成:
@astrojs/rss:生成 RSS 订阅源。@astrojs/sitemap:自动生成站点地图。- 搜索功能:一开始想自己写,后来直接用了开源的 Pagefind,它扫描生成的静态文件即可提供离线搜索。
另外评论系统我接入了 giscus(基于 GitHub Discussions),干净无广告。
部署到腾讯云 EdgeOne Pages
之前在 GitHub Pages 或 Vercel 上部署过很多项目,但这次我想试试国内的服务。腾讯云 EdgeOne Pages 的体验出乎意料地好:
- 将项目代码推送到 GitHub 仓库。
- 登录腾讯云 EdgeOne Pages 控制台,点击”新建项目”,关联你的 GitHub 仓库。
- 构建命令填写
npm run build,输出目录为dist。 - 环境变量一般不需要额外设置,EdgeOne Pages 会自动识别 Astro 项目。
点击部署后,大约一分钟就会生成一个 *.edgeone.app 的预览域名。我顺手绑定自己的 blog.90svip.cn,并在域名服务商处添加了 CNAME 解析。
当那个熟悉的地址终于显示出我亲手构建的页面时,那种把想法一步步变成现实的成就感确实难以言喻。
五、写作计划与内容方向
博客的主标题是”时光碎语”,副标题是”关于生活、设计与美学的碎片收集”。这个定位已经大致勾勒出了内容的方向。
目前计划中的文章主要分为三个板块:
-
🎨 设计美学:分享我在日常中发现的关于设计、摄影和视觉语言的思考。比如喜欢的配色方案、某个让我在街上驻足的橱窗陈列、或是某张让我看了很久的照片。
-
🛠️ 技术笔记:记录与博客搭建、优化、脚本编写相关的技术沉淀。比如这篇关于从 WordPress 迁移到 Astro 的记录,就属于技术笔记。
-
📝 生活随想:最贴近”碎语”的那部分。可能是某本书的读后感、某部电影的观后感,或者是某个雨天的下午坐在窗边时脑海里一闪而过的念头。
这样的分类能让博客的结构保持清晰,也为三种不同的写作节奏留出空间——灵感来了可以写碎碎念,脑子清醒时可以写技术笔记,有余力时就写设计美学。
六、一些感想
在搭建博客的过程中,我最大的体会是:这件事的意义不在于技术本身,而在于它为写作这件事清除了障碍。
当所有的环境都配置好、主题打磨完毕,当你打开编辑器,看到那个属于你的、干净整洁的书写空间,心里自然会涌起一种”该写点什么了”的念头。从 0 到 1 完成一个站点,不仅仅意味着学会了某个工具,更重要的是你见证了”创造”本身的过程——一点一点把无形的想法,变成有形的、可以被别人看到和触摸到的东西。
这大概就是编程和写作最迷人的地方:你把想法变成代码或文字,然后在瞬间看到结果。遇到问题,就用努力去解决;解决了,就离自己想要的东西更近一步。
当然,搭建一个站点的技术过程只是一次性的,真正的挑战在于坚持更新。我希望”时光碎语”不会成为一个三分钟热度的站点。不管有没有读者,我都会写下去。那些塑造了我的光影,值得被散落在时光的碎片里。
这就是我的博客搭建过程和一些零碎的感想。如果你也对搭建个人博客感兴趣,不妨从今天开始动手试试。有什么问题或想法,欢迎在评论区交流。
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!