Scriptic은 liquid
템플릿을 구문 분석하기위한 호환 모드를 갖춘 빠르고 강력하며 안전하며 가벼운 텍스트 템플릿 언어 및 엔진입니다.
Scriptic은 Scriban의 직접 포크 및 확장으로 모든 멋진 기능을 상속하는 동시에 레이아웃 및 섹션 (.NET Razor와 유사)에 대한 지원을 추가합니다 (아래 참조).
다음은 Scriptic 및 Scriban에 동일하게 적용됩니다.
// Parse a scriban template
var template = Template . Parse ( " Hello {{name}}! " ) ;
var result = template . Render ( new { Name = " World " } ) ; // => "Hello World!"
Scriban은 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
를 사용하여 스크립트 텍스트 표현에 AST를 작성하여 메모리에서 스크립트를 조작하고 디스크로 다시 표시 할 수 있습니다. 왕복 스크립트 업데이트 시나리오 에 유용합니다.Template.ParseLiquid
메소드를 사용하여 liquid
와 호환됩니다liquid
언어는 Scriban보다 덜 강력하지만이 모드는 liquid
에서 scriban
언어로 쉽게 마이그레이션 할 수 있습니다.Template.ParseLiquid
로 구문 분석 된 템플릿의 Template.ToText
사용하여 liquid
스크립트를 Scriban 스크립트로 변환 할 수 있습니다.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 Code의 Scriban Extension을 설치하여 Scriban Scripts (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 구문이 처리되기 전에 평가됩니다. markdown
키워드는 Markdown 텍스트 렌더러를 제공 할 때만 작동합니다. 이것은 외부 템플릿 로더를 지정하는 방식과 유사한 방식으로 수행됩니다.
context . Markdown = new MarkdownRenderer ( ) ;
여기서 MarkdownRenderer
IStringTransformer
인터페이스를 구현합니다.
public interface IStringTransformer
{
string Render ( string text ) ;
}
변압기는 텍스트에서 임의의 일련의 변환을 수행 할 수 있지만 Markdig
와 같은 Markdown 프로세서 (흥미롭게도 Scriban과 같은 저자)와 잘 작동하도록 의도되었습니다.
Scriban은 Nuget 패키지로 잠시 동안 제공되었습니다. Nuget에서는 Scriptic을 아직 사용할 수 없습니다.
Scriptic은 여전히 진행중인 작업입니다. 그것은 Scriban과 동일한 수준의 안정성과 성숙도를 달성하지 못했습니다. 즉, Scriptic은 Scriban의 사소한 확장 일 뿐이므로 성숙한 코드 기반의 많은 이점을 누립니다. 우리는 우연히 무언가를 깨뜨렸을 수도 있습니다. YMMV. 자신의 위험에 사용하십시오.
Scriptic/Scriban은 빠르게 타 오르고 있습니다 ! 자세한 내용은 벤치 마크 문서를 확인할 수 있습니다.
이 소프트웨어는 BSD-Clause 2 라이센스에 따라 해제됩니다.
Scriban의 퍼즐 에서 명확하게 영감을 얻은 스크립트 로고는 그럼에도 불구하고 Andrew J. Wozniewicz (Source CorelDraw 파일 포함)의 독창적 인 작품입니다.
Scriban은 Alexandre Mutel 일명 xoofx에 의해 만들어졌으며 유지되고 있습니다. Scriptic은 Scriban에서 포크되어 Andrew J. Wozniewicz (일명 ANCZ)에 의해 확장되었습니다.