现在前后端分离已经非常流行,我们已经很少关注模板生成引擎了。但在一些场景,比如邮件、文档生成,还是需要模板生成引擎的。
下面推荐一个轻量级且高效的文本模板生成引擎。
01 项目简介
Scriban是一个基于.NET的开源模板语言引擎,旨在简化文本生成任务。
Scriban主要功能与特性:
1、简洁的语法
该模板引擎使用简单、语法简洁。
例如,使用{{ variable }}输出变量,{% if condition %}...{% endif %}进行条件判断,{% for item in collection %}...{% endfor %}用于循环操作。
2、高性能
采用了编译到IL(中间语言)的方式,而非简单的字符串替换,这在处理大量数据时能够显著提升性能。
3、类型安全
Scriban能够利用静态类型检查,避免运行时错误,提高代码质量。
4、丰富的内置函数和过滤器
除了基本的变量和控制结构外,还提供了许多内置函数和过滤器,如字符串操作、日期格式化等,以增强模板的功能。
5、自定义标签和对象
允许开发者扩展其功能,创建自己的标签和对象,以满足特定需求。
6、兼容性与扩展性
Scriban具有用于解析Liquid模板的兼容模式,使得从Liquid迁移到Scriban变得容易。
7、跨平台
可以在Windows、Linux、MacOS等平台上运行。
02 使用方法
1、简单使用
// 解析scriban 模板
var template = Template.Parse("Hello {{name}}!");
//结果:Hello World!
var result = template.Render(new { Name = "World" });
2、liquid模板
// 解析 liquid 模板
var template = Template.ParseLiquid("Hello {{name}}!");
//结果:Hello World!
var result = template.Render(new { Name = "World" });
3、循环生成文本
//循环模板
var template = Template.Parse(@"
<ul id='products'>
{{ for product in products }}
<li>
<h2>{{ product.name }}</h2>
Price: {{ product.price }}
{{ product.description | string.truncate 15 }}
</li>
{{ end }}
</ul>
");
var result = template.Render(new { Products = this.ProductList });
03 项目地址
https://github.com/scriban/scriban
- End -
推荐阅读