Подтвердить что ты не робот

Jade - отсутствует пробел перед текстом для строки x jade файла

Я создаю веб-приложение на основе Express и каждый раз, когда кто-то посещает этот нефритовый файл, я получаю следующую ошибку:

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
4b9b3361

Ответ 1

В использовании Jade | когда начинаются только текст

Неправильно →

td
  {{anything}}
  br
  Hello

правильный →

td
  | {{anything}}
  br
  | Hello

Ответ 2

Я получил эту ошибку при использовании синтаксиса! {} и получил дополнительный возврат:

.row 
  !{marked(val)}

должен быть:

.row !{marked(val)}

Ответ 3

Почему эта проблема возникает, даже когда весь ваш нефрит кажется действительным, выделяется в этой проблема github. Цитата из самой оригинальной проблемы:

Предупреждение связано с тем, что !{} и #{} предназначены для интерполяции внутри текста. то есть вы должны быть в (стороне) текст (блок) для начала. Вы должны использовать = и != для буферизации выражений JavaScript.

Это означает, что !{} и #{} должны использоваться только при интерполяции внутри существующего текстового блока. Что-то вроде кофе- script #{} интерполяция здесь:

a = "Hi #{name}!"

переводится на (в javascript)

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

Таким образом, в Jade вы также будете использовать !{} и !{} в текущем тексте (абзац или строку). Чтобы просто выводить строку из переменной без явного запуска нового текстового блока, вы должны использовать = или !=.

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

Альтернативой было бы явно начать новый текстовый блок следующим образом:

.row 
  | !{marked(val)}

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

Ответ 4

Я взял ваш код и скопировал его в Notepad ++ с помощью View Whitespace on.

В строке 28 имеется 4 дополнительных пробела в конце (показано здесь как дефис):

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

Кроме того, строка 34 имеет несколько дополнительных пробелов после "Регистрация".

Ответ 5

это также может быть вызвано использованием вкладок вместо пробелов

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

или \t на концах строк

Ответ 6

Кроме того, у вас есть эта проблема, если у вас есть что-то вроде этого.

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

У меня был вышеупомянутый ответ, который также породил эту ошибку, поэтому мы оба технически правы.;)

Кроме того, если вы используете vim. Вы можете видеть пробелы, делая

:set hlsearch
/ /