2012-05-02 17 views
5

Cuando hago un error de sintaxis en el asunto delante que estoy recibiendo el siguiente error:jekyll con frente roto, ¿cómo encontrar el archivo roto?

/.../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 .... 

¿Conoce una forma de saber qué archivo causó el problema?

Sé que probablemente podría utilizar DTrace de la siguiente manera:

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

Pero yo estoy buscando algo más sencillo.

+1

¿Qué versión de jekyll estás usando? En 0.11.0 obtengo algo así como 'Excepción de YAML leyendo 2012-04-29-a-new-post.md: error de sintaxis en la línea 3, col -1:' si tengo mala YAML. –

+0

@ Alan, yo uso la misma versión de jekyll sin embargo, pero probablemente el problema radica en el nuevo analizador de yaml de ruby ​​que uso 1.9.3. Gracias por ayudar. –

+2

Tuve este problema, entonces me di cuenta de que mi archivo database.yml no era estrictamente correcto. (Dejé un espacio después de un ':') Lo arreglé y supere ese error. –

Respuesta

4

ve que el jekyll no funciona bien en ruby ​​1.9.3. Se introdujo un analizador de yaml más restrictivo: Psych, que probablemente tiene una jerarquía de excepciones diferente, y allí no está manejado adecuadamente por jekyll.

3

Es posible que esto es causado por el formato defectuosa

Si su texto preliminar se ve así:

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

en lugar de

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

entonces el analizador YAML arrojará fuera.

+1

Sí, en mi caso, el archivo yml se estaba cargando en environment.rb. Por lo tanto, estaba recibiendo este error. Resuelto al corregir el archivo yml. – Hardik