Rspress是一款基于Rsbuild开发的静态网站生成工具,专为开发者文档编写而设计。此次发布的2.0版本在主题设计、构建性能、人工智能集成以及开发者使用体验等方面进行了大量改进。该版本于2026年1月30日正式发布,在1.x版本的开发过程中共经历了144次更新,其中125位开发者为这一版本的完善做出了贡献。

Rspress 2.0引入了由设计师Zovn Wei重新设计的默认主题,并提供了四层级的自定义选项。开发者可以通过调整CSS变量来快速更改页面主题,通过指定BEM类名来实现精确的样式覆盖,利用ESM重导出功能替换特定组件,甚至完全移除某些组件以获得更大的灵活性。采用BEM设计模式是为了避免与任何特定的CSS框架产生冲突,这样团队就可以自由使用TailwindLessSass等工具而不会遇到版本兼容性问题。

其中一个具有前瞻性的新功能是“Markdown静态网站生成”模式(SSG-MD)。这种新的渲染方式能够将文档内容直接转换为Markdown格式文件以及llms.txt格式的输出。与传统的将HTML转换回Markdown的方法不同,SSG-MD是通过React的虚拟DOM来渲染内容,从而生成适合人工智能模型处理的高质量Markdown文本。启用这一功能只需要添加一行配置代码:

import { defineConfig } from '@rspress/core';

export default defineConfig({
   llms: true,
});

在构建性能方面,通过默认启用的“延迟编译”和“持久化缓存”两项功能,Rspress 2.0的性能得到了显著提升。采用延迟编译机制后,只有在开发过程中实际访问某个页面时才会对其进行编译;根据Rspress团队在GitHub上分享的测试数据,这种做法能使页面的加载时间从几秒缩短到仅50毫秒。而“路由预加载”功能则能在用户悬停鼠标于链接上时立即开始编译相关内容,从而确保导航体验的流畅性。持久化缓存机制还能重复利用之前的编译结果,使后续的构建速度提高30%到60%。

代码高亮显示功能也从Prism切换到了Shiki。现在,代码高亮是在构建阶段而不是运行时进行的,因此这种高亮效果与VS Code的一致性更高。同时,Shiki还支持基于TextMate语法进行代码高亮显示,允许用户按需导入不同语言的相关设置,且不会对运行效率产生任何影响;此外,它还支持诸如“twoslash”这样的自定义转换器,用于为代码添加内联类型提示。

此次版本更新还优化了软件的包结构。原本分散的多个包,包括rspress@rspress/runtime@rspress/shared以及@rspress/theme-default,都被合并到了一个统一的@rspress/core包中。

对于这款新工具的发布,用户们的反应普遍积极。有位用户在r/Rspack子版块中评论道:
“我很高兴看到有这样的工具出现!恭喜你们成功发布了这款产品!”

GitHub上的讨论帖中,人们热烈地讨论了这一新工具中的各种变化。共有26条评论和19条回复,内容涉及如何将原有的配置系统迁移到React Router框架中。

DocusaurusVitePress这类替代品相比,Rspress的主要优势在于其构建速度——这要归功于它所基于的Rspack技术以及那些专为AI设计的功能。Docusaurus本身也承认,Rspress“得益于现代化的基础设施,因此能够更快地完成网站构建”,同时它也强调了自己在成熟度及社区规模方面的优势。而VitePress则更适用于基于Vue的项目,而Rspress则是为React生态系统量身打造的。

Rspress 2.0要求使用Node.js 20或更高版本,并且支持React 18和19版本。原本基于Rust语言开发的MDX解析器@rspress/mdx-rs已被替换为JavaScript版本的MDX解析器,虽然这样会略微降低编译速度,但能够更好地与Shiki等工具以及各种自定义插件进行兼容。对于那些需要从1.x版本升级到2.0版本的团队来说,这份详细的迁移指南会提供很大的帮助。

Rspress是一款开源的静态网站生成工具,它建立在RsbuildRspack的基础上,属于更广泛的Rstack JavaScript工具链的一部分。这款工具专为构建支持MDX格式、具备基于 convention 的路由机制以及组件库预览功能的文档网站而设计,同时它还与Rslib集成在一起,从而为组件库的文档管理工作提供了便利。

Comments are closed.