#template #html #classic #markup #asp

已删除 black_marlin

Rust 的简单、小巧且极快的模板引擎。从 SailFish 分支而来,现在是黑鲭。

0.3.4 2022年2月4日

#51#classic

MIT 协议

77KB
2K SLoC

SailFish

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

Tests Version Dependency counts dependency status Rust 1.42 License: MIT

用户指南 | API 文档 | 示例

✨ 功能

  • EJS 启发的简单直观的语法
  • 在模板中包含另一个模板文件
  • 内置过滤器
  • 最小依赖(总共 <15> 个 crate)
  • 极快(见 基准测试
  • 更好的错误信息
  • 语法高亮支持(《vscode》,《vim》)
  • 支持 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 的 pull request!查找带有 Status: PR Welcome 标签的问题,并 创建一个新的 pull request

显示您的支持

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

📝 许可证

版权所有 © 2020 Ryohei Machida

本项目采用MIT许可。


本README由readme-md-generator用❤️生成。

依赖项

~0.1–7.5MB
~47K SLoC