2012-05-02 6 views
5

Quando faccio un errore di sintassi nella questione davanti sto ottenendo il seguente errore:jekyll con materia anteriore rotta, come trovare il file rotto?

/.../psych.rb:203:in `parse': (<unknown>): could not find expected 
':' while scanning a simple key at line 6 column 1 
(Psych::SyntaxError) 
     from /.../psych.rb:203:in `parse_stream' 
     from /.../psych.rb:151:in `parse' 
      from .... 

Sai un modo per dire quale file ha causato il problema?

So che probabilmente potrei usare DTrace come segue:

dtrace -n 'syscall::open*:entry { printf("%s %s",execname,copyinstr(arg0)); }'| grep _posts 

Ma io sto cercando qualcosa di più semplice.

+1

Quale versione di jekyll stai usando? In 0.11.0 ottengo qualcosa come 'YAML Exception reading 2012-04-29-a-new-post.md: error syntax on line 3, col -1:' se ho un cattivo YAML. –

+0

@Alan, io uso comunque la stessa versione di jekyll, ma probabilmente il problema risiede nel nuovo parser yaml di Ruby che uso 1.9.3. Grazie per il tuo aiuto. –

+2

Ho avuto questo problema, quindi mi sono reso conto che il mio file database.yml non era strettamente corretto. (Ho lasciato uno spazio dopo un ':') l'ho risolto e ho superato l'errore. –

risposta

4

sembra che il jeky non funzioni bene su Ruby 1.9.3. È stato introdotto un parser yaml più restrittivo: Psych che probabilmente ha una gerarchia di eccezioni diversa e lì non è gestito correttamente da jekyll.

3

È possibile che questo è causato da formattazione difettosa

Se la questione si presenta così:

--- 
menu: 
- text: Home 
url: /en/index.html 
- text: Overview 
url: /en/overview.html 
--- 

invece di

--- 
menu: 
- text: Home 
    url: /en/index.html 
- text: Overview 
    url: /en/overview.html 
--- 

poi il parser YAML getterà fuori.

+1

Sì nel mio caso il file yml stava caricando in environment.rb. Quindi stavo ottenendo questo errore. Risolto correggendo il file yml. – Hardik

Problemi correlati