Articulo de referencia

Bigote (sistema de plantillas)

Mustache es un sistema de plantillas web . Se describe como un sistema sin lógica porque carece de instrucciones de control de flujo explícitas, como condicionales if o bucles f...

Mustache es un sistema de plantillas web . Se describe como un sistema sin lógica porque carece de instrucciones de control de flujo explícitas, como condicionalesif o bucles for ; sin embargo, tanto los bucles como la evaluación condicional se pueden lograr mediante etiquetas de sección que procesan listas y funciones anónimas (lambdas). Se llama "Mustache" (bigote) debido al uso intensivo de llaves , que se asemejan a un bigote de lado . Mustache se utiliza principalmente para aplicaciones móviles y web. [ 1 ] [ 2 ]else{ }

Las implementaciones están disponibles en ActionScript , C++ , Clojure , CoffeeScript , ColdFusion , Common Lisp , Crystal , D , Dart , Delphi , Elixir , Erlang , Fantom , Go , Haskell , Io , Java , JavaScript , Julia , Lua , .NET , Objective-C , OCaml , Perl , PHP , Pharo , Python , R , Racket , Raku , Ruby , Rust , Scala , Smalltalk , Swift , Tcl , CFEngine y XQuery .

Historia y principios

Mustache-1 se inspiró en ctemplate y et, [ 3 ] y comenzó como una distribución de GitHub a finales de 2009. Una primera versión del motor de plantillas se implementó con Ruby , ejecutando textos de plantilla YAML . Los principios principales (conservados) fueron:

Los datos de entrada pueden ser una clase , de modo que los datos de entrada se pueden caracterizar como una vista modelo-vista-controlador (MVC). La plantilla Mustache no hace más que hacer referencia a métodos en la vista (datos de entrada) . [ 3 ] Toda la lógica, las decisiones y el código están contenidos en esta vista , y todo el marcado (por ejemplo, XML de salida ) está contenido en la plantilla . En un contexto modelo-vista-presentador (MVP): los datos de entrada son del presentador MVP , y la plantilla Mustache es la vista MVP .

Ejemplos

Datos

Los datos JSON se introducen en las plantillas de Mustache, lo que da como resultado una salida. Aquí hay algunos datos de ejemplo:

{ "nombre" : "Mundo" , "mayor que" : ">" }

Variables

Una plantilla simple de Mustache como la que se muestra a continuación, combinada con los datos anteriores, produciría el siguiente resultado Hello World: .

Hola {{ nombre }}

Mustache HTML escapa los datos por defecto. Por ejemplo, lo siguiente se mostraría como .2 > 1

2 {{ mayor que }} 1

Para desactivar el escape, utilice un &. Lo siguiente se mostraría como 2 > 1.

2 {{ & mayor que }} 1

Sentencias condicionales y bucles foreach

A continuación se muestra una plantilla con la etiqueta section. Cuando xes un valor booleano , la etiqueta section actúa como una condición if . Cuando xes un array , actúa como un bucle foreach .

{{ #x }} Algún texto {{ /x }}

La variable especial {{.}}hace referencia al elemento actual al recorrer una matriz, o al elemento que se comprueba en una condición.

Incluyendo otras plantillas

Puedes indicarle a una plantilla Mustache que cargue otra plantilla Mustache dentro de ella usando el >símbolo.

<form> {{ > cuadro de texto }} {{ > botón de envío }} </form>

Comentarios

Los comentarios se indican con un signo de exclamación.

{{!comentario aquí}}

Detalles técnicos

El resaltado de sintaxis está disponible en Atom , Coda , Emacs , [ 4 ] TextMate , Vim y Visual Studio Code . [ 5 ]

La compatibilidad con plantillas Mustache está integrada en muchos frameworks de aplicaciones web (por ejemplo, CakePHP ) . La compatibilidad con JavaScript incluye tanto la programación del lado del cliente con muchas bibliotecas de JavaScript y frameworks Ajax como jQuery , Dojo y YUI , como la programación del lado del servidor con Node.js y CommonJS .

Especificación e implementaciones

Existen numerosas implementaciones de Mustache Engine , y todas ellas cumplen con una especificación formal común (véanse los enlaces externos), lo que da como resultado una sintaxis común para los usuarios finales.

A mayo de 2026, la última SPEC_VERSION era 1.4.3. [ 6 ]

Variaciones y derivados

Mustache inspiró numerosas bibliotecas de plantillas JavaScript que se bifurcaron de la simplicidad original para agregar cierta funcionalidad o uso.

Bigote daliniano

Handlebars.js [ 7 ] se describe a sí mismo como:

Handlebars.js es una extensión del lenguaje de plantillas Mustache, creado por Chris Wanstrath. Tanto Handlebars.js como Mustache son lenguajes de plantillas sin lógica que mantienen la vista y el código separados, como todos sabemos que debería ser. [ 8 ]

Handlebars se diferencia de su predecesor en que, dentro de las expresiones de bloque (similares a las secciones en Mustache), los ayudantes permiten funciones personalizadas mediante código explícito escrito por el usuario para ese bloque.

Véase también

Referencias

  1. ^ Avola, G.; Raasch, J. (2012). "Rompido desarrollo web móvil" . ISBN 9781118348123.
  2. Cady, J. (2011). Programación funcional aplicada a plantillas de desarrollo web: Informe de MS Project (PDF) (Informe).
  3. 1 2 "Bigote" . GitHub . 19 de abril de 2022.
  4. "Inicio" . web-mode.org .
  5. "Bigote - Visual Studio Marketplace" . Visualstudio.com . Microsoft. 18 de agosto de 2019.
  6. "Lanzamientos" . Mustache . GitHub. 10 de mayo de 2026.
  7. Katz, Yehuda (2011–2019). "Handlebars: Plantillas minimalistas con esteroides" . Handlebarsjs.com .
  8. wykatz, NPM. "html+handlebars NPM" . Detalles del paquete html+handlebars NPM . Node Package Manager . Consultado el 20 de diciembre de 2016 .
  • Sitio web oficial
  • Bigote en GitHub
Obtenido de " https://en.wikipedia.org/w/index.php?title=Mustache_(template_system)&oldid=1353494027#Handlebars "