O Scripttic é uma linguagem e motor de texto rápido, poderoso, seguro e leve para o .NET, com um modo de compatibilidade para analisar modelos liquid
.
A Scriptic é um garfo direto e a extensão do Scriban e, assim, herda todos os seus recursos impressionantes, adicionando suporte a layouts e seções (semelhante ao .NET Razor's) (veja abaixo).
O seguinte se aplica igualmente ao Script e Scriban:
// Parse a scriban template
var template = Template . Parse ( " Hello {{name}}! " ) ;
var result = template . Render ( new { Name = " World " } ) ; // => "Hello World!"
O Scriban é uma linguagem e mecanismo de modelos de texto rápido, poderoso, seguro e leve para o .NET, com um modo de compatibilidade para analisar modelos liquid
.
// Parse a scriban template
var template = Template . Parse ( " Hello {{name}}! " ) ;
var result = template . Render ( new { Name = " World " } ) ; // => "Hello World!"
Analisar um modelo líquido usando a linguagem líquida:
// Parse a liquid template
var template = Template . ParseLiquid ( " Hello {{name}}! " ) ;
var result = template . Render ( new { Name = " World " } ) ; // => "Hello World!"
O idioma é muito versátil, fácil de ler e usar, semelhante aos modelos líquidos:
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 } ) ;
PERCEBER
Por padrão, propriedades e métodos dos objetos .NET são automaticamente expostos com nomes minúsculos e
_
. Isso significa que uma propriedade comoMyMethodIsNice
será exposta comomy_method_is_nice
. Esta é a convenção padrão, originalmente para corresponder ao comportamento dos modelos líquidos. Se você deseja mudar esse comportamento, precisa usar um delegadoMemberRenamer
Template.ToText
, permitindo manipular scripts na memória e salvá-los novamente para o disco, útil para cenários de atualização de script de ida e voltaliquid
usando o modelo Template.ParseLiquid
liquid
é menos poderosa que o scriban, esse modo permite migrar da linguagem liquid
para scriban
facilmenteliquid
em um script scriban usando Template.ToText
em um modelo analisado com Template.ParseLiquid
if
/ else
/ for
/ while
, expressões ( x = 1 + 2
), condições ... etc.myvar | string.capitalize
)func
e permitir ponteiros/delegados da função por meio do alias @ directive
x = {mymember: 1}
) e matrizes (por exemplo, x = [1,2,3,4]
)wrap
arrays functions
date
html
maths functions
object
regex functions
string functions
timespan
{{...}}
Você pode instalar a extensão do Scriban para o código do Visual Studio para obter a coloração de sintaxe para scripts Scriban (sem HTML) e arquivos HTML Scriban. Observe que a extensão não reconhece os recursos da Scripts em cima do Scriban.
O Scripts adiciona algumas palavras -chave adicionais ao idioma de script:
layout
- por exemplo, a diretiva {{layout "_main_layout.htmls"}}
indica o arquivo de layout para a página atual. Os layouts podem ser aninhados, ou seja, um arquivo de layout pode ter uma diretiva layout
. Porém, pode haver apenas uma diretiva layout
em um determinado arquivo. Todo o conceito de layout é modelado após as vistas .NET Razor.body
- um espaço reservado dentro de um arquivo de layout que indica onde o conteúdo da página será renderizado.section
- Por exemplo {{section "main-menu}"}}
em uma página é um trecho reutilizável e nomeado de HTML e Script. O conteúdo de uma seção é renderizado sempre que uma diretiva render
correspondente é colocada.render
- por exemplo {{render "main-menu"}}
indica onde uma determinada seção nomeada deve ser renderizada em um arquivo de layout. As seções também podem ser definidas e renderizadas na mesma página. A mesma seção pode ser renderizada várias vezes, tornando -a uma maneira conveniente de isolar pequenos trechos de marcação reutilizáveis.markdown
- pode ser usado de duas maneiras diferentes:{{markdown}} <markdown text goes here> {{end}}
; nesse caso, o texto dentro do par markdown-end
é tratado como puro markdown (não deve conter expressões scripts){{markdown "mdfilename.md"}}
, caso em que o arquivo de marcação externo especificado é puxado; O arquivo de marcação também pode conter declarações e expressões scripts. Eles são avaliados antes que a sintaxe de Markdown seja processada. A palavra -chave markdown
funciona apenas quando você fornece um renderizador de texto de marcação. Isso é feito de maneira semelhante à como os carregadores de modelo externo são especificados:
context . Markdown = new MarkdownRenderer ( ) ;
Onde MarkdownRenderer
implementa a interface IStringTransformer
:
public interface IStringTransformer
{
string Render ( string text ) ;
}
O transformador pode fazer uma série arbitrária de transformações no texto, mas pretendia funcionar bem com um processador de marcação como Markdig
(curiosamente, do mesmo autor que o Scriban).
O Scriban está disponível há algum tempo como um pacote NUGET :. O SCRIPTIC ainda não está disponível no NUGET.
O Scripts ainda é muito trabalho em andamento. Não alcançou o mesmo nível de estabilidade e maturidade que o Scriban. Dito isto, a Scriptic é apenas uma extensão menor do Scriban, por isso desfruta de muitos benefícios de sua base de código maduro. Podemos ter inadvertidamente quebrado alguma coisa ... Enfim, usamos a Scripts para o trabalho de produção. Ymmv. Use por sua conta e risco.
Scripts/Scriban está abrindo rápido ! Para mais detalhes, você pode verificar o documento de referência.
Este software é lançado sob a licença BSD-cláusula 2.
O logotipo da Script, claramente inspirado pelo quebra -cabeça do Scriban, é, no entanto, o trabalho original de Andrew J. Wozniewicz (arquivo coreldraw da fonte incluído).
O Scriban foi criado e está sendo mantido por Alexandre Mutel, também conhecido como XooFx. O Scriptic foi bifurcado por Scriban e estendido por Andrew J. Wozniewicz (também conhecido como ANCZ).