---
title: "VitePress入门体验"
published: 2025-09-15
tags:
  - "VitePress"
---

![文章封面图像](https://blog-static.xeonzilla.top/img/exploring-vitepress/cover.avif)

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

## 初识VitePress

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

上手项目，我首先想到的就是打开`package.json`观察项目的依赖结构。简洁的包列表让我啧啧称奇，如果只是最基础的功能，仅需VitePress本体即可；为了更丰富的功能，我们还额外添加了`vitepress-i18n`与`vitepress-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的辅助下了解、使用一个新的编程语言，似乎又不再像是以前那样的难事？总之，一切皆有可能。

![Tessera官方网站](https://blog-static.xeonzilla.top/img/exploring-vitepress/01.avif "Tessera官方网站")

对基于Rust和wgpu的即时模式UI框架感兴趣的读者，欢迎参与到Tessera[^1]的使用与开发之中！

[^1]: [tessera-ui/tessera: Declarative UI, Custom Rendering.](https://github.com/tessera-ui/tessera)
