2011-12-27 19 views
40

Parece que el resaltado de sintaxis en Jekyll se limita a la utilización de etiquetas de líquido y Pygments así:sintaxis destacando bloques de código de reducción del precio en Jekyll (sin el uso de etiquetas de líquido)

{% highlight bash %} 
cd ~ 
{% endhighlight %} 

Pero he importado mi blog existente de wordpress y fue escrito en markdown (usando bloques de código markdown) y no quiero tener que revisar cada publicación y corregir los bloques de código. Además, quiero mantener mis publicaciones en formato de descuento puro en caso de que alguna vez tenga que cambiar de plataforma de blogs nuevamente.

me cambié mi analizador Jekyll a redcarpet con la esperanza de que podría utilizar esta sintaxis de rebajas:

```bash 
cd ~ 
``` 

Pero no parece funcionar. Simplemente lo envuelve en un bloque code normal. ¿Algunas ideas?

+4

acabo de notar este billete abierto: https://github.com/mojombo/jekyll/issues/427 – markquezada

+0

documentación oficial: http://jekyllrb.com/docs/posts/#highlighting-code-snippets –

Respuesta

8

Terminé cambiando a kramdown para analizar el marcado que viene con coderay para resaltar la sintaxis. Esto tiene el beneficio de ser una solución de rubí puro que funciona en heroku.

+2

hace esto trabajar con gh-páginas de github? – cboettig

+5

Gracias. Parece que kramdown no reconoce '' 'r, aunque reconoce bloques cercados con tildes, ~~~. – cboettig

+0

@mirthlab parece estar funcionando muy bien para matemáticas y código, gracias –

20

Cercada bloques were introduced con Redcarpet 2. Jekyll now supports Redcarpet 2.

Dicho sea de paso que estoy usando Redcarpet con Rouge hasta Kramdown support está disponible. También hay personas que prefieren Nanoc a Jekyll.

+1

He estado usando Nanoc últimamente y me gusta mucho. –

15

Solución alternativa

Markdown permite HTML, por lo que si no te importa la adición de un poco de JS, usted puede hacer esto:

## A section 

Here is some Ruby code. 

<pre> 
    <code class="ruby"> 
    puts "hello" 
    </code> 
</pre> 

Posteriormente, se podría utilizar Highlight.js (documentación here) para añadir destacando en función de esa clase.

No es una solución ideal, pero debería funcionar con cualquier analizador de Markdown.

1

En los últimos bloques de código de soporte de jekyll, pero si usa una versión anterior, debe hackear.

¿Qué le parece a continuación? Trate de añadir a continuación es un archivo como _plugin/triple-backtick.rb

module Jekyll 
    class MarkdownConverter 
    alias :old_convert :convert 
    def convert(content) 
     content.gsub!(/(?:^|\n)```(\w*)\n(.*\n)```\n/m) do |text| 
     cls = $1.empty? ? "prettyprint" : "prettyprint lang-#{$1}" 
     "<pre class=\"#{cls}\"><code>#{$2}</code></pre>" 
     end 
     old_convert(content) 
    end 
    end 
end 
3

Paso 1. Instalar Redcarpet.

gem install redcarpet 

Paso 2. Actualizar los valores de construcción en su _config.yaml como este.

# Build settings 
#markdown: kramdown 
markdown: redcarpet 
1

Redcarpet está integrado integrado en Jekyll de manera predeterminada y el resaltado del código funcionará como se esperaba.

Para mayor edad blogs Jekyll:

  1. Instalar joya redcarpet:

    gem install redcarpet

  2. actualización _config.yaml

    markdown: redcarpet 
    

Para referenc ey más información ver:

Closed Github Issue

Updated Jekyll Codebase

0

Entonces me encontré con este problema también y después de golpearse la cabeza en torno a una gran cantidad de lugares finalmente se dio cuenta con apoyo oficial redcarpet2 en Jekyll esto es bastante simple . Escribe esto en su _config.yml

# Conversion 
markdown: redcarpet 
highlighter: pygments 
redcarpet: 
    extensions: ["no_intra_emphasis", "fenced_code_blocks", "autolink", "strikethrough", "superscript"] 

Asegúrese de que tiene Pygments archivo css y se incluye. ESTE PASO ES IMPORTANTE.

Puede leer la publicación de mi blog http://blog.championswimmer.in/2015/10/jekyllsyntax-highlighting-in-github-favoured-markdown-codeblocks/ para más detalles.

+2

el enlace a la publicación del blog está roto – sieste

Cuestiones relacionadas