2012-08-08 49 views
8

我有一個簡單的搜索表單,我希望使用Jade實現。Jade - 控制HTML輸出中的換行符

form 
    input(
     type="text" 
     size="16" 
     placeholder="Enter your keywords") 
    input(
     type="button" 
     value="Search") 

輸出呈現爲:

<form> 
     <input type="text" size="16" placeholder="Enter your keywords"> 
     <input type="button" value="Search"> 
</form> 

這是完美的,只是斷行引起我的按鈕和搜索按鈕之間的空間。在文本框和按鈕之間不需要空格。我需要的代碼來呈現這樣的:

<form> 
     <input type="text" size="16" placeholder="Enter your keywords"><input type="button" value="Search"> 
</form> 

但是我使用這個項目創建代碼,將需要在其HTML形式來閱讀,可以從我的項目不是簡單的刪除空白作爲一個整體。

有沒有一種方法可以按照指示輸出我的表單,同時在文檔的其餘部分保留白色間距和換行符?

回答

10

我一直在尋找同樣的事情,碰到這個傳來:http://scalate.fusesource.org/documentation/jade-syntax.html

在純文本:移除空白:>和<

我有一個<一個>標籤內部有空白的問題:

a.external(href={"http://foo.bar/" + reference.dxLink.get}) 
    |CrossRef 

導致

<a href="http://foo.bar/10.1002/rmv.439"> 
        CrossRef 
</a> 

添加<到該行的末尾:

a.external(href={"http://foo.bar/" + reference.dxLink.get})< 
    |CrossRef 

導致

<a href="http://foo.bar/10.1002/rmv.439">CrossRef</a> 
+1

這似乎適用於某些標籤,例如'blockquote'和'a',就像你在這裏的例子那樣,但是Jade v1.11.0會產生錯誤,並且在使用'input'標籤嘗試時會產生錯誤。 FWIW,上面的fusesource.org鏈接不起作用。該文檔也可在[這裏](http://scalate.github.io/scalate/documentation/jade-syntax.html#Whitespace_Removal:__code__gt___code__and__code__lt___code_)。 – matty 2015-07-13 00:06:58

2

如果這是玉爲節點JS可以force jade to remove or add whitespace with the 'pretty' paramater

var jade = require('./../') 
    , path = __dirname + '/whitespace.jade' 
    , str = require('fs').readFileSync(path, 'utf8') 
    , fn = jade.compile(str, { filename: path, pretty: true }); 

你可以把你的表格模板放在單獨的文件中(例如:myform.jade),並且在加載時將該模板設置爲false,或爲此目的創建一個幫手。

1

我也有這個問題。 locals.pretty在開發中設置爲true,因爲我想讀取呈現的html。兩個輸入之間的空間會導致樣式問題。

我目前的解決方案是使用原始HTML對於兩個輸入:

form 
    <input type="text" size="16" placeholder="Enter your keywords"><input type="button" value="Search"> 

本混合一點點沒有玉的文本,但呈現的投入沒有他們之間的額外空間。

+1

您可以使用任何瀏覽器Inspector而不是原始代碼讀取生成的HTML。 – 2014-05-14 04:53:54