<commit_before>---
title: Utiliser RedCarpet et Rouge avec Middleman pour poster du code
date: 2013-03-11 00:47 +01:00
tags: middleman, redcarpet, rouge, markdown
authorName: <NAME>
authorUrl: https://plus.google.com/106674357559734809246
---

Pour pouvoir poster du code beau et lisible sur un blog Middleman, on va utiliser [RedCarpet](https://github.com/vmg/redcarpet) pour transformer notre Markdown en HTML puis [Rouge](https://github.com/jayferd/rouge) pour découper ce HTML en tokens en fonction du langage utilisé. On saupoudrera le tout d'un peu de CSS pour obtenir une vrai belle coloration syntaxique.
READMORE

### RedCarpet

C'est assez simple, en fait : il faut générer son HTML à partir de fichiers Markdown en utilisant [RedCarpet](https://github.com/vmg/redcarpet).

On l'ajoute donc simplement au fichier `Gemfile` :
```ruby
gem 'redcarpet'
```

Puis on va dire à Middleman de l'utiliser (avec quelques options pour reconnaitre automatiquement les blocs de code ou les liens HTTP, par exemple) :<commit_msg>Test with 2 authors on homepage<commit_after>---
title: Utiliser RedCarpet et Rouge avec Middleman pour poster du code
date: 2013-03-11 00:47 +01:00
tags: middleman, redcarpet, rouge, markdown
authorName: <NAME>
authorUrl: https://plus.google.com/111655806475665469057
---

Pour pouvoir poster du code beau et lisible sur un blog Middleman, on va utiliser [RedCarpet](https://github.com/vmg/redcarpet) pour transformer notre Markdown en HTML puis [Rouge](https://github.com/jayferd/rouge) pour découper ce HTML en tokens en fonction du langage utilisé. On saupoudrera le tout d'un peu de CSS pour obtenir une vrai belle coloration syntaxique.
READMORE

### RedCarpet

C'est assez simple, en fait : il faut générer son HTML à partir de fichiers Markdown en utilisant [RedCarpet](https://github.com/vmg/redcarpet).

On l'ajoute donc simplement au fichier `Gemfile` :
```ruby
gem 'redcarpet'
```

Puis on va dire à Middleman de l'utiliser (avec quelques options pour reconnaitre automatiquement les blocs de code ou les liens HTTP, par exemple) :
{'fraction_non_alphanumeric': 0.0851063829787234, 'fraction_numerical': 0.0362669245647969, 'mean_word_length': 4.979768786127168, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 8, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1118250', 'n_tokens_mistral': 750, 'n_tokens_neox': 676, 'n_words': 263}