Naskah adalah bahasa dan mesin yang cepat, kuat, aman, dan ringan templating dan mesin untuk .NET, dengan mode kompatibilitas untuk memarsing templat liquid
.
Naskah adalah garpu langsung dari, dan ekstensi ke, Scriban dan dengan demikian mewarisi semua fitur yang luar biasa, sambil menambahkan dukungan untuk tata letak dan bagian (mirip dengan .NET Razor's) (lihat di bawah).
Berikut ini berlaku sama untuk skripik dan Scriban:
// Parse a scriban template
var template = Template . Parse ( " Hello {{name}}! " ) ;
var result = template . Render ( new { Name = " World " } ) ; // => "Hello World!"
Scriban adalah bahasa dan mesin yang cepat, kuat, aman, dan ringan untuk .NET, dengan mode kompatibilitas untuk memarsing templat liquid
.
// Parse a scriban template
var template = Template . Parse ( " Hello {{name}}! " ) ;
var result = template . Render ( new { Name = " World " } ) ; // => "Hello World!"
Parse templat cair menggunakan bahasa cair:
// Parse a liquid template
var template = Template . ParseLiquid ( " Hello {{name}}! " ) ;
var result = template . Render ( new { Name = " World " } ) ; // => "Hello World!"
Bahasa ini sangat fleksibel, mudah dibaca dan digunakan, mirip dengan template cair:
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 } ) ;
MELIHAT
Secara default, properti dan metode objek .net secara otomatis diekspos dengan huruf kecil dan
_
nama. Ini berarti bahwa properti sepertiMyMethodIsNice
akan diekspos sebagaimy_method_is_nice
. Ini adalah konvensi default, awalnya untuk mencocokkan perilaku template cair. Jika Anda ingin mengubah perilaku ini, Anda perlu menggunakan delegasiMemberRenamer
Template.ToText
, memungkinkan untuk memanipulasi skrip dalam memori dan menabung kembali ke disk, berguna untuk skenario pembaruan skrip bulatliquid
dengan menggunakan metode Template.ParseLiquid
liquid
kurang kuat dari Scriban, mode ini memungkinkan untuk bermigrasi dari liquid
ke bahasa scriban
dengan mudahliquid
ke skrip Scriban menggunakan Template.ToText
pada templat yang diuraikan dengan Template.ParseLiquid
if
/ else
/ for
/ while
, ekspresi ( x = 1 + 2
), kondisi ... dll.myvar | string.capitalize
)func
dan memungkinkan pointer/delegasi fungsi melalui alias @ directive
x = {mymember: 1}
) dan Arrays (misalnya x = [1,2,3,4]
))wrap
arrays functions
date
html
maths functions
object
regex functions
string functions
timespan
{{...}}
Anda dapat menginstal ekstensi Scriban untuk kode studio visual untuk mendapatkan pewarnaan sintaks untuk skrip Scriban (tanpa html) dan file html Scriban. Perhatikan bahwa ekstensi tidak mengenali fitur naskah di atas Scriban.
Scriptik menambahkan beberapa kata kunci tambahan ke bahasa skrip:
layout
- misalnya, arahan {{layout "_main_layout.htmls"}}
menunjukkan file tata letak untuk halaman saat ini. Tata letak dapat bersarang, yaitu file tata letak sendiri dapat memiliki arahan layout
. Hanya ada satu arahan layout
dalam file yang diberikan. Seluruh konsep tata letak dimodelkan setelah tampilan pisau cukur.body
- Placeholder di dalam file tata letak yang menunjukkan di mana konten halaman akan diterjemahkan.section
- misalnya {{section "main-menu}"}}
di halaman adalah cuplikan bernama, yang dapat digunakan kembali dari HTML dan skrip. Isi bagian diterjemahkan di mana pun arahan render
yang sesuai ditempatkan.render
- misalnya {{render "main-menu"}}
menunjukkan di mana bagian yang disebutkan yang diberikan akan diterjemahkan dalam file tata letak. Bagian juga dapat didefinisikan dan diterjemahkan dalam halaman yang sama. Bagian yang sama dapat diterjemahkan beberapa kali, menjadikannya cara yang nyaman untuk mengisolasi potongan -potongan markup kecil yang dapat digunakan kembali.markdown
- Dapat digunakan dalam dua cara berbeda:{{markdown}} <markdown text goes here> {{end}}
, dalam hal ini teks di dalam pasangan markdown-end
diperlakukan sebagai Markdown murni (tidak boleh berisi ekspresi naskah){{markdown "mdfilename.md"}}
, dalam hal ini file markdown eksternal yang ditentukan ditarik masuk; File Markdown juga dapat berisi pernyataan dan ekspresi naskah. Mereka dievaluasi sebelum sintaks penurunan harga diproses. Kata kunci markdown
hanya berfungsi saat Anda memberikan penyaji teks Markdown. Ini dilakukan dengan cara yang mirip dengan bagaimana pemuatan template eksternal ditentukan:
context . Markdown = new MarkdownRenderer ( ) ;
Di mana MarkdownRenderer
mengimplementasikan antarmuka IStringTransformer
:
public interface IStringTransformer
{
string Render ( string text ) ;
}
Transformator dapat melakukan serangkaian transformasi sewenang -wenang pada teks, tetapi dimaksudkan untuk bekerja dengan baik dengan prosesor penurunan harga seperti Markdig
(yang menarik, dari penulis yang sama dengan Scriban).
Scriban telah tersedia untuk sementara waktu sebagai paket Nuget :. Naskah belum tersedia di Nuget.
Scriptik masih sangat banyak bekerja. Itu belum mencapai tingkat stabilitas dan kematangan yang sama dengan Scriban. Yang mengatakan, skripik hanyalah perpanjangan kecil dari Scriban, sehingga menikmati banyak manfaat dari basis kode dewasa. Kami mungkin secara tidak sengaja memecahkan sesuatu, meskipun ... bagaimanapun, kami menggunakan skripik untuk pekerjaan produksi. Ymmv. Gunakan dengan risiko Anda sendiri.
Scriptik/Scriban berkobar cepat ! Untuk detail lebih lanjut, Anda dapat memeriksa dokumen tolok ukur.
Perangkat lunak ini dirilis di bawah lisensi BSD-Clause 2.
Logo skripik, jelas terinspirasi oleh teka -teki Scriban, tetap merupakan karya asli oleh Andrew J. Wozniewicz (termasuk file Coreldraw).
Scriban diciptakan dan sedang dikelola oleh Alexandre Mutel alias XOOFX. Scriptik bercabang dari Scriban dan diperpanjang oleh Andrew J. Wozniewicz (alias ANCZ).