从 6.3 发布情报 1,6.30 发布情报 2,时隔 4 月,我可以很自豪地说,serenade 可以发布啦。

先送上开源地址: https://github.com/dyedd/serenade

定位 #

在之前的文章我曾阐述过动态博客,静态博客各自的优缺点,那么如果结合这 2 者,一个创新点——动静结合的博客就油然而生了。

不知道有没有佬之前已经提过动静结合的概念,如果没有的话,那么serenade就将幸运的成为这概念的鼻祖了。

接下来我先来介绍一下什么是动静结合吧。

serenade结合了众多程序的优化,我们的文章数据都是直接通过 markdown 文件存储的,没有经过数据库,所以加载速度更快当然要是有佬说速度不快,那也没有办法了,因为我不是专业的前端了,呜呜

其次,正因为没有数据库,所以它可以 0 服务器部署

当然,我非常讨厌静态博客的多次编译,而serenade只要编译一次,随便修改文章,友链等数据,都能实时响应。很多大佬使用 nuxt 加载 markdown 或许都会使用nuxt content,但是serenade并没有采用这个加载方案,而是采用从零开始造轮子的方法,通过 nuxt 的 server 接口实现了 markdown 的动态加载,这是程序能够称为动静结合的核心!

根据上面的介绍,我相信大家多多少少就能理解动静结合的优势吧,相互的互补之下也没有什么缺点了。

正因为这么优雅的设计,我将其取名为Serenade,—— 源自意大利语 "serenata",意为在夜晚吟唱的歌谣。这个名字承载着优雅、宁静与诗意的美好寓意。

我希望,未来的Serenade,说得不听一点就是一个缝合怪,说得好听一点就是希望它能满足一个程序员的各种所需的集合式站点。

功能 #

  1. 个人主页,这个还在开发中
  2. 文章功能,兼容 hexo 等静态博客的格式,所以可以很快的迁移,如果是 typecho,我之前还写了一个 AI 驱动的转换程序typecho2markdown
  3. 专栏/知识库功能,我也喜欢记录笔记,但是这种如果通过博客文章来发布,体验感就不是很好,于是我也兼容 vuepress 格式实现了这个功能
  4. 友链/朋友圈功能,除了日常的友链展示,我更喜欢能直接看到订阅的 RSS 信息
  5. ...更多功能,还在 todo 哈

技术栈 #

  • 框架: Nuxt 4
  • 前端: Vue 3 + Composition API
  • 样式: TailwindCSS
  • Markdown 渲染: marked
  • 数学公式: KaTeX
  • 日期处理: date-fns / dayjs
  • 构建工具: Vite
  • 部署: 支持静态生成和服务端部署

界面 #

由于还在开发,所以界面可能会有一些调整。

首页:

文章列表:

文章详情页:

专栏列表:

专栏详情页:

友链:

朋友圈:

其它 #

在此,欢迎各种佬使用我的程序,如果喜欢,欢迎 star 和 PR,谢谢。

如需交流,欢迎加 QQ 群:972781001