Scripticは、 liquid
テンプレートを解析するための互換性モードを備えた、.NET用の高速で強力で安全で軽量なテンプレートのテンプレート言語とエンジンです。
スクリプトは、Scribanの直接的な分岐点であり、その素晴らしい機能をすべて継承し、レイアウトとセクション(.NET Razor'sと同様)のサポートを追加します(以下を参照)。
以下は、スクリプトとスクリバンに等しく適用されます。
// Parse a scriban template
var template = Template . Parse ( " Hello {{name}}! " ) ;
var result = template . Render ( new { Name = " World " } ) ; // => "Hello World!"
Scribanは、 liquid
テンプレートを解析するための互換性モードを備えた、.NET用の高速で強力で安全で軽量なテキストテンプレート言語とエンジンです。
// 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
Delegateを使用する必要があります
Template.ToText
を使用して、スクリプトのテキスト表現にASTを書き込み、メモリ内のスクリプトを操作してディスクに再節約できます。Template.ParseLiquid
メソッドを使用してliquid
と互換性がありますliquid
言語はScribanよりも強力ではありませんが、このモードはliquid
からscriban
言語に簡単に移動することができますTemplate.ToText
を使用して、 liquid
スクリプトをScribanスクリプトに変換できますTemplate.ParseLiquid
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の上にスクリプト機能を認識していないことに注意してください。
スクリプトは、スクリプト言語にいくつかの追加のキーワードを追加します:
layout
- たとえば、ディレクティブ{{layout "_main_layout.htmls"}}
は、現在のページのレイアウトファイルを示します。レイアウトはネストできます。つまり、レイアウトファイル自体にlayout
指令を持つことができます。ただし、特定のファイルには1つのlayout
ディレクティブしかありません。レイアウト全体のコンセプトは、.NET Razorビューの後にモデル化されます。body
- ページコンテンツがレンダリングされる場所を示すレイアウトファイル内のプレースホルダー。section
- たとえば{{section "main-menu}"}}
ページの}は、HTMLとスクリプトの名前が付けられた再利用可能なスニペットです。セクションのコンテンツは、対応するrender
ディレクティブが配置されている場所でレンダリングされます。render
- たとえば{{render "main-menu"}}
は、指定された名前のセクションがレイアウトファイル内でレンダリングされる場所を示します。セクションは、同じページ内で定義およびレンダリングすることもできます。同じセクションを複数回レンダリングできるため、マークアップの小さくて再利用可能なスニペットを分離する便利な方法になります。markdown
- 2つの異なる方法で使用できます。{{markdown}} <markdown text goes here> {{end}}
。この場合、 markdown-end
ペア内のテキストは純粋なマークダウンとして扱われます(スクリプト式を含めてはなりません){{markdown "mdfilename.md"}}
、この場合、指定された外部マークダウンファイルが引き込まれます。 Markdownファイルには、スクリプトのステートメントと式を含めることもできます。それらは、マークダウン構文が処理される前に評価されます。 markdown
キーワードは、Markdownテキストレンダラーを提供する場合にのみ機能します。これは、外部テンプレートローダーの指定方法と同様の方法で行われます。
context . Markdown = new MarkdownRenderer ( ) ;
MarkdownRenderer
IStringTransformer
インターフェイスを実装する場合:
public interface IStringTransformer
{
string Render ( string text ) ;
}
トランスは、テキスト上の任意の一連の変換を行うことができますが、 Markdig
(興味深いことに、Scribanと同じ著者から)のようなMarkdownプロセッサでうまく機能することを目的としていました。
Scribanは、Nugetパッケージとしてしばらく利用できます。 ScripticはNugetでまだ利用できません。
スクリプトはまだ非常に進行中です。 Scribanと同じレベルの安定性と成熟度を達成していません。とはいえ、ScripticはScribanのわずかな拡張機能であるため、成熟したコードベースの多くの利点を享受しています。しかし、私たちは不注意に何かを壊したかもしれません...とにかく、私たちは制作作業にスクリプトを使用しています。 ymmv。あなた自身の責任で使用してください。
スクリプト/スクリバンは速く燃えています!詳細については、ベンチマークドキュメントを確認できます。
このソフトウェアは、BSD-Clause 2ライセンスの下でリリースされます。
Scribanのパズルに明確に触発されたスクリプトのロゴは、それでもAndrew J. Wozniewicz(ソースCoreldrawファイルが含まれている)によるオリジナルの作品です。
Scribanは作成され、Alexandre Mutel aka Xoofxによって維持されています。スクリプトはスクリバンからフォークされ、アンドリュー・J・ウォズニヴィッチ(別名ANCZ)によって拡張されました。