Emmet: ¿Es posible controlar la secuencia de atributos al difundir en HTML?

Creado en 3 nov. 2015  Â·  18Comentarios  Â·  Fuente: emmetio/emmet

Me gustaría tener el atributo class siempre como primer atributo.

¿Quiere respaldar este problema? ¡Publique una recompensa por él! Aceptamos recompensas a través de Bountysource .

Enhancement

Comentario más útil

La pregunta es relevante para este día.
@sergeche, ¿cuáles son las posibilidades de que esta tarea se

Todos 18 comentarios

Normalmente, todos los atributos se muestran en el orden en que aparecen en la abreviatura, a menos que se especifique un fragmento con otros atributos para la abreviatura. Aquí simplemente cambia los fragmentos y agrega un atributo vacío class en el lugar correcto.

@sergeche
label.clasname → <label for="" class="clasname"></label>
a.classname → <a href="" class="classname"></a>
a[class=classname href="goo"] → <a href="goo" class="classname"></a>

Normalmente, todos los atributos se muestran en el orden en que aparecen en la abreviatura,

No )

pero ¿cómo crear un fragmento que sirva, por ejemplo: a.classname → <a class="classname" href=""></a> ?

Porque por a fragmento: https://github.com/emmetio/emmet/blob/master/lib/snippets.json#L691

Solución: elimine este fragmento (anótelo con un valor vacío: "a": null ) o modifíquelo: "a": "<a class=\"\" href=\"\"> , pero luego el atributo class siempre se mostrará . O cree un nuevo fragmento que no contenga ningún atributo en el elemento <a> .

HM ...
escribió "a": null, - http://take.ms/BHuO6
nada ha cambiado: a.classname → <a href="|" class="classname"></a>

escribió "a": "<a class=\"\" href=\"\">" - http://take.ms/98CIZ
no utilizable: a.classname → <a class="" href="">|

escribió "a": "<a>",
no-no-no-no, David Blaine, NO: a.classname → <a>

¿Entiendo correctamente que la respuesta a mi pregunta es "de ninguna manera"? ¿O estoy haciendo algo mal? )

Es conveniente hacerlo; de ninguna manera, debe cambiar el kernel para poder establecer prioridades de clasificación para los atributos.

¿En qué archivo cavar algo? :)

Alternativamente: https://github.com/emmetio/emmet/blob/master/lib/filter/html.js#L21
En principio, puede escribir su propio filtro, que generará la salida correcta, y conectarlo como una extensión para no tocar el kernel.

La opción con el filtro es mucho mejor (odio entrar en el núcleo de la aplicación). ¿Dónde puedo leer sobre la API? ¿O algunos ejemplos, tal vez?

La pregunta es relevante para este día.
@sergeche, ¿cuáles son las posibilidades de que esta tarea se

Puede escribir su filtro y hacer una solicitud de extracción. No hay documentación sobre filtros, pero esta es una función común que acepta una abreviatura analizada en forma de árbol como entrada y puede cambiarla, por ejemplo, intercambiar atributos

Fragmento redefinido para a (http://s020.radikal.ru/i717/1703/c0/8127577c2b25.png), sin filtros funciona como debería: a.xxx -> <a class="xxx" href=""></a>
Pero cuando se usa el filtro bem, el resultado es incorrecto, el nombre de la clase está duplicado:
a.xxx|bem -> <a class="xxx xxx" href=""></a>
div.yyy>a.-xxx|bem -> <a class="yyy__xxx -xxx" href=""></a>
¿Es posible evitar esto de alguna manera? @sergeche

@DDyst esta característica está en el nuevo kernel, que todavía está en la versión alfa para Atom

¿Cómo verlo / probarlo? )

Sergey, sugiera al menos en qué archivo buscar en esta misma oportunidad. Estoy viendo que la estructura del archivo ha cambiado mucho O_o ... Hasta ahora, ¿es posible personalizar directamente en el kernel solo correctamente?
Sí, y bem, ¿ahora cómo?
Shl .. Y pensé que Emmet ya no podía ser mejor, ¡¡pero aquí viene esto !!))

  1. Vaya a la configuración de usuario de Emmet:
    Preferencias -> Configuración del paquete -> Emmet -> Configuración de usuario
  2. Inserte el siguiente fragmento:
{
  "snippets": {
    "html": {
      "abbreviations": {
        "a": "<a class='' href=''>"
        }
      }
    }
}

Bueno, siempre obtenemos todos los enlaces con las clases :)

Realizó la implementación inicial de combinar atributos en orden inverso al resolver fragmentos: primero, los que están escritos en la abreviatura, luego los que están declarados en el fragmento (consulte el enlace al compromiso anterior). ¿Es esto similar al comportamiento esperado?

Otra opción es declarar atributos implícitos (con un signo de exclamación al principio) en el fragmento: "foo": "my-tag[title !class]" La esencia de los atributos implícitos es que se muestran solo si tienen un valor. Es decir, de hecho, utilizando atributos implícitos, puede especificar el orden en el que se deben mostrar los atributos, independientemente del orden en el que se declararon en la abreviatura

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

corysimmons picture corysimmons  Â·  5Comentarios

DanielRuf picture DanielRuf  Â·  5Comentarios

planetoftheweb picture planetoftheweb  Â·  3Comentarios

midgethoen picture midgethoen  Â·  8Comentarios

MarvinXu picture MarvinXu  Â·  10Comentarios