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)擴展。