Scriptic عبارة عن نص سريع وقوي وآمن وخفيف الوزن ومحرك .NET ، مع وضع توافق لحجر القوالب liquid
.
Scriptic هو شوكة مباشرة من Scriban ، وتمديدها ، وبالتالي يرث جميع ميزاته الرائعة ، مع إضافة دعم للتخطيطات والأقسام (على غرار .NET Razor's) (انظر أدناه).
ما يلي ينطبق على قدم المساواة على السيناريو و 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
، مما يسمح بمعالجة البرامج النصية في الذاكرة وإعادة توصيفها إلى القرص ، مفيدة لسيناريوهات تحديث البرنامج النصي المستديرةliquid
باستخدام طريقة Template.ParseLiquid
liquid
أقل قوة من Scriban ، فإن هذا الوضع يسمح بالترحيل من liquid
إلى لغة scriban
بسهولةliquid
إلى برنامج نصي Scriban باستخدام Template.ToText
على قالب تم تحليله باستخدام 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
{{...}}
يمكنك تثبيت امتداد Scriban لرمز Visual Studio للحصول على تلوين بناء الجملة لنصوص Scriban (بدون HTML) وملفات Scriban HTML. لاحظ أن الامتداد لا يتعرف على الميزات النصية فوق Scriban.
يضيف Scriptic بعض الكلمات الرئيسية الإضافية إلى لغة البرمجة النصية:
layout
- على سبيل المثال ، يشير التوجيه {{layout "_main_layout.htmls"}}
إلى ملف التخطيط للصفحة الحالية. يمكن أن يكون التخطيطات متداخلة ، أي أن ملف التخطيط يمكن أن يكون له توجيه layout
. يمكن أن يكون هناك layout
واحد فقط في ملف معين. تم تصميم مفهوم التصميم بأكمله بعد وجهات النظر .NET Razor.body
- عنصر نائب داخل ملف تخطيط يشير إلى مكان تقديم محتوى الصفحة.section
- على سبيل المثال {{section "main-menu}"}}
في الصفحة عبارة عن مقتطف قابلة لإعادة الاستخدام من HTML و Scriptic. يتم تقديم محتوى القسم حيث يتم وضع توجيه render
المقابل.render
- على سبيل المثال {{render "main-menu"}}
يشير إلى المكان الذي سيتم فيه تقديم قسم مسمى معين ضمن ملف تخطيط. يمكن أيضًا تعريف الأقسام وتقديمها في نفس الصفحة. يمكن تقديم نفس القسم عدة مرات ، مما يجعله وسيلة مريحة لعزل قصاصات صغيرة قابلة لإعادة الاستخدام.markdown
- يمكن استخدامه بطريقتين مختلفتين:{{markdown}} <markdown text goes here> {{end}}
، وفي هذه الحالة يتم التعامل مع النص الموجود داخل زوج markdown-end
على أنه تخفيض نقي (يجب ألا يحتوي على تعبيرات نصية){{markdown "mdfilename.md"}}
، وفي هذه الحالة يتم سحب ملف التمييز الخارجي المحدد ؛ يمكن أن يحتوي ملف Markdown أيضًا على بيانات نصية وتعبيرات. يتم تقييمها قبل معالجة بناء جملة التخفيض. تعمل الكلمة الرئيسية markdown
فقط عند تقديم عروض نصية للتخفيض. يتم ذلك بطريقة مماثلة لكيفية تحديد اللوادر الخارجيين:
context . Markdown = new MarkdownRenderer ( ) ;
حيث ينفذ MarkdownRenderer
واجهة IStringTransformer
:
public interface IStringTransformer
{
string Render ( string text ) ;
}
يمكن للمحول القيام بسلسلة تعسفية من التحولات على النص ، ولكن كان من المفترض أن يعمل بشكل جيد مع معالج تخفيض مثل Markdig
(ومن المثير للاهتمام ، من نفس المؤلف مثل Scriban).
كان Scriban متاحًا لفترة من الوقت كحزمة Nuget :. Scriptic غير متوفر على Nuget حتى الآن.
لا يزال Scriptic يعمل بشكل كبير. لم يحقق نفس المستوى من الاستقرار والنضج مثل سكريبان. ومع ذلك ، فإن Scriptic هو مجرد امتداد بسيط لـ Scriban ، لذلك يتمتع بالكثير من فوائد قاعدة الكود الناضجة. قد يكون لدينا شيء عن غير قصد ، على الرغم من ... على أي حال ، نستخدم Scriptic لأعمال الإنتاج. ymmv. استخدم على مسؤوليتك الخاصة.
Scriptic/Scriban يطلق النار بسرعة ! لمزيد من التفاصيل ، يمكنك التحقق من وثيقة المعايير.
يتم إصدار هذا البرنامج بموجب ترخيص BSD-Plause 2.
الشعار النصفي ، المستوحى بوضوح من لغز Scriban ، هو العمل الأصلي من قبل Andrew J. Wozniewicz (ملف Coreldraw المصدر).
تم إنشاء Scriban ويتم الحفاظ عليه بواسطة Alexandre Mutel AKA Xoofx. تم توريد Scriptic من Scriban وتم تمديده من قبل Andrew J. Wozniewicz (المعروف أيضًا باسم ANCZ).