콧수염(템플릿 시스템)
Mustache (template system)![]() |
원저작자 | 저스틴 힐레만, 브루노 수틱, 크리스 완스트라트, 리카르도 멘데스, 브루노 미셸 |
---|---|
초기 릴리즈 | 전( |
안정된 릴리스 | 4.2.0 / 2021년 3월 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, CFEngine 및 XQuery.
콧수염은 다음과 같은 명확한 제어 흐름 문장이 없기 때문에 논리가 없는 시스템으로 기술됩니다.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
섹션 태그는 if 조건부처럼 동작합니다만,x
포어치 루프처럼 동작합니다.
이스케이프되지 않은 템플릿:
여기, 만약body
HTML 이 포함되어 있기 때문에, 이스케이프 할 수 없습니다.
기술적 세부사항
구문 강조 표시는 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는 콧수염 섹션과 유사). 도우미는 해당 블록에 대해 사용자가 작성한 명시적인 코드를 통해 사용자 지정 함수를 허용합니다.
「 」를 참조해 주세요.
레퍼런스
- ^ Avola, G.; Raasch, J. (2012). Smashing Mobile Web Development. ISBN 9781118348123.
- ^ Cady, J. (2011). Functional Programming Applied to Web Development Templates: MS Project Report (PDF) (Report).
- ^ a b "Mustache". GitHub. 19 April 2022.
- ^ "Home". web-mode.org.
- ^ "Mustache - Visual Studio Marketplace". Visualstudio.com. Microsoft. August 18, 2019.
- ^ "Changes". Mustache. GitHub. March 20, 2011.
- ^ Katz, Yehuda (2011–2019). "Handlebars: Minimal templating on steroids". Handlebarsjs.com.
- ^ wykatz, NPM. "html+handlebars NPM". html+handlebars NPM package details. Node Package Manager. Retrieved 20 December 2016.