#static-site #leptos #ecs #ssg

cinnog

使用Leptos进行静态网站生成的数据层和辅助方法

3个版本 (破坏性更新)

0.3.0 2024年4月20日
0.2.0 2024年4月18日
0.1.1 2024年1月31日
0.1.0 2023年12月23日

#27 in #ssg

每月37次下载

MIT/Apache

22KB
449

Cinnog

使用Bevy ECS作为数据层,并使用Leptos进行静态网站生成的静态网站生成器

有一个示例应用,托管在https://cinnog.netlify.app/

数据层

Bevy ECS被用作数据层,而静态网站生成由Leptos处理。这种想法类似于Gatsby使用Bevy ECS World作为内存数据库来处理GraphQL。Bevy ECS的用户API非常易于使用,它消除了数据查询的额外语法需求。

用户可以从文件系统、外部API或其他任何地方填充数据层的内容。当所有数据都加载并处理完毕后,Cinnog可以构建一个给定的Leptos应用,并将数据层作为一个上下文提供。在组件内部,您可以对数据层运行系统(类似于Gatsby中的GraphQL查询)并使用资源

MSRV

由于此项目依赖于Bevy,因此它遵循相同的MSRV策略:最新稳定的Rust。

改进

(无特定顺序)

  • Bevy ECS和Leptos有一些命名空间冲突,这有助于解决(ECS组件与Leptos组件)
  • 我们能否从用户代码中移除frontend包?
  • 在Leptos组件中,应该可以轻松获取“当前实体”。直接通过路径参数进行似乎很奇怪,并且涉及多个步骤。
    • 也许这只需要一个在用户空间中使用上下文的良好工作模式?
    • 或者一些路径参数和实体加上下文的自动映射?
  • 扩展示例以包括由ECS生成的路由(应该已经可以通过访问数据层来实现App组件)

许可证

以下任一许可证下双许可:

任选其一。

贡献

除非您明确声明,否则根据Apache-2.0许可证定义的您有意提交以包含在作品中的任何贡献,将以上双授权,不附加任何额外条款或条件。

依赖项

~27–42MB
~694K SLoC