Scriban 模板语言

# Scriban 模板语言

# 目录

# 原文Github:https://github.com/lunet-io/scriban#readme

Build Status (opens new window) Coverage Status (opens new window) NuGet (opens new window)

Scriban是一种快速、强大、安全和轻量级的文本模板语言和.NET引擎,具有解析liquid模板的兼容模式

// Parse a scriban template
var template = Template.Parse("Hello {{name}}!");
var result = template.Render(new { Name = "World" }); // => "Hello World!" 
1
2
3

使用Liquid语言解析Liquid模板:

// Parse a liquid template
var template = Template.ParseLiquid("Hello {{name}}!");
var result = template.Render(new { Name = "World" }); // => "Hello World!" 
1
2
3

语言非常通用,易于阅读和使用,类似于liquid (opens new window) 模板:

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 });
1
2
3
4
5
6
7
8
9
10
11
12

注意

默认情况下, .NET对象的属性和方法会自动以小写和_命名,这意味着像MyMethodIsNice这样的属性将被公开为my_method_is_nice.这是默认约定,最初是为了匹配liquid模板的行为。 如果要改变此行为,则需要使用 MemberRenamer 委托

# 特性

{{...}}
1

# Syntax Coloring(语法着色)

您可以安装 Scriban Extension for Visual Studio Code (opens new window) 获取 scriban 脚本 (without HTML) 和 scriban html文件的语法颜色提示

# 文档

# 二进制包

Scriban提供一个可获取的 NuGet 包: NuGet (opens new window)

兼容以下 .NET framework 版本:

  • .NET Framework 3.5
  • .NET Framework 4.0
  • .NET Framework 4.5+ (supports asynchronous code and timeouts for regular expressions)
  • .NET Standard1.1+ (some features are not available)
  • .NET Standard1.3+ (which means .NET Core, Xamarin, UWP, Unity etc.)

还有提供签名的NuGet包 Scriban.Signed (opens new window)

# Benchmarks(基准测试)

Scriban 速度极快! 更多细节, 你可以查看此文档 benchmarks(基准测试) 文档 (opens new window).

# License

该软件是在BSD-Clause 2 license (opens new window)协议下发布的

# 相关项目

# 在线示例

  • (https://scribanonline.azurewebsites.net/): ASP.NET Core Sample.

# Credits

Adapted logo Puzzle by Andrew Doane (opens new window) from the Noun Project

# 作者

Alexandre Mutel aka xoofx (opens new window).