玉 - 在玉文件的行x的文本之前缺少空间

时间:2014-03-04 20:03:00

标签: pug

我正在制作基于Express的Web应用程序,每当有人访问此jade文件时,我都会收到以下错误:

Warning: missing space before text for line 28 of jade file "C:\x\app\view
s\login.jade"

它也会为它发生的每一行吐出几次。

我看了看这些线条,我无法弄清楚它在抱怨什么。

我的玉文件如下:

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

6 个答案:

答案 0 :(得分:41)

在玉器中使用|什么时候开始只有文字

错误 - >

td
  {{anything}}
  br
  Hello

正确 - >

td
  | {{anything}}
  br
  | Hello

答案 1 :(得分:24)

使用!{}语法时出现此错误,并有额外的回复:

.row 
  !{marked(val)}

应该是:

.row !{marked(val)}

答案 2 :(得分:9)

为什么会出现此问题,即使您的所有jade 似乎有效,也会在此github issue中突出显示。 引用原始问题本身:

  

警告是因为!{}#{}用于文本内插。即你必须在(侧面)文本(块)开始。您应该使用=!=来缓冲JavaScript表达式。

这意味着只有在现有文本块中进行插值时才会使用!{}#{}。像咖啡脚本#{}插值这样的东西:

a = "Hi #{name}!"

转换为(在javascript中)

a = "Hi " + name + "!";

因此,在Jade中,您也会在正在运行的文本(段落或字符串)中使用!{}!{}。要仅从变量输出字符串而不显式启动新的文本块,您可以使用=!=

.row
  != marked(val)
.another-row
  = marked(val)

另一种方法是显式地启动一个新的文本块,如下所示:

.row 
  | !{marked(val)}

.another-row 
  | #{marked(val)}

答案 3 :(得分:3)

我把你的代码复制到Notepad ++中并使用View Whitespace。

第28行末尾有4个额外的空格(在这里显示为破折号):

input(style="width:75px;height:30px;", type="submit", value="Login")----

另外,第34行在" Register"之后有几个额外的空格。同样。

答案 4 :(得分:1)

这也可能是因为使用制表符而不是空格

div(attr="val")[\t]text

或行尾<{1}}个字符

答案 5 :(得分:0)

如果你有这样的话,你可以解决这个问题..

\t \t p    Foo
\t \t p \t Foo

我有上面的回答也会产生这个错误,所以我们在技术上都是正确的。 ;)

另外,如果你使用vim。你可以通过这样做来看空间,

:set hlsearch
/ /