2011-07-20 17 views
26

quiero usar pygments con jekyllluces con Jekyll y Pygments no funciona

Tengo el siguiente código:

{% highlight java %} 
NullPointerException at org.springframework.core.GenericTypeResolver.getTypeVariableMap 
{% endhighlight %} 

Cuando genero mi sitio con jekyll --pygments, el resultado es html:

<div> 
    <pre><code class="java">NullPointerException at org.springframework.core.GenericTypeResolver.getTypeVariableMap</code> 
    </pre> 
</div> 

En esta salida html no son los esperados o <span class="n"><span class="s2"> etiquetas, y el código no es resaltado.

¿Estoy haciendo algo mal?

+1

Puede ser una pregunta tonta, pero en lugar de probar con un mensaje de excepción, ¿qué ocurre si prueba algún código de Java real? – Kev

+0

sí, probé con el código Java y también con el código ruby ​​y obtuve el mismo comportamiento – denisjacquemin

+0

¿Tiene los pigmentos instalados correctamente? – kikito

Respuesta

35

Debe tener el css generado para resaltar.

$ pygmentize -S default -f html > css/pygments/default.css 
+18

+10 - esto realmente debería ser más prominente (¿existente?) En los documentos de Jekyll –

+4

Tenga en cuenta que también tendrá que indicarle a su (s) plantilla (s) de Jekyll que recoja el nuevo archivo CSS; en mi caso, editando _layouts /defecto.html (Jekyll bootstrap). – JohnJ

+5

Acabo de agregar algunas notas a la [wiki de instalación de jekyll] (https://github.com/mojombo/jekyll/wiki/Install) acerca de cómo usar realmente Pygments después de tenerlo instalado. Con suerte, aclarará las cosas. –

2

Una alternativa a la instalación de Pygments por separado y la generación de la CSS, uno puede tirar directamente el CSS de la documentación Jekyllrb here

El enlace directo extraído de la documentación he mencionado anteriormente es aquí: https://github.com/mojombo/tpw/blob/master/css/syntax.css

(Es la versión oficial de los autores en GitHub)

El archivo se llama syntax.css, colóquelo en su carpeta css y cree un enlace relativo al Hoja de estilo en el encabezado de cualquiera/todos los archivos para habilitar el resaltado de sintaxis.

Esto se puede hacer como tal, por ejemplo, la coloqué en head.html o css.html donde tengo todos los enlaces relativos, es en la carpeta _include por lo que se incluye en todos los diseños que lo utiliza:

<link rel="stylesheet" href="/css/syntax.css">

también podría ser necesario añadir esto a su _config.yml:

highlighter: pygments

probado para trabajar en Jekyll y también en GitHub Pages (que es especial, ya que solo permite un conjunto muy limitado de complementos)

Una pregunta relacionada con SO que también me ayudó a llegar a la solución correcta es here. También me desconcertó por qué mi código todavía no estaba resaltado en una plantilla sobre la que estoy trabajando incluso después de agregar la línea en _config.yml. La razón por la que solo funciona en el sitio Jekyll autogenerado al hacer jekyll new test-site es porque la plantilla generada ya incluye el SASS (.scss) para resaltar la sintaxis (en el directorio _sass) que ayuda a generarlo todo en uno main.css.

Cuestiones relacionadas