syntax-highlighting markdown jekyll redcarpet

syntax highlighting - Sintaxis que resalta los bloques de código de rebaja en Jekyll(sin usar etiquetas líquidas)



syntax-highlighting markdown (9)

Solución alternativa

Markdown permite HTML, así que si no te importa agregar un poco de JS, puedes hacer esto:

## A section Here is some Ruby code. <pre> <code class="ruby"> puts "hello" </code> </pre>

Luego puede usar Highlight.js (documentación here ) para agregar resaltado basado en esa clase.

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

Parece que el resaltado de sintaxis en Jekyll se limita al uso de etiquetas y piramides líquidos, por ejemplo:

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

Pero he importado mi blog existente desde wordpress y fue escrito en markdown (usando bloques de código de 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 reducción pura en caso de que alguna vez tenga que volver a cambiar las plataformas de blogs.

Cambié mi analizador Jekyll a redcarpet con la esperanza de poder usar esta sintaxis de reducción de precios:

```bash cd ~ ```

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


Así que también me encontré con este problema y, después de golpear mi cabeza por muchos lugares, finalmente me di cuenta de que con el soporte oficial de redcarpet2 en Jekyll, esto es bastante simple. Escribe esto en tu _config.yml

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

Asegúrese de que tiene el archivo css de pygments y que está incluido. 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 obtener más información.


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

¿Qué tal a continuación? Intente agregar el archivo de abajo como su _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




Redcarpet está integrado de forma predeterminada en Jekyll y el resaltado de código funcionará como se espera.

Para blogs más antiguos de Jekyll:

  1. Instale la gema redcarpet:

    gem install redcarpet

  2. Actualizar _config.yaml

    markdown: redcarpet

Para referencia y más información ver:

Problema de Github cerrado

Base de código Jekyll actualizada


También puede utilizar la sintaxis de triple tilde:

~~~ruby class Base def two 1 + 1 end end ~~~

que es apoyado por Kramdown (Jekyll).


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


Paso 1. Instalar Redcarpet .

gem install redcarpet

Paso 2. Actualiza la configuración de compilación en tu _config.yaml esta manera.

# Build settings #markdown: kramdown markdown: redcarpet