2 个版本
0.1.1 | 2024年2月26日 |
---|---|
0.1.0 | 2024年2月7日 |
#836 in WebAssembly
38KB
660 行
关于
Webatui是Yew和Ratatui之间的集成,用于构建TUI风格的Web应用。尽可能地将webatui构建成“即插即用”。也就是说,如果你已经有一个想要在浏览器中显示的TUI应用,你应该能够以最小的重构来实现。
这个crate受到了我博客《The Avid Rustacean》的启发,博客地址为The Avid Rustacean。关于Yew和Ratatui如何集成的详细信息可以在博客的初始帖子中找到。
Webatui的功能
- 将文本渲染为HTML
- 支持通过base16-palettes使用Ratatui的索引颜色
- 支持超链接
- 支持鼠标事件(点击)
- 支持自动屏幕缩放
- 支持滚动(在PC和移动设备上)
基本用法
此crate有一些示例,你可以将其用作自己项目的模板。为了获得更完整的概念,我建议你遵循Yew教程。一旦你理解了这一点(或者只是让它运行起来),再回到这里。
对于基本的应用程序,将Ratatui和Webatui作为依赖项添加。Webatui处理了几乎所有与Yew相关的细节,但你的应用将使用ratatui来渲染文本。请查看hello world示例,了解如何将你的Yew hello world示例转换为Webatui hello world。
有几个重要的细节。Webatui自己编写了大部分CSS;然而,你必须使用等宽字体。选择你喜欢的字体,但每个示例都使用了Adobe的Source Code Pro字体。许多等宽字体在PC上渲染良好,但在移动设备上并不严格以等宽方式渲染。在选择字体时请考虑这一点。
贡献
该项目受LGPL-2.1许可。你可以将此crate用作封闭源代码/专有代码库的依赖项;但是,如果你改进了它或从中派生出了另一个库crate,请在该crate下使用LGPL-2.1或强GPL许可证。
如果你发现了一个错误,想要支持某个功能,或者有改进此crate的方法,请随时提出问题或提交PR。
未来计划
这个crate是从我博客中需要的一个抽象中诞生的。因此,肯定有改进它的方法。我会尽量避免无谓地添加破坏性更改;然而,为了提高易用性、效率、最终二进制大小等,它们仍然可能会发生。
依赖项
约20MB
约351K SLoC