bsd虚拟货币搬砖_币圈新闻_鼎鸿网

bsd虚拟货币搬砖

angula 0

scriban

目录

  • 【翻译】Scriban是一种快速、强大、安全和轻量级的文本模板语言和.NET引擎,具有解析liquid模板的兼容模式
  • 【翻译】 Scriban language( 待完成)
  • 【翻译】Scriban runtime( 待完成)

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

Scriban,一个轻量级的文本模板语言和.NET引擎

Scriban,一个轻量级的文本模板语言和.NET引擎

Scriban,一个轻量级的文本模板语言和.NET引擎

Scriban是一种快速、强大、安全和轻量级的文本模板语言和

Scriban,一个轻量级的文本模板语言和.NET引擎

.NET引擎,具有解析liquid模板的兼容模式

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

使用Liquid语言解析Liquid模板:

// Parse a liquid templatevar 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 委托

特性

  • 非常高效,快速 解析器和轻量级的运行时. 对CPU和垃圾收集器友好. 查看 benchmarks获取更多细节.
  • 由Lexer / Parser提供一个完整的抽象语法树,fast, versatile and robust(快速,通用且强大), 比基于regex的解析器更高效 错误报告:能提供精确的源代码位置 ,包括(path, column and line)将AST写入脚本文本的形式, 使用 Template.ToText, 可以操作内存中的脚本并将其重新保存到磁盘, 对于 roundtrip(往返)的脚本更新方案是有用的
  • 兼容liquid 模板 可使用Template.ParseLiquid 方法 虽然 liquid 语言不如scriban强大, 但该模式从 liquid 则更容易地迁移至 scriban在 AST to text 模式下,将对模板Template.ParseLiquid进行解析,替换成Template.ToText,即可将liquid 脚本 转换成 scriban 脚本由于 liquid 语言没有严格定义 并且它有着不同版本的liquid语法,在使用scriban的liquid模板时会有一些限制, 查看此文档了解详情 liquid support in scriban
  • 可扩展的运行时 提供许多扩展点
  • 支持 async/await 的脚本支持 (e.g Template.RenderAsync)
  • 精确控制空白文本输出
  • 完整的语言特性 包括 if/else/for/while, expressions (x = 1 + 2), conditions... etc.
  • 函数调用和管道 (myvar | string.capitalize) 自定义函数 通过func语句直接将函数自定义到语言中 通过alias @ directive可使用function pointers/delegates从runtime API绑定 .NET自定义函数,并提供许多与.NET对象接口的选项 。
  • Complex objects (复杂对象) (javascript/json like objects x = {mymember: 1}) and arrays (e.g x = [1,2,3,4])
  • 通常由wrap语句使用可以将 a block of statements (语句块) 传递给函数,
  • 一些内置函数: arrays functionsdatehtmlmaths functionsobjectregex functionsstring functionstimespan
  • Multi-line statements(多行语句) 不必在每行都使用{{...}}
  • Safe parser and safe runtime, 使您可以控制公开哪些对象和功能

Syntax Coloring(语法着色)

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

文档

  • 有关语言语法的说明,请参阅语言文档。
  • 内置函数见文档内置函数列表。
  • 有关编译和运行模板的.NET运行时API的说明,请参阅运行时文档。
  • 有关支持liquid模板的更多详细信息,请参阅[Liquid support]文档。
  • 请参阅我的博客文章"实现.NET的文本模板引擎",了解一些幕后细节。

二进制包

Scriban提供一个可获取的 NuGet 包:

Scriban,一个轻量级的文本模板语言和.NET引擎

兼容一下 .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

Benchmarks(基准测试)

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

License

该软件是在BSD-Clause 2 license协议下发布的

相关项目

  • dotliquid: Liquid模板语言的.NET端口。
  • Fluid .NET liquid 模板引擎
  • Nustache: .NET 无逻辑模板(Logic-less templates for .NET)
  • Handlebars.Net: .NET port of handlebars.js

在线示例

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

Credits

Adapted logo Puzzle by Andrew Doane from the Noun Project

作者

Alexandre Mutel aka xoofx.

bsd虚拟货币搬砖文档下载: PDF DOC TXT