pug - mejor - Jade: falta espacio antes del texto para la línea x del archivo de jade
cual es el mejor formato para escanear (6)
Estoy haciendo una aplicación web basada en Express y cada vez que alguien visita este archivo de jade, aparece el siguiente error:
Warning: missing space before text for line 28 of jade file "C:/x/app/view
s/login.jade"
También lo escupe algunas veces por cada línea en la que sucede.
Eché un vistazo a estas líneas y no puedo entender de qué se está quejando.
Mi archivo de jade es el siguiente:
doctype html
html
head
meta(charset=''utf-8'')
link(href=''style.css'', rel=''stylesheet'')
body
.wrapper
header.header
a(href="/", style="color: #000000;")
h1(style="position: absolute; top: 30px;") Hello
.middle
.container
main.stream
p Login
main.name
form(id="login", method="POST", action="/login")
table(cellspacing="15")
tr
td Email
td
input(type=''email'', name=''email'' style="width: 250; height: 18px; border: 1px solid #999999; padding: 5px;")
tr
td Password
td
input(type=''password'', name=''password'' style="width: 250; height: 18px; border: 1px solid #999999; padding: 5px;")
tr
td
input(style="width:75px;height:30px;", type="submit", value="Login")
aside.left-sidebar
main.dir
a(href="/") Home
main.dir
a(href="/signup") Register
footer.footer
h3 Hello
p This is a footer
Alternativamente, usted puede tener este problema si tiene algo así ...
/t /t p Foo
/t /t p /t Foo
La respuesta anterior también generó este error, por lo que técnicamente estamos en lo cierto. ;)
Además, si usas vim. Puedes ver espacios haciendo,
:set hlsearch
/ /
En el uso de Jade | cuando empiezas con solo texto
mal ->
td
{{anything}}
br
Hello
correcto ->
td
| {{anything}}
br
| Hello
Obtuve este error al usar la sintaxis! {} Y obtuve un rendimiento extra:
.row
!{marked(val)}
debiera ser:
.row !{marked(val)}
Por qué este problema ocurre incluso cuando todo tu jade parece válido se resalta en este problema de github . Citando del tema original en sí:
La advertencia es porque
!{}
Y#{}
son para la interpolación dentro del texto. es decir, debe estar en (lado) un texto (bloque) para comenzar. Deberías usar=
y!=
Para almacenar las expresiones de JavaScript.
Esto significa que !{}
Y #{}
solo deben usarse si está interpolando dentro de un bloque de texto existente. Algo así como la interpolación #{}
coffee-script aquí:
a = "Hi #{name}!"
se traduce a (en javascript)
a = "Hi " + name + "!";
Por lo tanto, en Jade también, usarás !{}
Y !{}
Dentro de un texto en ejecución (un párrafo o una cadena). Para simplemente generar una cadena desde una variable sin iniciar explícitamente un nuevo bloque de texto, usaría =
o !=
.
.row
!= marked(val)
.another-row
= marked(val)
Una alternativa sería comenzar explícitamente un nuevo bloque de texto como tal:
.row
| !{marked(val)}
.another-row
| #{marked(val)}
Tomé su código y lo copié en Notepad ++ con View Whitespace on.
La línea 28 tiene 4 espacios adicionales al final (se muestran como guiones aquí):
input(style="width:75px;height:30px;", type="submit", value="Login")----
Además, la línea 34 tiene varios espacios adicionales después de "Registrarse" también.
esto también puede ser causado por el uso de pestañas en lugar de espacios
div(attr="val")[/t]text
o por /t
caracteres en los extremos de las líneas