Syntaxe mettant en évidence les blocs de code de démarquage dans Jekyll (sans utiliser de balises liquides)

Il semble que la mise en évidence de la syntaxe dans Jekyll se limite à l’utilisation de tags liquides et de pygments comme ceux-ci:

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

Mais j’ai importé mon blog existant à partir de wordpress et il a été écrit en markdown (en utilisant des blocs de code markdown) et je ne veux pas avoir à parcourir chaque article et corriger les blocs de code. De plus, je souhaite conserver mes messages au format markdown au cas où je devrais changer de plate-forme de blog.

J’ai changé mon parsingur Jekyll en redcarpet avec l’espoir que je pourrais utiliser cette syntaxe de démarquage:

 ```bash cd ~ ``` 

Mais cela ne semble pas fonctionner. Il l’enveloppe simplement dans un bloc de code normal. Des idées?

Les blocs clôturés ont été introduits avec Redcarpet 2. Jekyll supporte maintenant Redcarpet 2.

En passant, j’utilise Redcarpet avec Rouge jusqu’à ce que le support Kramdown soit disponible.

De plus, certaines personnes préfèrent Nanoc à Jekyll.

Solution alternative

Markdown permet le HTML, donc si cela ne vous dérange pas d’append un peu de JS, vous pouvez le faire:

 ## A section Here is some Ruby code. 
  puts "hello"  

Ensuite, vous pouvez utiliser Highlight.js (documentation ici ) pour append une mise en évidence basée sur cette classe.

Ce n’est pas une solution idéale, mais cela devrait fonctionner avec n’importe quel parsingur de Markdown.

J’ai fini par passer à kramdown pour parsingr le markdown qui vient avec coderay pour la coloration syntaxique. Cela a l’avantage d’être une solution de rbuy pur qui fonctionne sur les heroku.

Étape 1. Installez Redcarpet .

 gem install redcarpet 

Étape 2. Mettez à jour les parameters de construction dans votre _config.yaml comme ceci.

 # Build settings #markdown: kramdown markdown: redcarpet 

Dans les derniers blocs de code de support jekyll, mais si vous utilisez une version plus ancienne, vous devez pirater.

Que diriez-vous ci-dessous? Essayez d’append le fichier ci-dessous en tant que _plugin/sortingple-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}" "
#{$2}

" end old_convert(content) end end end

Redcarpet est intégré par défaut à Jekyll et la mise en évidence du code fonctionnera comme prévu.

Pour les blogs plus anciens de Jekyll:

  1. Installez le bijou redcarpet:

    gem install redcarpet

  2. Mettre à jour _config.yaml

     markdown: redcarpet 

Pour référence et plus d’infos, voir:

Problème de github fermé

Mise à jour de la base de code Jekyll

J’ai décrit 2 solutions alternatives à l’ajout d’extraits de code correctement formatés à votre site piloté par Jekyll. http://demisx.github.io/jekyll/2014/01/13/improve-code-highlighting-in-jekyll.html . Ils ne s’appuient pas sur des plug-ins tiers et sont compatibles avec l’hébergement de pages GitHub gratuites.

Donc, j’ai également rencontré ce problème et après m’être cogné la tête autour de beaucoup d’endroits finalement réalisés avec le support officiel de redcarpet2 dans Jekyll, c’est assez simple. Ecrivez ceci dans votre _config.yml

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

Assurez-vous que vous avez le fichier css de pygments et qu’il est inclus. CETTE ÉTAPE EST IMPORTANTE.

Pour plus de détails, vous pouvez lire l’article de mon blog http://blog.championswimmer.in/2015/10/jekyllsyntax-highlighting-in-github-favoured-markdown-codeblocks .

Vous pouvez également utiliser la syntaxe sortingple-tilde:

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

qui est soutenu par Kramdown (Jekyll).