Scriptic - это быстрый, мощный, безопасный и легкий текстовый язык и двигатель для .NET, с режимом совместимости для синтаксического liquid
шаблона.
Scriptic - это прямая вилка и расширение на Scriban и, таким образом, наследует все его удивительные функции, добавляя поддержку макетов и разделов (аналогично .NET Razor's) (см. Ниже).
Следующее относится к Scriptic и 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. Обратите внимание, что расширение не распознает функции Scriptic в верхней части Scriban.
Scriptic добавляет несколько дополнительных ключевых слов в язык сценариев:
layout
- например, директива {{layout "_main_layout.htmls"}}
указывает файл макета для текущей страницы. Макеты могут быть вложены, то есть файл макета сама по себе может иметь директиву layout
. Однако в данном файле может быть только одна директива layout
. Вся концепция макета моделируется после .NET RAZOR VIEWS.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 по-прежнему очень много работает. Он не достиг такого же уровня стабильности и зрелости, что и Scriban. Тем не менее, Scriptic - это лишь незначительное расширение Scriban, поэтому он пользуется большим количеством преимуществ своей зрелой базы кода. Мы, возможно, непреднамеренно что -то сломали, хотя ... в любом случае, мы используем Scriptic для производственной работы. YMMV. Используйте свой собственный риск.
Scriptic/Scriban быстро сверкает ! Для получения более подробной информации вы можете проверить документ Benchmarks.
Это программное обеспечение выпускается по лицензии BSD-Clause 2.
Логотип Scriptic, четко вдохновенный головоломкой Скрибана, тем не менее является оригинальной работой Эндрю Дж. Возневича (в комплекте источник Coreldraw файл).
Scriban был создан и поддерживается Александром Мутом, который XOOFX. Скриптик был разбит от Scriban и продлен Эндрю Дж. Возневиком (он же ANCZ).