跳到主要内容

染笺的小站是怎么建起来的

这个小站从一个简单的想法开始:想拥有一个界面干净、可以长期记录学习过程的技术博客。文章在本地用 Markdown 写好,挑选并整理后,再发布到网站。

从喜欢的博客出发​

动手之前,我先看了其他人已经搭建好的博客。其中,勾玉博客的阅读体验给了我启发:导航清楚,文章列表以文字为主,页面没有堆叠太多装饰。

我希望自己的博客也有类似的简洁感,同时保留一点温暖的颜色。讨论后,确定了两种可以切换的主题:清爽的纯白色,以及偏米白、带陶土色点缀的暖色。

正式实现前,我们制作了双主题概念图,用来比较配色:

博客纯白主题与暖色主题的概念图

这张图是设计参考,实际页面会根据阅读体验继续调整。

确定页面和功能​

首页采用“简短介绍 + 最新文章”的结构。读者打开网站后,既能知道这是谁的博客,也能直接看到最近发布的内容。

导航暂时分为五个入口:

  • 博客:查看文章列表和文章详情。
  • 分类:按主题查找文章,最多支持两级分类。
  • 归档:按时间浏览发布过的文章。
  • 我的项目:以后整理项目介绍和实践经历。
  • 关于我:以后补充个人介绍和联系方式。

一篇文章可以有一个主要分类和多个标签。搜索覆盖标题、分类、标签和正文,并优先展示标题匹配的结果。文章页暂时不提供评论功能。

选择技术方案​

平时已经习惯用 Markdown 写学习笔记,所以这个博客选择了静态网站的方式:用 Docusaurus 把文章和页面生成为网站,再通过 GitHub 和 Cloudflare Pages 完成部署。

发布流程大致是:

本地 Markdown
↓
挑选并整理为博客文章
↓
提交到 GitHub 私有仓库
↓
Cloudflare Pages 自动构建
↓
访问线上博客

GitHub 仓库用于保存源码和文章;Cloudflare Pages 负责根据仓库里的内容构建和发布网站。仓库是私有的,但发布后的网站可以公开访问。

做一个本地发布助手​

如果每篇文章都手动整理元信息、复制图片、执行 Git 命令,用久了可能比较繁琐。所以这个项目还做了一个在本机运行的文章发布助手。

助手提供图形界面,用来选择 Markdown 文件、填写标题和分类、添加标签,以及查看发布预览。对于支持的本地图片,它会生成博客用的副本并调整路径,保留原来的学习笔记。

确认发布后,助手会提交本次选择的文章和相关图片,再推送到博客仓库。Git 推送和网站部署是两个不同的步骤:推送成功后,还需要等 Cloudflare 完成构建,网站才会更新。

目前助手主要支持标准 Markdown 图片写法;引用式图片和 HTML 图片尚不支持。真实学习文章的完整发布流程还需要继续验证,已发布文章的图形化更新流程也有待完善。

上线后遇到的问题​

博客上线后,分类页面出现过崩溃。最开始根据报错做了一次空值保护,但问题仍然存在。后来结合浏览器控制台提供的调用堆栈,才定位到生产构建中的实际问题:分类数据使用的 Map 在展开时,被构建工具转换成了不合适的数组操作。

修复时,将遍历方式改为显式使用 Array.from(...),再重新构建并发布。这次排查也提醒我:构建通过和部署成功,并不等于页面在浏览器里一定能正常使用。 后续还需要把实际页面交互验证做得更完整。

接下来​

目前网站和发布助手已经有了第一版。后面准备逐步完成:

  • 整理并发布真正想分享的学习笔记。
  • 补充“我的项目”和“关于我”页面。
  • 继续检查手机端与不同浏览器的使用体验。
  • 完善已发布文章的修改和更新流程。

这个小站会随着学习和实践继续调整。先把内容写下来,再慢慢把体验做好。