5个版本
使用旧的Rust 2015
0.1.0 | 2015年11月19日 |
---|---|
0.0.4 | 2015年10月24日 |
0.0.3 | 2015年10月11日 |
0.0.2 | 2015年9月16日 |
0.0.1 | 2015年8月15日 |
#279 在 模板引擎
165KB
4K SLoC
Rust的Twig模板引擎
适用于Rust的灵活、快速、安全的模板引擎。目标是与PHP的Twig实现100%的语法兼容。次要目标是提供功能等效的方式来扩展和定制模板。
请注意,目前这个项目还在进行中,不可用。
1.0版本的目标是使测试套件功能上等效于Twig 2.0 (问题 #1)。
动机
- 设计师熟悉Twig。
- 重用现有的IDE对Twig的支持。
构建要求
- 最小Rust版本:1.3.0。
待办事项列表
工作词法分析器示例
运行示例,迭代模板在 templates/fos_login.html.twig
cargo run --example lex_tokens
将在控制台产生标记列表
Ok(Token { value: BlockStart, line_num: 1 })
Ok(Token { value: Name("extends"), line_num: 1 })
Ok(Token { value: String(FOSUserBundle::layout.html.twig), line_num: 1 })
Ok(Token { value: BlockEnd, line_num: 1 })
Ok(Token { value: Text("\n"), line_num: 2 })
Ok(Token { value: BlockStart, line_num: 3 })
...
工作解析器示例
运行解析此模板的示例
test {{ var + 1 }}
cargo run --example parse_nodes
将在控制台输出解析的模块
Ok(
Module {
body: List {
items: [
Text {
value: "test ",
line: 1
},
Print {
expr: Expr {
line: 1,
value: BinaryOperator {
value: "+",
left: Expr {
line: 1,
value: Name(
"var"
)
},
right: Expr {
line: 1,
value: Constant(
Int(
1
)
)
}
}
},
line: 1
}
]
}
}
)
依赖项
~5MB
~97K SLoC