最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
sailfish:实践指南
时间:2026-09-11 15:40:01 编辑:袖梨 来源:一聚教程网
实际评估sailfish时,我先确认它解决的具体问题:Rust 的简单、小型且极快的模板引擎。实际做日常自动化时,经常会碰到输入边界、依赖和失败处理如果不清楚就很难稳定复用,所以功能列表并不能代替验证。我建议用一项范围明确的真实任务完成最小试跑,重点记录配置时间、输出质量、异常信息和维护痕迹,再与现有方案比较。我的判断是,它更适合愿意先做小范围验证并复查原始文档的团队;若眼下没有这类需求,先保留观察即可。
Rust 的简单、小型且极快的模板引擎
用户指南 | API 文档 | 示例
✨ 特点
- 简单直观的语法灵感来自 EJS
- 在模板中包含另一个模板文件
- 内置过滤器
- 最小的依赖性(总共 <15 个 crate)
- 速度极快(参见 基准测试)
- 更好的错误消息
- 语法高亮支持(vscode、vim)
- 适用于 Rust 1.89 或更高版本
示例
依赖项:
[dependencies]
sailfish = "0.11.3"
您可以选择使用 TemplateSimple 直接访问字段:
模板文件(templates/hello.stpl):
`` erb
<% for msg in messages { %> <%= msg %> <% } %>代码:
``生锈 使用旗鱼::TemplateSimple;
#[derive(TemplateSimple)] #[template(path = "hello.stpl")] 结构 HelloTemplate { 消息:Vec
} fn 主() { 让 ctx = HelloTemplate { messages: vec![String::from("foo"), String::from("bar")], }; println!("{}", ctx.render_once().unwrap()); }
Or use the more powerful Template/TemplateMut/TemplateOnce:
Template file (templates/hello.stpl):
<html> <body> <% for msg in &self.messages { %> <%= msg %> <% } %> <%= self.say_hello() %> </body> </html>Code:
use sailfish::Template; #[derive(Template)] #[template(path = "hello.stpl")] struct HelloTemplate { messages: Vec<String> } impl HelloTemplate { fn say_hello(&self) -> String { String::from("Hello!") } } fn main() { let ctx = HelloTemplate { messages: vec![String::from("foo"), String::from("bar")], }; println!("{}", ctx.render().unwrap()); }
You can find more examples in examples directory.
路线图
Template特征(RFC)- 模板继承(块、部分等)
表达你的支持
如果这个项目对您有帮助,请给个⭐!
文档部署说明
sudo apt install mkdocs mkdocs-material
cd sailfish_root_folder &&
cd docs && cd en
mkdocs build
相关文章
- itflow:实践指南 09-11
- kazoo:实践指南 09-11
- hexo-theme-shoka:实践指南 09-11
- BlogEngine.NET:实践指南 09-11
- OpenHGNN:实践指南 09-11
- powerview.py:实践指南 09-11