#template #html #markup

已删除 black_marlin-macros

为 Rust 设计的简单、小巧且极快的模板引擎。从 SailFish 分支而来,现在成为黑鲔鱼。

0.3.4 2022年2月4日

#136#markup


black_marlin 中使用

MIT 许可证

73KB
2K SLoC

SailFish

为 Rust 设计的简单、小巧且极快的模板引擎

Tests Version Dependency counts dependency status Rust 1.42 License: MIT

用户指南 | API 文档 | 示例

✨ 特性

  • EJS 启发的简单直观语法
  • 在模板内包含另一个模板文件
  • 内置过滤器
  • 最小依赖(总共有15个crates)
  • 极快(见 基准测试
  • 更好的错误信息
  • 语法高亮支持(vscodevim
  • 适用于 Rust 1.42 或更高版本

🐟 示例

依赖项

[dependencies]
sailfish = "0.3.3"

模板文件(templates/hello.stpl)

<html>
  <body>
    <% for msg in &messages { %>
      <div><%= msg %></div>
    <% } %>
  </body>
</html>

代码

use sailfish::TemplateOnce;

#[derive(TemplateOnce)]
#[template(path = "hello.stpl")]
struct HelloTemplate {
    messages: Vec<String>
}

fn main() {
    let ctx = HelloTemplate {
        messages: vec![String::from("foo"), String::from("bar")],
    };
    println!("{}", ctx.render_once().unwrap());
}

您可以在 示例 目录中找到更多示例。

🐾 路线图

  • Template 特性(《RFC》)
  • 模板继承(块、部分等)

👤 作者

🇯🇵 Ryohei Machida

🤝 贡献

欢迎贡献、问题和功能请求!

由于 sailfish 是一个不成熟的库,有很多 计划中的功能 正处于 RFC 阶段。如果您对该设计有任何想法,请留下评论!

我也欢迎任何改进 sailfish 的拉取请求!查找带有 状态:PR 欢迎标签 的问题,并 让我们创建一个新的拉取请求

展示您的支持

如果此项目对您有帮助,请给它一个 ⭐️!

📝 许可证

版权 © 2020 Ryohei Machida

本项目采用 MIT 许可证。


此 README 是由 readme-md-generator 用 ❤️ 生成的

依赖项

~1.4–8.5MB
~71K SLoC