web-dev-qa-db-ja.com

ヒスイ-ヒスイファイルの行xのテキストの前にスペースがありません

私は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
35
novs12

ヒスイで使用|テキストのみで開始する場合

間違っている->

td
  {{anything}}
  br
  Hello

正解->

td
  | {{anything}}
  br
  | Hello
41
Jesus

!{}構文を使用するとこのエラーが発生し、余分なリターンがありました。

.row 
  !{marked(val)}

する必要があります:

.row !{marked(val)}
24

すべてのヒスイseems有効がこの github issue で強調表示されている場合でも、この問題が発生する理由。元の問題自体から引用:

警告は、!{}#{}がテキスト内の補間に使用されるためです。つまり、in(side)a text(block)でなければなりません。 JavaScript式をバッファするには、=!=を使用する必要があります。

つまり、!{}#{}は、既存のテキストブロック内で補間する場合にのみ使用されます。ここでコーヒースクリプトの#{}補間のようなもの:

a = "Hi #{name}!"

に変換します(javascriptで)

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

したがって、Jadeでも、実行中のテキスト(段落または文字列)内で!{}および!{}を使用します。新しいテキストブロックを明示的に開始せずに変数から文字列を出力するには、=または!=を使用します。

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

別の方法は、explicitlyのように新しいテキストブロックを開始することです。

.row 
  | !{marked(val)}

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

コードを取得し、View WhitespaceをオンにしてNotepad ++にコピーしました。

行28には、末尾に4つの余分なスペースがあります(ここではダッシュで示しています)。

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

また、34行目にも「登録」の後にいくつかの余分なスペースがあります。

3
Wayne Pincence

これは、スペースの代わりにタブを使用することによっても引き起こされる可能性があります

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

または\t行末の文字

1
jascha

または、このようなものがある場合は、この問題が発生する可能性があります。

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

上記の答えもこのエラーを生成しましたので、技術的には両方とも正しいです。 ;)

また、vimを使用する場合。次のようにしてスペースを表示できます。

:set hlsearch
/ /
0
Evan Carroll