Scriban是一种快速、强大、安全和轻量级的文本模板语言和.NET引擎,具有解析liquid
模板的兼容模式
// Parse a scriban template
var template = Template.Parse("Hello {{name}}!");
var result = template.Render(new { Name = "World" }); // => "Hello World!"
使用Liquid语言解析Liquid模板:
// Parse a liquid template
var template = Template.ParseLiquid("Hello {{name}}!");
var result = template.Render(new { Name = "World" }); // => "Hello World!"
语言非常通用,易于阅读和使用,类似于liquid 模板:
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 });
注意
默认情况下, .NET对象的属性和方法会自动以小写和
_
命名,这意味着像MyMethodIsNice
这样的属性将被公开为my_method_is_nice
.这是默认约定,最初是为了匹配liquid
模板的行为。
如果要改变此行为,则需要使用MemberRenamer
委托
Template.ToText
, 可以操作内存中的脚本并将其重新保存到磁盘, 对于 roundtrip(往返)的脚本更新方案是有用的liquid
模板 可使用Template.ParseLiquid
方法
liquid
语言不如scriban
强大, 但该模式从 liquid
则更容易地迁移至 scriban
Template.ParseLiquid
进行解析,替换成Template.ToText
,即可将liquid
脚本 转换成 scriban
脚本async
/await
的脚本支持 (e.g Template.RenderAsync
)if
/else
/for
/while
, expressions (x = 1 + 2
), conditions... etc.myvar | string.capitalize
)
x = {mymember: 1}
) and arrays (e.g x = [1,2,3,4]
)wrap
语句使用可以将 a block of statements (语句块) 传递给函数,{{...}}
您可以安装 Scriban Extension for Visual Studio Code 获取 scriban 脚本 (without HTML) 和 scriban html文件的语法颜色提示
兼容以下 .NET framework 版本:
还有提供签名的NuGet包 Scriban.Signed
Scriban 速度极快! 更多细节, 你可以查看此文档 benchmarks(基准测试) 文档.
该软件是在BSD-Clause 2 license协议下发布的
Adapted logo Puzzle
by Andrew Doane from the Noun Project
Alexandre Mutel aka xoofx.
【翻译】Scriban README 文本模板语言和.NET引擎
原文:https://www.cnblogs.com/igeekfan/p/Scriban-README.html