私は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
ヒスイで使用|テキストのみで開始する場合
間違っている->
td
{{anything}}
br
Hello
正解->
td
| {{anything}}
br
| Hello
!{}構文を使用するとこのエラーが発生し、余分なリターンがありました。
.row
!{marked(val)}
する必要があります:
.row !{marked(val)}
すべてのヒスイ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)}
コードを取得し、View WhitespaceをオンにしてNotepad ++にコピーしました。
行28には、末尾に4つの余分なスペースがあります(ここではダッシュで示しています)。
input(style="width:75px;height:30px;", type="submit", value="Login")----
また、34行目にも「登録」の後にいくつかの余分なスペースがあります。
これは、スペースの代わりにタブを使用することによっても引き起こされる可能性があります
div(attr="val")[\t]text
または\t
行末の文字
または、このようなものがある場合は、この問題が発生する可能性があります。
\t \t p Foo
\t \t p \t Foo
上記の答えもこのエラーを生成しましたので、技術的には両方とも正しいです。 ;)
また、vimを使用する場合。次のようにしてスペースを表示できます。
:set hlsearch
/ /