콧수염(템플릿 시스템)

Mustache (template system)
콧수염
원저작자저스틴 힐레만, 브루노 수틱, 크리스 완스트라트, 리카르도 멘데스, 브루노 미셸
초기 릴리즈2009년; 13년 전(2009년)
안정된 릴리스
4.2.0 / 2021년 3월 28일, 16개월 전(2021-03-28)
저장소
유형웹 템플릿 시스템
면허증.MIT
웹 사이트콧수염.github.이오

콧수염은 ActionScript, C++, Clojure, Coffecript, ColdFusion, Common Lisp, Crystal, D, Dart, Delphi, Elixir, Erlang, Fantom, Go, Haskell, Io, Java, Julia, Lua에 사용할 수 있는 구현있는템플릿 시스템입니다.NET, Objective-C, OCaml, Perl, PHP, Pharo, Python, R, Raku, Ruby, Rust, Scala, Smalltalk, Swift, TCL, CFEngineXQuery.

콧수염은 다음과 같은 명확한 제어 흐름 문장이 없기 때문에 논리가 없는 시스템으로 기술됩니다.if그리고.else 조건 또는 루프의 경우.다만, 섹션 태그 처리 리스트와 익명 함수(suponymous functions)를 사용해 루핑과 조건부 평가를 모두 실시할 수 있습니다.

치열 교정기를 많이 사용하기 때문에 "Mustache"라는 이름이 붙었다.{ }옆구리를 닮은 콧수염.

콧수염은 주로 모바일 [1][2]및 웹 어플리케이션에서 사용됩니다.

역사와 원리

콧수염-1은 ctemplate와 [3]et에서 영감을 받아 2009년 말에 GitHub 배포로 시작되었습니다.템플릿 엔진의 첫 번째 버전은 YAML 템플릿 텍스트를 실행하는 Ruby와 함께 구현되었습니다.(보존된) 주요 원칙은 다음과 같다.

  • 논리가 필요 없음: 명시적인 제어 흐름 문장은 없으며 모든 제어는 데이터에 의해 이루어집니다.
  • 우려 사항의 강력한 분리: 논리와 프레젠테이션: 애플리케이션 논리를 템플릿에 포함할 수 없습니다.

입력 데이터를 모델 뷰 컨트롤러(MVC) 뷰로 특성화할 수 있도록 입력 데이터는 클래스가 될 수 있습니다.콧수염 템플릿은 (입력 데이터)[3] 보기에서 참조 메서드만 수행합니다. 뷰에는 모든 논리, 결정 및 코드가 포함되며 템플릿에는 모든 마크업(출력 XML 등)이 포함됩니다.Model-View-Presenter(MVP; 모델뷰-프레젠터) 컨텍스트의 경우: 입력 데이터는 MVP-프레젠터이며 콧수염템플릿은 MVP 뷰입니다.

가장 간단한 템플릿:

안녕{{이름.}} 

섹션 태그가 있는 템플릿:

{{#x}} 일부 텍스트 {{/x}} 

여기, 언제x섹션 태그는 if 조건부처럼 동작합니다만,x포어치 루프처럼 동작합니다.

이스케이프되지 않은 템플릿:

{{&}} 

여기, 만약bodyHTML 이 포함되어 있기 때문에, 이스케이프 할 수 없습니다.

기술적 세부사항

구문 강조 표시는 Atom, Coda, Emacs,[4] TextMate, Vim Visual Studio [5]Code에서 사용할 수 있습니다.

콧수염 템플릿 지원은 많은 웹 응용 프로그램 프레임워크에 포함되어 있습니다(예:Cake PHP)[citation needed]JavaScript는 많은 JavaScript 라이브러리jQuery, Dojo, YUI 등의 Ajax 프레임워크를 사용하는 클라이언트 측 프로그래밍과 Node.js 및 CommonJs를 사용하는 서버 측 JavaScript를 모두 지원합니다.

사양 및 구현

사용할 수 있는 Beauthard Engine 실장은 여러 가지가 있으며, 모두 공통의 공식 사양(외부 링크 참조)을 충족합니다.이 규격은 최종 사용자의 경우 공통 구문이 됩니다.

2011년 3월 현재 마지막 SPEC_VERSION은 1.1.[6]2입니다.

v1.X 아키텍처의 모든 콧수염 엔진에는 렌더링 메서드, 콧수염_컴파일러 클래스 및 파서 [citation needed]클래스가 있습니다.

변형 및 파생상품

콧수염은 본래의 단순함에서 벗어나 특정 기능 또는 [citation needed]사용을 추가하는 수많은 JavaScript 템플릿 라이브러리에 영감을 주었습니다.

핸들바

Handlebars.js는[7] 다음과 같이 설명됩니다.

Handlebars.js는 Chris Wanstrath가 작성한 콧수염 템플릿 언어의 확장입니다.Handlebars.js와 콧수염은 모두 뷰와 코드를 구분하는 논리 없는 템플릿 언어입니다.[8]

핸들 바는 이전 블록 식과 다릅니다(Block Expressions(Block Expressions)(Heelpers는 콧수염 섹션과 유사). 도우미는 해당 블록에 대해 사용자가 작성한 명시적인 코드를 통해 사용자 지정 함수를 허용합니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ Avola, G.; Raasch, J. (2012). Smashing Mobile Web Development. ISBN 9781118348123.
  2. ^ Cady, J. (2011). Functional Programming Applied to Web Development Templates: MS Project Report (PDF) (Report).
  3. ^ a b "Mustache". GitHub. 19 April 2022.
  4. ^ "Home". web-mode.org.
  5. ^ "Mustache - Visual Studio Marketplace". Visualstudio.com. Microsoft. August 18, 2019.
  6. ^ "Changes". Mustache. GitHub. March 20, 2011.
  7. ^ Katz, Yehuda (2011–2019). "Handlebars: Minimal templating on steroids". Handlebarsjs.com.
  8. ^ wykatz, NPM. "html+handlebars NPM". html+handlebars NPM package details. Node Package Manager. Retrieved 20 December 2016.

외부 링크