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,公开展示时会附加于昵称之上。

页首