javascript node.js express pug

javascript - Jade: Nueva advertencia sobre mĂșltiples atributos.



pugjs conditional (2)

He actualizado jade a la última versión y comencé a ver este mensaje en la consola

You should not have jade tags with multiple attributes

Se menciona como característica, here

0.33.0 / 2013-07-12 Hugely more powerful error reporting (especially with compileDebug set explicitly to true) Add a warning for tags with multiple attributes

Y lo veo en el codigo. https://github.com/visionmedia/jade/blob/a38aa552f6f53554ac5605299b6b8c7e07cbdf1f/lib/parser.js#L662

Pero, ¿qué significa realmente? ¿Cuándo recibiré esta advertencia? Por ejemplo, ¿cuándo obtendré un error basado en el siguiente código? (Funciona sin previo aviso, pero me gustaría saber cuándo obtendré un error para poder compararlo con mi código)

mixin link(href, name) a(class=attributes.class, href=href)= name a(href=href, attributes)= name +link(''/foo'', ''foo'')(class="btn")


Múltiples "atributos" no significa lo que probablemente piensas que significa. No es un atributo HTML como lo conocemos, sino un token de tipo "atributo".

Ejemplo:

a(href="#WAT").some-class(title="WAT")

Tenga en cuenta que tengo dos secciones de atributos, cada una con un atributo.

Mejor ponerlos en una sección de atributos:

a(href="#WAT", title="WAT").some-class


(Encontré esta pregunta a través de google esta advertencia como uno de los primeros resultados porque quería deshacerme de ella ...)

La respuesta aceptada anteriormente no me ayudó en el siguiente caso, pero muestra cómo se puede deshacerse de la advertencia sin perder la funcionalidad de los atributos (no proporciona una respuesta a por qué funciona de esta manera):

// using mixins similar to +link(param1,param2) above where ''data'' and ''class'' // below are not named mixin params // OK (without a warning): +link("foo", data="true")(class="bar") // WARNING is shown: +link("foo")(class="bar")(data="true") // ERROR on compiling: +link("foo", class="bar", data="true")

(Lamento haber creado tantos malentendidos como se muestra en los comentarios a continuación y espero que mi última edición aquí aclare que es una respuesta / ayuda válida, aunque un poco más general para esas advertencias)