1 个不稳定版本
使用旧的Rust 2015
0.1.0 | 2016年4月14日 |
---|
#445 in 模板引擎
43KB
1K SLoC
北极星
北极星是一个用Rust编写的HTML5模板引擎。
文档
// Enable compiler plugins. Note that this only works in nightly.
#![feature(plugin)]
#![plugin(borealis_codegen)]
// Let the plugin derive `SerializeDocument` for us.
#[template_document(file="template.html")]
struct Template {
value: String,
}
模板文件需要与代码文件在同一个目录下。
<!DOCTYPE html>
<html>
<body>
{{ self.value }}
</body>
</html>
现在您可以在一个 Template
上调用 borealis::serializer::serialize
来将其序列化到一个写入器。
use borealis::serializer;
// Create a buffer which we can write too.
// Normally this would be a TCP stream or similar.
let mut writer: Vec<u8> = Vec::new();
// Create a new template.
let template = Template {
value: "test".into(),
};
// Turn it into a document and serialize it into our buffer.
serializer::serialize(&mut writer, template);
片段
#![feature(plugin)]
#![plugin(borealis_codegen)]
#[template_fragment(file="template.html", trim)]
struct Template {
value: u32,
}
trim标志表示插件将在解析片段文件之前删除任何空白。 (这是通过 String::trim
实现的) 如果您的编辑器在文件末尾插入额外的换行符,这可能会很有用。
与文档模板一样,文件需要与代码在同一个目录下。
<ul>
{{ (0..self.value).map(|v| format!("{}", v)) }}
</ul>
现在可以将在另一个片段或文档中使用片段。
许可证
以下任一许可证下许可
- Apache License,版本2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT) 由您选择。
贡献
除非您明确声明,否则根据Apache-2.0许可证定义,您提交的任何有意包含在工作中的贡献,都应按上述方式双重许可,没有额外的条款或条件。
依赖
~4MB
~70K SLoC