2011-11-22 10 views
6

Ogni volta che scrivo il mio codice HTML in Jade, sto ottenendo spazi bianchi extra aggiunti dopo il valore di ogni elemento.Altri spazi in valori HTML resi con Jade

Per esempio, avrò una linea come questa nel mio modello di Giada:

label(for="keyword") Keyword 

E quando è reso, la sorgente sarà simile a questa:

<label for="keyword_1">Keyword 
      </label> 

imbattuto in alcuni problemi con quell'eccesso di spazio bianco con i miei CSS. Inoltre, non sembra così ordinato :)

Qualcuno sa come posso impedire che venga inserito?

+0

Assicurati di non avere spazi vuoti dopo "Parola chiave" in Jade, forse questo potrebbe causare il problema – alessioalex

+0

Grazie, ho controllato per assicurarmi che non ne avessi e ho ancora il problema . – Jon

risposta

10

Controllare l'aggiornamento in fondo

presumo che si sta utilizzando express - controllare le impostazioni dell'applicazione.

app.set('view options', { pretty: false }) 

Se hai jade il rendering in modalità pretty (pretty: true) allora sarà organizzare la vostra sorgente generato (tag) con rientro nidificato. Girare una bella stampa dovrebbe risolvere il tuo problema (anche se assicurati di non avere lo spazio finale, come sottolineato da @alessioalex).

Se si dispone di un motivo che richiede di produrre una formattazione carina (specifiche client, nel mio caso), è possibile provare altre cose. Ho riscontrato un problema simile con il tag textarea; frustrante perché lo spazio bianco è effettivamente iniettato nel contenuto della forma. Il modo in cui ho ottenuto intorno a questo è stato quello di incorporare un html letterale con il tag di chiusura:

<textarea name="someField"></textarea> 

Il docs può dare qualche dettaglio in più (cercare html in questo caso). È aperto issue #341 su github che suggerisce un approccio come this one for scalate, ma attualmente non funziona in jade (a partire dalla versione 0.19.0).

HTH

Aggiornamento

Ok - sottile e fresco ... c'è un modo migliore per mantenere l'uscita sexy da pretty: true ed evitare spazi all'interno di un tag (il mio textarea esempio) .. . ho appena provato aggiungendo un . alla fine del tag (vedi codice) ed è solo lavorato ™ :-)

form(name='frmname', method='POST') 
    textarea(name='someField'). 

Renders:

<form name="frmname" method="POST"> 
    <textarea name="someField"></textarea> 
</form> 

Bellezza!

Perché funziona? Perché jade considera il suffisso . sul tag come un indicatore che il tag conterrà un blocco di testo (solo), e quindi non viene fornito alcun blocco di testo, quindi viene impostato automaticamente su '', una stringa vuota.

+0

Ehi, grazie per il commento! Hai ragione, disattivare la modalità carina sarebbe sicuramente d'aiuto, ma ho bisogno di tenerlo abilitato nel mio caso. Trucco interessante con il '.', ma sto tenendo gli occhi aperti per qualcosa che può davvero scalare. Continuerò sicuramente a esaminarlo e pubblicare qualsiasi cosa trovassi qui. – Jon

+0

@Jon, spero che l'approccio di stile scalare verrà adottato ufficialmente poiché sembra un'estensione logica del sistema attuale, vedremo. TJ è impegnato su così tanti progetti proprio ora ... vedremo! –

+1

+1 il trucco '.' funziona perfettamente per me – greenimpala