Astrologer

Astrologer

·
Open Source

Astrologer 是一个极简且现代的响应式 Astro 博客主题。

这是我的第一个正儿八经的开源项目。我写得真的很用心。

特性

作为一个博客主题,它有如下特性:

  • 简约且现代的设计
  • 响应式设计
  • 支持暗黑模式
  • 草稿功能
  • 文章内图片缩放
  • 博客支持文章页、归档页、分类页、标签页
  • 支持展示项目作品
  • 支持展示头条推广信息

更多的功能正在设计和实现中,敬请期待:

  • 全站 Banner
  • RSS 订阅
  • 搜索功能
  • 评论功能
  • 打赏功能
  • OpenGraph
  • SEO 优化
  • TOC
  • ViewTransition 定制
  • i18n 切换

起源

我的博客自 20 年左右下线以来,荒废许久,期间偶有几次重新搭建与上线的想法,但最后都不了了之,究其原因,一是没有什么太多想写的东西,二是找不到一个很喜欢的博客框架和主题。

在下线之前,我的博客是使用 Hexo 构建的,并且采用了著名的 NexT 主题。在 18 年那会儿,这个是主流选项,而且在当时,我觉得 NexT 主题还是比较好看的,至少跟 Hexo 官网提供的那些主题比起来,已经很不错了。

下线期间,我其实了解过 Hugo 这个框架,但自我感觉也并没有差很多,主题也很一般,所以动力不是很足。

后来随着前端框架的蓬勃发展,我也了解过一些其他的框架,比如 Gatsby,Nuxt,Nextra 等,始终感觉框架本身有点半成品的意思,也不太想弄,就一直搁置了。

最近刚考完某考试,心情也放松下来,恰逢推特上看到有几个大佬把推特迁移到了 Astro 这个框架,我对这个框架的了解并不是很多,但是看到大佬们都在迁移,我认为这个框架肯定差不到哪里去。

其实一年前我听说这个框架的时候,去官网看过一眼,并没有什么很特别的感觉。因为它也提供了不止一个博客的主题,但是感觉很简陋,不太适合我。而且我当时前端水平是真的非常菜,也没有完全自定义的想法。

但是一年后的我,也成长了不少,对 tailwindcss 的写法日渐熟练,受 shadcn 的影响,审美也稍微有所提高。正好最近有空,便萌生了使用 Astro 结合 tailwindcss,参考 shadcn 的审美,完全从零开始写一套属于自己的博客主题的想法。

设计与开发

说干就干,我考完当天就新建了文件夹和 Repo,撸起袖子就是干。想了想,直接上代码不太好,容易返工,而且不直观,刚好最近又重学了个 Figma 的课程,这不巧了么,感觉最近的经历都在引导我去做这样一个项目。我便先在 Figma 中把几个主要的页面设计了出来,甚至做了简单的原型动画。虽然有些细节还有待调整,但我觉得可以开始编码了。

本来是打算用 Cursor 进行辅助的,试了试感觉还不如自己写,就放弃了。划定了 MVP 的范围之后,每天下班加周末疯狂地肝,感觉动力十足。差不多花了快半个月的时间,MVP 接近开发完成。

中间其实不断地萌生了很多想法,并且都加进 Backlog 里了,后来觉得这样下去不是个事,MVP 要永远都完不成了,哈哈。然后就仔细分析了一下需求,确立了 Milestone,发布 MVP 之前不再添加新的需求到 Milestone 中。

说起来,一开始打算的是纯用 Astro 配合 tailwind 手动实现所有代码和组件的,最后为了图方便,还是引入了 shadcn,当然也不可避免地引入了 React。但是目前用到的组件很少,以后有机会说不定会用 Astro 重写一下,彻底干掉 React。

还有些天马行空的想法也在慢慢添加进 Backlog,后面再快速迭代交付吧,先交付最有价值的功能,最近也在这个过程中重新理解敏捷的概念。

感受

开发过程中我又在硬盘的角落里找到了存档很久的老博客源码,几经失败后跑起来看看,发现 NexT 主题对我来说已经不是审美过时,而是真的丑到不能忍了。不禁感慨时过境迁啊。

我对自己写的这套博客主题还是挺满意的,我承认,也参考了很多大佬的博客主题的创意,还包括一些著名公司的网站的样式,最后的结果是一个融合的整体,是我自己的审美风格。

我写这套主题,最初的目的是自用,但是我想把它通过开源的方式分享出去,如果有小伙伴恰好也喜欢这个主题,并且打算用于自己的博客,那么我会感到十分的荣幸。

一个人的力量不是无穷的,这也是为什么我们需要社区。如果小伙伴们在使用过程中,能给出反馈,提出意见,甚至贡献代码,那将再好不过啦。