Skip to content

Sutras 是什么?

Sutras专为快速构建以demo为中心的技术文档而设计。 简而言之,Sutras通过简单的配置,自动扫描Demo,将运行结果和源代码一致地集成到由 Vitepress 构建的技术文档中。

更多地:

  • 实时源码编辑、编译、执行和反馈:Sutras 实现了REPL(实时交互式编程),支持快速测试代码片段、深入了解特性或进行概念验证(PoC)。

  • 沙箱环境:Sutras 支持你将demo运行在独立、隔离的 沙箱环境 中。

  • 灵活的展示模式:Sutras 支持 终端界面 两种模式,适用于演示前端库或JavaScript工具库。

  • 支持自定义 设备尺寸展示样式:确保你的库在预期的设备尺寸上能够良好展示。

  • 服务端渲染(SSR):Sutras 支持使用 SSR模式 来渲染Demo。

  • SingleRepo & Monorepo:支持单项目及基于 YarnBoltLernapnpmRush 等技术的多项目仓库架构。

  • Demo模块化:Sutras 支持你将复杂的Demo拆分为多个文件实现模块化,或多个Demo之间共享模块文件,并将这些文件作为Demo的一部分展示给库学习者。在REPL模式下,任一文件内容发生变化时,Sutras将只对变化的文件进行独立编译及热替换

只是想尝试一下?跳到快速开始

想快速了解Sutras是否适合你?跳到常见场景案例

Sutras的努力方向

面向库开发者的文档驱动开发模式

Sutras 提倡在编码前,通过撰写文档的方式来明确库的目标、解决的问题、需求、特性及其预期的使用方式。 进而为每个特性设计Demo,并从Demo开始研发和测试你的库。 依托于ViteVitePress,Sutras 能够让你在研发过程中实时便捷地预览Demo的运行结果

面向库学习者的高效学习体验

Sutras 从库学习者的角度出发,将对Demo的展示和交互进行持续的优化和改进。此外,Sutras 也在逐步借鉴Storybook等优秀框架的功能,旨在为学习者提供更高效的学习体验。

使用场景

Sutras根据了常见场景总结了使用案例,你也通过案例更直观地了解Sutras能为你做什么。

书写体验

Sutras 致力于提供良好的库研发体验。

  • 测试驱动:Sutras基于Vite & Vitepress,实现即时的服务器启动,始终立即反映 (<100ms) 的编辑变化,无需重新加载页面,提供良好的测试驱动的研发体验。

  • 灵活排版:Sutras对文档排版无强制约束,你可以在Vitepress文档中的任何位置渐进式地插入你的Demo。后续Sutras也将开放@sgwm-sutras/hooks,以支持库开发者自定义Demo展示、编辑样式。

  • 一致性维护:技术文档编撰者在维护过程中,无需关心:文档中展示的Demo的代码块Demo源码 的一致性问题。

  • 简单配置:Sutras的配置很简单,详见 Demo配置插件配置

性能

得益于现代浏览器的ESM及ImportMap,Sutras在沙箱模式下只需要消耗很少的浏览器资源:

  • 懒加载

    Sutra的沙箱是懒加载的,每个Demo的编译、执行仅在即将进入视口时开始。

  • 局部编译

    Sutras只会编译Demo源码部分,对于Demo所依赖文件的编译则是在构建时完成。

  • 模块热替换

    Sutra实现了Demo的模块化,并在模块内容发生变化时,只对相应的模块进行重新编译。

  • LRU缓存

    Sutras通过对demo源码进行解析,实现了分块式LRU缓存。这对demo源码中包含较多的template, script内容时,无论组件研发时,还是线上REPL运行时,都提供了一些的性能节省。

Sutras也针对性能方面做了多个复杂demo的加载案例

基于 MIT 许可发布