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
He descrito 2 soluciones alternativas para agregar fragmentos de código con el formato correcto a su sitio impulsado por Jekyll. http://demisx.github.io/jekyll/2014/01/13/improve-code-highlighting-in-jekyll.html . No dependen de complementos de terceros y son compatibles con el alojamiento gratuito de GitHub Pages.
Los bloques cercados se introdujeron con Redcarpet 2. Jekyll ahora es compatible con Redcarpet 2.
Como parte aparte, estoy usando Redcarpet con Rouge hasta que esté disponible el soporte de Kramdown .
Además, algunas personas prefieren Nanoc a Jekyll.
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:
Instale la gema redcarpet:
gem install redcarpet
Actualizar _config.yaml
markdown: redcarpet
Para referencia y más información ver:
También puede utilizar la sintaxis de triple tilde:
~~~ruby
class Base
def two
1 + 1
end
end
~~~
que es apoyado por Kramdown (Jekyll).
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