Il semble que la mise en évidence de la syntaxe dans Jekyll se limite à l'utilisation de balises liquides et de pygments comme ceci:
{% highlight bash %}
cd ~
{% endhighlight %}
Mais j'ai importé mon blog existant de wordpress et il a été écrit en markdown (en utilisant des blocs de code de markdown) et je ne veux pas avoir à parcourir chaque publication et corriger les blocs de code. En outre, je souhaite conserver mes publications au format de démarque pure au cas où j'aurais besoin de changer de plate-forme de blogage à nouveau.
J'ai changé mon analyseur Jekyll sur redcarpet
dans l'espoir de pouvoir utiliser cette syntaxe de démarque:
```bash
cd ~
```
Mais cela ne semble pas fonctionner. Il l'enveloppe simplement dans un bloc code
normal. Des idées?
Blocs clôturés ont été introduits avec Redcarpet 2. Jekyll prend désormais en charge Redcarpet 2.
En passant, j'utilise Redcarpet avec Rouge jusqu'à ce que support Kramdown soit disponible.
De plus, certaines personnes préfèrent Nanoc à Jekyll.
Markdown autorise le HTML, donc si cela ne vous dérange pas d'ajouter un peu de JS, vous pouvez le faire:
## A section
Here is some Ruby code.
<pre>
<code class="Ruby">
puts "hello"
</code>
</pre>
Ensuite, vous pouvez utiliser Highlight.js (documentation ici ) pour ajouter une surbrillance basée sur cette classe.
Ce n'est pas une solution idéale, mais cela devrait fonctionner avec n'importe quel analyseur Markdown.
Étape 1. Installer Redcarpet .
gem install redcarpet
Étape 2. Mettez à jour les paramètres de build dans votre _config.yaml
comme ça.
# 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'ajouter le fichier ci-dessous en tant que votre _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 intégré intégré dans Jekyll par défaut et la mise en évidence du code fonctionnera comme prévu.
Pour les blogs Jekyll plus anciens:
Installez le joyau du tapis rouge:
gem install redcarpet
Mettre à jour _config.yaml
markdown: redcarpet
Pour référence et plus d'informations, voir:
J'ai donc rencontré ce problème également et après m'être cogné la tête dans de nombreux endroits, finalement réalisé avec le support officiel de redcarpet2 dans Jekyll, c'est assez simple. Écrivez ceci dans votre _config.yml
# Conversion
markdown: redcarpet
highlighter: pygments
redcarpet:
extensions: ["no_intra_emphasis", "fenced_code_blocks", "autolink", "strikethrough", "superscript"]
Assurez-vous que vous avez un fichier CSS pygments et qu'il est inclus. CETTE ÉTAPE IS IMPORTANT.
Vous pouvez lire mon article de blog http://blog.championswimmer.in/2015/10/jekyllsyntax-highlighting-in-github-favoured-markdown-codeblocks/ pour plus de détails.
Vous pouvez également utiliser la syntaxe triple-tilde:
~~~Ruby
class Base
def two
1 + 1
end
end
~~~
qui est pris en charge par Kramdown (Jekyll).
J'ai décrit 2 solutions alternatives pour ajouter des 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 reposent pas sur des plugins tiers et compatibles avec l'hébergement gratuit des pages GitHub.