J'ai déployé mon blog Jekyll sur un VPS. J'aimerais maintenant y ajouter un Markdown à saveur Github, en utilisant la mise en surbrillance Pygments, mais je ne sais pas quels fichiers dois-je modifier et comment.
Jusqu'à présent, le seul fichier que j'ai configuré est _config.yml
qui ressemble à ceci:
1 safe: false
2 auto: false
3 server: false
4 server_port: 4000
5 baseurl: /
6 url: http://localhost:4000
7
8 source: .
9 destination: ./_site
10 plugins: ./_plugins
11
12 future: true
13 lsi: false
14 pygments: false
15 markdown: maruku
16 permalink: date
17
18 maruku:
19 use_tex: false
20 use_divs: false
21 png_engine: blahtex
22 png_dir: images/latex
23 png_url: /images/latex
24
25 rdiscount:
26 extensions: []
27
28 kramdown:
29 auto_ids: true,
30 footnote_nr: 1
31 entity_output: as_char
32 toc_levels: 1..6
33 use_coderay: false
34
35 coderay:
36 coderay_wrap: div
37 coderay_line_numbers: inline
38 coderay_line_numbers_start: 1
39 coderay_tab_width: 4
40 coderay_bold_every: 10
41 coderay_css: style
Comment configurer correctement Jekyll pour utiliser Markdown et Pygments en surbrillance Github?
à partir de Jekyll> = 0.12.1 redcarpet2 est nativement pris en charge par Jekyll, vous pouvez donc simplement définir votre configuration sur markdown: redcarpet
et vous êtes prêt à utiliser des blocs de code GFM/clôturé sans le reste de ce mumbojumbo ...
Vous demandez explicitement un démarque à la saveur de Github, donc je suppose que vous ne cherchez pas de réponses qui créent des blocs de code avec le format liquide non-démarque:
{% highlight python %}
def yourfunction():
print "Hello World!"
{% endhighlight %}
mais serait plutôt capable d'écrire quelque chose avec des blocs de code clôturés:
```python
def yourfunction():
print "Hello World!"
```
etc. Pour cela, vous voudrez utiliser l'analyseur de démarque redcarpet .
La démarque aromatisée au Github utilise un analyseur de démarque appelé "Redcarpet" 1 . Ironiquement, bien que la démarque aromatisée Github utilise redcarpet2 , cet analyseur de démarque n'est pas pris en charge par Jekyll par défaut. Au lieu de cela, vous pouvez l'ajouter en tant que plugin en installant ce Ruby gem
gem install redcarpet
puis en ajoutant le plugin redcarpet2 Jekyll . (Installer un plugin dans Jekyll revient à placer le .rb
Ruby donné dans ce référentiel dans votre _plugins
répertoire. Peut être dans un sous-répertoire de _plugins
aussi).
Ensuite, comme expliqué dans la documentation, modifiez votre _config.yml
pour utiliser redcarpet2:
markdown: redcarpet2
redcarpet:
extensions: ["no_intra_emphasis", "fenced_code_blocks", "autolink", "strikethrough", "superscript"]
qui ajoute les extensions communes fournies par github-flaved-markdown alias redcarpet2 (Eh bien, presque. Cela ne fera pas de démarques spécifiques à github comme identifier les problèmes par numéro ou commettre par hachage, donc ils ne sont pas techniquement les mêmes).
Avoir le plugin signifie, pour le moment, vous devrez construire votre site localement et copier le _site
à github si vous hébergez votre site là-bas, car redcarpet2 n'est pas disponible sur la version Github du moteur jekyll (voir ceci problème ouvert sur Jekyll)
Remarque : Vous n'avez pas besoin de tous les éditeurs de démarques que vous avez spécifiés dans votre _config.yml
au fait. Pour un exemple de base utilisant redcarpet2, vous voudrez peut-être voir ceci config et le répertoire jekyll associé qui l'accompagne.
Les meilleures parties de Jekyll sont, comme dit ici ,
... Il prend un répertoire de modèles (représentant la forme brute d'un site Web), le fait passer par des convertisseurs Textile ou Markdown et Liquid, et crache un site Web complet et statique ...
Cela signifie que vous obtenez Markdown et les pygments en surbrillance par défaut.
Vous pouvez jeter ou utiliser le _config.yaml par défaut pour cette configuration. Avec votre configuration existante, vous souhaiterez peut-être définir les pygments sur true: pygments: true
.
Voici ce que vous faites pour
Markdown : nommez simplement votre fichier comme * .markdown, par exemple 2012-12-01-my-post.markdown
et placez-le n'importe où dans le répertoire racine. Normalement, vous le placeriez dans _posts.
Lorsque jekyll analyse ce fichier, il le passe à travers le filtre de démarque. En prime, vous pouvez enregistrer sous * .textile et il analyse en utilisant textile . Et, bien sûr, vous pouvez le garder .html afin qu'aucune analyse n'ait lieu pour le démarque.
pygments : faites-le avec votre code:
{% highlight python %}
def yourfunction():
print "Hello World!"
{% endhighlight %}
Vous obtenez également du linge de maison en faisant:
{% highlight python linenos %}
{% endhighlight %}
Edit: Et aussi, Vous devrez générer la feuille de style de syntaxe en utilisant la commande
pygmentize -S default -f html > style.css
comme mentionné ici et par @ joshuahornby10. Incluez style.css dans votre html, évidemment. Ensuite, votre code sera mis en évidence par la syntaxe avec des pygments.
Oh, et vous n'avez pas besoin de modifier les paramètres dans _config.yaml pour que cela fonctionne. Exécutez simplement votre site en utilisant jekyll --server --auto
et voyez si ça a l'air bien. Remarque: lors de la modification du fichier _config, vous devrez arrêter l'exécution automatique et réexécuter jekyll pour que les modifications aient lieu.
Dans le changement de fichier de configuration
pygments: false
à
pygments: true
Cela signifie que lorsque vous écrivez des sections de code dans le fichier de démarque (grande ressource http://daringfireball.net/projects/markdown/ ), ils utiliseront le style des pygments. Assurez-vous que vous avez installé, c'est une erreur que j'ai commise. De plus, une fois installé, vous devrez créer un fichier css pour que le style ait lieu (cela semble évident, mais j'ai fait cette erreur)
pygmentize -S default -f html > stylesheets/pygments.css
Vous pouvez changer par défaut n'importe lequel des thèmes trouvés ici:
http://pygments.org/demo/35195/
En ce qui concerne le markdown, j'ai lu que pour que les pygments fonctionnent, vous devez marquer pour être maruku que vous avez déjà configuré dans le fichier de configuration.
J'espère que cela aide, j'ai trouvé que Jekyll est une excellente plateforme de blogs mais très sous-documentée.