Scaperic是一种快速,强大,安全和轻巧的文本模板语言和.NET的引擎,具有解析liquid
模板的兼容模式。
Scliphic是Scriban的直接分叉,并扩展到Scriban,因此继承了其所有很棒的功能,同时增加了对布局和部分的支持(类似于.NET Razor's) (见下文)。
以下内容同样适用于Scliphic和Scriban:
// Parse a scriban template
var template = Template . Parse ( " Hello {{name}}! " ) ;
var result = template . Render ( new { Name = " World " } ) ; // => "Hello World!"
Scriban是一种快速,强大,安全和轻巧的文本模板语言和.NET的引擎,具有分析liquid
模板的兼容模式。
// Parse a scriban template
var template = Template . Parse ( " Hello {{name}}! " ) ;
var result = template . Render ( new { Name = " World " } ) ; // => "Hello World!"
使用液态语言解析液体模板:
// Parse a liquid template
var template = Template . ParseLiquid ( " Hello {{name}}! " ) ;
var result = template . Render ( new { Name = " World " } ) ; // => "Hello World!"
该语言非常通用,易于阅读和使用,类似于液体模板:
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
。这是默认约定,最初是为了匹配液体模板的行为。如果您想更改此行为,则需要使用MemberRenamer
培训代表
Template.ToText
将AST写入脚本文本表示形式Template.ParseLiquid
与liquid
兼容。Parseliquid方法liquid
语言不如SCRIBAN强大,但这种模式允许轻松从liquid
迁移到scriban
语言Template.ToText
在用模板上解析的模板上的Template.ParseLiquid
将liquid
脚本转换为Scriban脚本if
/ else
/ for
/ while
,表达式( x = 1 + 2
),条件...。myvar | string.capitalize
)func
语句将自定义函数直接纳入语言,并允许函数指针/委托通过alias @ directive
x = {mymember: 1}
)和数组(例如x = [1,2,3,4]
)wrap
语句使用arrays functions
date
html
maths functions
object
regex functions
string functions
timespan
{{...}}
拥抱每一行您可以安装Visual Studio代码的SCRIBAN扩展名,以获取Scriban脚本(无HTML)和SCRIBAN HTML文件的语法着色。请注意,扩展名无法识别Scriban顶部的典型特征。
Scliphic为脚本语言添加了一些其他关键字:
layout
- 例如,指令{{layout "_main_layout.htmls"}}
指示当前页面的布局文件。可以嵌套布局,即布局文件本身具有layout
指令。但是,给定文件中只能有一个layout
指令。整个布局概念以.NET剃须刀视图进行建模。body
- 布局文件中的一个占位符,指示页面内容将在何处渲染。section
- 例如,页面中的{{section "main-menu}"}}
是一个命名,可重复使用的html和specyic的摘要。在放置相应的render
指令的情况下,将部分的内容渲染。render
- 例如{{render "main-menu"}}
指示给定的命名部分应在布局文件中呈现。也可以在同一页面中定义和渲染部分。可以多次渲染同一部分,这是隔离小标记的小片段的便捷方法。markdown
可以以两种不同的方式使用:{{markdown}} <markdown text goes here> {{end}}
,在这种情况下, markdown-end
对中的文本被视为纯Markdown(它一定不能包含Sclassic Expressions){{markdown "mdfilename.md"}}
,在这种情况下,指定的外部标记文件被拉入; Markdown文件还可以包含少量语句和表达式。在处理降级语法之前对它们进行评估。 markdown
关键字仅在提供Markdown Text Renderer时起作用。这与指定外部模板加载程序的方式相似。
context . Markdown = new MarkdownRenderer ( ) ;
在其中MarkdownRenderer
实现IStringTransformer
接口:
public interface IStringTransformer
{
string Render ( string text ) ;
}
变压器可以对文本进行任意的转换系列,但旨在与像Markdig
这样的Markdown处理器(有趣的是,来自Scriban的同一位作者)都可以很好地使用。
Scriban已作为Nuget软件包可以使用一段时间:。 Nuget上尚不可用Scliphic。
史密斯教徒仍然非常在进行工作。它没有达到与Scriban相同的稳定性和成熟度。也就是说,典型只是Scriban的较小扩展,因此它享有其成熟代码基础的许多好处。不过,我们可能会无意间打破了一些东西,无论如何,我们将典型用于生产工作。 YMMV。自行使用。
史密斯/scriban快速燃烧!有关更多详细信息,您可以检查基准文档。
该软件是根据BSD-CLAUSE 2许可证发布的。
尽管如此,Andrew J. Wozniewicz(包括来源的Coreldraw文件)还是由Scriban的难题显然启发的典型徽标。
Scriban是由Alexandre Mutel aka Xooofx创建的。 Scliphic是从Scriban分叉的,并由Andrew J. Wozniewicz(又名ANCZ)扩展。