VitePress 入门体验

目录

几个月前,一位好友着手开发了一个基于 Rust 和 wgpu 的即时模式 UI 框架。虽然我不是 Rust 开发者,对 UI 框架也不感兴趣,不过我还是非常想为这个新生的开源项目出一份力。正好项目需要一个官方网站,让我能够参与到开发之中,贡献我为数不多的前端开发与优化经验。

初识 VitePress

站点毫不意外地采用 VitePress 作为站点生成器。VitePress 应该是目前最为流行的文档用途的静态站点生成器了吧,无论是什么领域的项目,只要是官网与技术文档,大概率都是 VitePress 生成的。之前的我只是一位普通的使用者,现在我终于有机会一睹它内部的构造了。

上手项目,我首先想到的就是打开 package.json 观察项目的依赖结构。简洁的包列表让我啧啧称奇,如果只是最基础的功能,仅需 VitePress 本体即可;为了更丰富的功能,我们还额外添加了 vitepress-i18nvitepress-sidebar 两个包,即使如此,这和其他的 Node.js 项目差别还是相当巨大。

虽然表面上的依赖简单不一定意味着项目所需的依赖数量少,但是可以确定的是,VitePress 尝试构建一个一站式的生成环境,能够让用户不必在意繁杂的包管理与依赖添加,专注于内容的提供。这对于非 Node.js 生态的开发者而言,是巨大的优势,降低了学习成本。

VitePress 的外观也遵循着同样的思路,没有太多的可调整之处,即使是一个崭新的 VitePress 站点,稍微添加内容,就和其他 VitePress 文档无异了。对于文档这一特定用途的站点,设计风格固定也算是一个优点,起码它能够避免让使用者陷入痛苦的外观设计当中。大部分开发者并不擅长设计,也无意在文档之中展现自己的审美。

Astro 也有类似的文档解决方案,例如官方的 Starlight 文档主题,但是在知名度和认可度上,还有很长的路要走。

一站式解决方案

转战 VitePress 的配置文件,熟悉的功能映入眼帘:导航栏、侧边栏、页脚、搜索,一个文档所需的所有功能,VitePress 都提供了原生支持。只需跟随官网的指引完成基础的配置,就能得到可用的文档。

内置 minisearch,内置 Markdown-it,内置 Shiki,可以说,VitePress 在“一站式解决方案”这条道路上走得很远,它提供默认的主题与功能,但也不忘提供强大的拓展能力,而这些进阶功能,同样不需要引入额外依赖,只需要编辑配置文件。

我很喜欢 VitePress 中内置的页脚功能,显然开发者们很熟悉技术文档与开源项目官网的构成,一个简单易用的页脚,让各位展示开源协议与版权信息,简直是再合适不过了。

我觉得 VitePress 相比 Astro 等其他站点生成器,最大的不同就是自带预设主题,这使得很多用户甚至忽略了它是一个静态站点生成器的事实。我使用过的 Hugo 与 Astro,都需要用户选择一个主题作为站点启动的前提条件,即使是官方提供的默认模板,也需要用户自行获取。VitePress 内置了主题,相当于帮用户省去了获取与选择主题的困扰,减少了一个操作步骤,实在是很精妙的思路。

我了解到 VitePress 也有许多第三方主题,在这样完善的功能下,设计一个基于 VitePress 的博客会不会同样方便呢?或许 VitePress 的主题也是值得我研究的对象。

友情宣传

文章最后,我想为这个新项目做做宣传,虽然我的站点也没有多少流量。之所以喜爱这个项目,不仅是友人开发的关系,更在于它宽松的协议选择,在于它面向未来的特性设计,在于它对性能与视觉效果的极致追求。一切的一切,都满足我对一个有生命力、前景光明的开源项目的向往。

唯一的遗憾就是我对 Rust 一窍不通了。不过在大模型迅速发展的现在,在 AI 的辅助下了解、使用一个新的编程语言,似乎又不再像是以前那样的难事?总之,一切皆有可能。

对基于 Rust 和 wgpu 的即时模式 UI 框架感兴趣的读者,欢迎参与到 Tessera1 的使用与开发之中!

脚注

  1. tessera-ui/tessera: Declarative UI, Custom Rendering.

评论

有新的想法?欢迎向我发送邮件,或使用下方留言板进行留言。

留言板
留言可见性

公开留言会整理后展示,私人消息仅站长可见。

必填。最多 2000 字。支持 Markdown 语法,但不支持预览。

必填。公开展示时将使用这个昵称。

如需回复某条评论,请填写其序号。

可填写个人站点 URL,公开展示时会附加于昵称之上。

页首