콧수염(템플릿 시스템)
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포어치 루프처럼 동작합니다.
이스케이프되지 않은 템플릿:
여기, 만약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는 콧수염 섹션과 유사). 도우미는 해당 블록에 대해 사용자가 작성한 명시적인 코드를 통해 사용자 지정 함수를 허용합니다.
「 」를 참조해 주세요.
레퍼런스
- ^ 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.