Álex Acuña Viera

Code thoughts and other randomness

Mis Mañas Con Emmet

Últimamente he estado afinando mis procesos de desarrollo. El desarrollo en el 2013 es maravilloso, gracias a herramientas como node.js, npm, yeoman, grunt, bower y un largo etcétera (pronto escribiré al respecto). Pero lo que me convoca ahora es un truco que siempre quise, y hasta hoy me había mantenido alejado de abreviadores de código como Zen Coding (ahora Emmet).

Mi problema con Emmet

Me gusta comentar las clases y los IDs en mi html, así nunca estaré perdido en qué o dónde se está cerrando una etiqueta, y de esa forma es más legible para mí u otros colegas que pudieran trabajar en mis implementaciones.

Por ejemplo, una sintáxis básica en Emmet para Bootstrap sería más o menos así:

div.container-fluid>div.row-fluid>div.span8+div.span4

Resultando algo como esto:

<div class="container-fluid">
    <div class="row-fluid">
        <div class="span8"></div>
        <div class="span4"></div>
    </div>
</div>

Como hasta ahora, no podía modificar el output del código, solía escribirlo a mano. Así:

<div class="container-fluid">
    <div class="row-fluid">
        <div class="span8"></div><!-- .span8 -->
        <div class="span4"></div><!-- .span4 -->
    </div><!-- .row-fluid -->
</div><!-- .container-fluid -->

Ahora, con un par de preferencias definidas en un par de archivos json, podemos hacer esto.

Preferencias de Emmet

Leyendo la documentación de Emmet me di cuenta de que necesitaba dos cosas:

  • Un filtro adicional a la salida del html
  • Una sintáxis que pusiera los comentarios tal como me gustan.

Entonces, en un archivo snippets.json agregué un filtro (documentación)

{
...
"html": {
    ...
    "filters": "html, c"
    }
}

Donde c es el filtro de comentario. Luego, en un archivo preferences.json personalicé el output del comentario, de esta forma:

{
  "filter.commentAfter": "<!-- <%= attr(\"id\", \"#\") %><%= attr(\"class\", \".\") %> -->"
}

Y luego estos dos archivos los puse en una carpeta, para llamarlos en las preferencias de Coda 2, en el menú Plug-ins>Emmet>Preferences. Si usan otro editor, lean la documentación de cada plugin.

Acá los dejo con estas dos personalizaciones en mi Github:

https://github.com/kyuumeitai/emmet-personalization

Prontamente, un post sobre yeoman.