31 votes

Markdown et pygments aromatisés au Github dans Jekyll

J'ai déployé mon blog Jekyll sur un VPS. Je voudrais maintenant y ajouter un Markdown au goût de 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?

48voto

cboettig Points 2483

Edit: plus Facile maintenant

comme Jekyll >= 0.12.1 redcarpet2 est pris en charge nativement par Jekyll, de sorte que vous pouvez simplement mettre votre config pour markdown: redcarpet et vous êtes bon pour aller avec GFM / clôturé blocs de code sans le reste de cette mumbojumbo...

Réponse originale à cette question

Vous demandez explicitement pour Github à saveur de markdown, alors je suppose que vous n'êtes pas à la recherche de réponses que de créer des blocs de code avec la non-markdown sous forme liquide:

{% highlight python %}
def yourfunction():
     print "Hello World!"
{% endhighlight %}

mais plutôt de pouvoir écrire quelque chose avec terrain clos de blocs de code:

```python
def yourfunction():
     print "Hello World!"
```

etc. Pour cela, vous devrez utiliser le redcarpet démarque de l'analyseur.

Github à saveur de markdown un abattement de l'analyseur appelé "Redcarpet" 1. Ironiquement, bien que Github aromatisé markdown redcarpet2, ce démarque de l'analyseur n'est pas pris en charge par Jekyll par défaut. Au lieu de cela, vous pouvez ajouter un plugin à installer que ruby gem

gem install redcarpet

et puis en y ajoutant les redcarpet2 Jekyll plugin. (L'installation d'un plugin dans Jekyll montants à placer l' .rb ruby script 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, l'édition de votre _config.yml d'utilisation redcarpet2:

markdown: redcarpet2
redcarpet:
  extensions: ["no_intra_emphasis", "fenced_code_blocks", "autolink", "strikethrough", "superscript"]

ce qui ajoute de la commune extensions fournies par github-saveur-markdown aka redcarpet2 (enfin, presque. Ce n'est pas cela github spécifiques démarque des choses comme identifier les problèmes par le nombre, ou s'engage par hachage, de sorte qu'ils ne sont pas techniquement le même).

Avoir le plugin signifie, pour le moment, vous aurez à construire votre site en local et la copie de l' _site de github si vous hébergez votre site, comme redcarpet2 n'est pas disponible sur le Github de la version de la jekyll moteur (voir à ce sujet ouvert sur Jekyll)

Remarque: Vous n'avez pas besoin de toutes les démarques éditeurs de texte que vous avez spécifié dans votre _config.yml par la route. Pour un exemple de base à l'aide de redcarpet2, vous pouvez voir cette config et les associés jekyll répertoire qui va avec.

11voto

SiddharthaRT Points 417

Les meilleures parties de Jekyll sont, comme l'a dit ici,

...Il faut un modèle de répertoire (représentant la forme brute d'un site web), l'exécute par le biais de Textile ou de Démarques et Liquide convertisseurs, et crache un complet, site web statique...

Cela signifie, que vous obtenez de Démarques et pygments surbrillance par défaut.

Vous pouvez jeter ou utilisez la valeur par défaut _config.yaml pour cette installation. Avec votre configuration, vous pouvez modifier pygments: true.

Voici ce que vous faites pour

  • Markdown: juste le nom de votre fichier *.markdown, par exemple 2012-12-01-my-post.markdown et le placer n'importe où à l'intérieur du répertoire racine. Normalement, vous devez le placer dans _posts.

    Lorsque jekyll analyse ce fichier, il va passer au travers de markdown filtre. Comme un bonus supplémentaire, vous obtenez de l'enregistrer sous *.textile et de l'analyse à l'aide de textile. Et, bien sûr, vous pouvez la garder .html donc pas l'analyse prend place pour markdown.

  • pygments: il suffit de le faire avec votre code:

    {% highlight python %}
    def yourfunction():
         print "Hello World!"
    {% endhighlight %}
    

    Vous obtenez également des numéros de lignes en faisant:

    {% highlight python linenos %}   
    {% endgihlight %}
    

Edit: Et aussi, Vous aurez besoin de générer de la syntaxe de la feuille de style à l'aide de la commande

pygmentize -S default -f html > style.css

comme mentionné ici, et par @joshuahornby10. De modèle.css dans le html, évidemment. Ensuite, votre code sera syntaxe en surbrillance avec pygments.

Oh, et vous n'avez pas besoin de changer les paramètres de _config.yaml pour que cela fonctionne. Il suffit d'exécuter votre site à l'aide d' jekyll --server --auto et voir s'il est à la recherche de bonnes. Note de côté, lors de l'édition du fichier _config vous devez arrêter l'exécution automatique et ré exécuter jekyll pour tout changement de lieu.

4voto

joshuahornby10 Points 1089

Dans le fichier de configuration de changement

 pygments:    false 

pour

 pygments:    true

Cela signifie lorsque vous écrivez des articles du code dans le fichier markdown (grande ressource http://daringfireball.net/projects/markdown/) ils vont utiliser le pygments style. Assurez-vous que vous avez installé, c'est une erreur que j'ai faite. Aussi une fois installé, vous aurez besoin de créer un fichier css pour le style de lieu (cela paraît évident, mais j'ai fait cette erreur)

 pygmentize -S default -f html > stylesheets/pygments.css

Vous pouvez modifier la valeur par défaut pour chacun des thèmes trouvés ici:

http://pygments.org/demo/35195/

En ce qui concerne markdown j'ai lu que pour obtenir pygments de travail vous avez besoin de markdown pour être maruku que vous avez déjà mis en place dans le fichier de configuration.

Espérons que cela aide, j'ai trouvé Jekyll est un brillant plate-forme de blogs, mais très peu documenté.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X