1 个不稳定版本
使用旧的 Rust 2015
0.1.0 | 2016年4月14日 |
---|
#51 in #html5
60KB
1.5K SLoC
Borealis
Borealis 是一个用 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>
现在您可以对 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 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT),任选其一。
贡献
除非您明确表示,否则任何有意提交给作品以供包含在内的贡献,根据 Apache-2.0 许可证定义,应按上述方式双重许可,不附加任何额外条款或条件。
依赖项
~8MB
~154K SLoC