2013-08-20 9 views
7

Quindi, per il mio sito Express, sto usando jade. Così ho deciso di provare a modificare il mio file di layout in modo da poter iniziare a progettare il mio sito. Ho modificato il codice del layout originale (che ha lavorato), ma ho cominciato a ricevere errori di indentazione in qualsiasi file di layout che si estende in questo modo:Errori di rientranza di giada

500 Error: /home/kevin/Blue/views/layout.jade:6 4| p Hello World Invalid indentation, you can use tabs or spaces but not both 
4| p Hello World 
Invalid indentation, you can use tabs or spaces but not both 
at Object.Lexer.indent (/home/kevin/Blue/node_modules/jade/lib/lexer.js:679:15) 
at Object.Lexer.next (/home/kevin/Blue/node_modules/jade/lib/lexer.js:777:15) 
at Object.Lexer.lookahead (/home/kevin/Blue/node_modules/jade/lib/lexer.js:107:46) 
at Object.Parser.lookahead (/home/kevin/Blue/node_modules/jade/lib/parser.js:115:23) 
at Object.Parser.peek (/home/kevin/Blue/node_modules/jade/lib/parser.js:92:17) 
at Object.Parser.tag (/home/kevin/Blue/node_modules/jade/lib/parser.js:640:22) 
at Object.Parser.parseTag (/home/kevin/Blue/node_modules/jade/lib/parser.js:624:17) 
at Object.Parser.parseExpr (/home/kevin/Blue/node_modules/jade/lib/parser.js:198:21) 
at Object.Parser.block (/home/kevin/Blue/node_modules/jade/lib/parser.js:592:25) 
at Object.Parser.tag (/home/kevin/Blue/node_modules/jade/lib/parser.js:721:26) 

Quindi il codice che ho è questo:

index.jade

extends layout 

block content 
    p Hello World 

e

doctype 5 
html 
    head 
    title= title 
    link(rel='stylesheet', href='/stylesheets/style.css') 

    body 
     div#header 
      p This is the header 
     block content 

Tenete a mente che non ho nulla incantesimo in modo non corretto, e so come collegare insieme i file usando l'opzione extends bene. In effetti, il codice ha funzionato perfettamente fino a quando ho iniziato a scherzare con il file di layout. Tutto questo è principalmente un problema di indention. Ho provato a capire se è il mio editor di testo a causare il problema, e non sono riuscito a capire se lo è, poiché non riesco a far funzionare di nuovo il codice.

Sto usando l'editor di testo sublime 2 per scrivere questo codice jade. Se l'editor di testo non rientra correttamente, qualcuno può aiutarmi a imparare come risolverlo?

+0

In Impostazioni testo Sublime, dillo a sostituire le schede con gli spazi e poi sempre di rientro con gli spazi (con l'impostazione, si scriverà spazi quando scheda colpire). Inoltre, perché il corpo è dentro la testa? : P – Eldamir

risposta

48

Nell'angolo in basso a destra di Testo sublime, dovrebbe essere presente un'etichetta che dice Spaces: N o Tab Size: N dove N è un numero. Selezionare questa e vedrete le opzioni per convertire l'intero indentazione del documento da utilizzare sia le schede o gli spazi:

  • Convert Indentation to Spaces
  • Convert Indentation to Tabs
+2

Mi ci è voluto un po 'per capire come effettivamente utilizzare questo, ma ha funzionato. Devo dire che questo dovrebbe aiutarmi seriamente nel prossimo futuro. Grazie. – Kivo360

+1

wow, fantastico! grazie amico – Denis

+0

Nel caso in cui aiuti qualcuno, c'è un'estensione utile per l'editor di Bracket qui per lo stesso scopo https://github.com/davidderaedt/tabtospace-extension –

0

per modulo di modifica sul server.js file di impostare la variabile come questo

var applications = row; 
res.render("edit", { applications : applications[0] }); 

per il file edit.jade:

block content 
table 
    thead 
     tr 
     th First Name 
     th Last Name 
    tbody 
     - each item in applications 
     tr 
      td= item.username 
      td= item.email