stringtranslate.com

Bigote (sistema de plantillas)

Mustache es un sistema de plantillas web . Se describe como un sistema sin lógica porque carece de declaraciones de flujo de control explícitas , como condicionalesif y o bucles for ; sin embargo, tanto la ejecución de bucles como la evaluación condicional se pueden lograr utilizando etiquetas de sección que procesan listas y funciones anónimas (lambdas). Se llama "Mustache" 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 fines de 2009. Se implementó una primera versión del motor de plantillas con Ruby , que ejecutaba textos de plantilla YAML . Los principios principales (preservados) fueron:

Los datos de entrada pueden ser una clase , de modo que los datos de entrada se puedan caracterizar como una vista de modelo-vista-controlador (MVC). La plantilla Mustache no hace nada 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 (p. ej., XML de salida ) está contenido en la plantilla . En un contexto de modelo-vista-presentador (MVP): los datos de entrada son de MVP- presentador , y la plantilla Mustache es MVP- vista .

Ejemplos

Datos

Los datos JSON se introducen en las plantillas de Mustache y generan un resultado. A continuación, se muestran algunos datos de ejemplo:

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

Variables

Una plantilla de bigote simple como la que se muestra a continuación, combinada con los datos anteriores, generaría como resultado Hello World.

Hola {{ nombre }}

HTML de Mustache escapa los datos de forma predeterminada. Por ejemplo, lo siguiente se representaría como 2 > 1.

2 {{ mayor  que }} 1

Para desactivar el escape, utilice un &. El siguiente texto se representaría como 2 > 1.

2 {{ & mayor  que }} 1

Sentencias if y bucles foreach

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

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

La variable especial {{.}}se refiere al elemento actual cuando se recorre una matriz, o al elemento seleccionado 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 mediante un signo de exclamación.

{{!comentario va 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 marcos de aplicaciones web (por ejemplo, CakePHP ) [ cita requerida ] . La compatibilidad con JavaScript incluye tanto la programación del lado del cliente con muchas bibliotecas de JavaScript y marcos de Ajax como jQuery , Dojo y YUI , como también JavaScript del lado del servidor usando Node.js y CommonJS .

Especificación e implementación

Hay muchas implementaciones de Mustache Engine disponibles, y todas ellas cumplen una especificación formal común (ver enlaces externos), que para los usuarios finales da como resultado una sintaxis común.

En marzo de 2011, la última SPEC_VERSION era 1.1.2. [6]

Todos los motores Mustache , en la arquitectura v1.X, tienen un método de renderizado , una clase Mustache_Compiler y una clase Parser . [ cita requerida ]

Variaciones y derivados

Mustache inspiró numerosas bibliotecas de plantillas de JavaScript que se derivaron de la simplicidad original para agregar cierta funcionalidad o uso. [ cita requerida ]

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. Handlebars.js y Mustache son lenguajes de plantillas sin lógica que mantienen la vista y el código separados como todos sabemos que deberían estar. [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 a través de código explícito escrito por el usuario para ese bloque.

Véase también

Referencias

  1. ^ Avola, G.; Raasch, J. (2012). Desarrollo web móvil espectacular . ISBN 9781118348123.
  2. ^ Cady, J. (2011). Programación funcional aplicada a plantillas de desarrollo web: Informe de MS Project (PDF) (Informe).
  3. ^ ab "Bigote". GitHub . 19 de abril de 2022.
  4. ^ "Inicio". web-mode.org .
  5. ^ "Mustache - Visual Studio Marketplace". Visualstudio.com . Microsoft. 18 de agosto de 2019.
  6. ^ "Cambios". Mustache . GitHub. 20 de marzo de 2011.
  7. ^ Katz, Yehuda (2011–2019). "Manillares: 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 .

Enlaces externos