# Blocs de code

Vous pouvez ajouter du code à vos pages GitBook à l’aide de blocs de code.

Lorsque vous ajoutez un bloc de code, vous pouvez choisir de [définir la syntaxe](#set-syntax...), [afficher les numéros de ligne](#with-line-numbers), [afficher une légende](#with-caption) et [retourner les lignes](#wrap-code). Il est également facile de [copier le contenu d’un bloc de code dans le presse-papiers](#copying-the-code), afin que vous puissiez l’utiliser ailleurs

Un bloc de code peut être utile pour :

* Partager des configurations
* Ajouter des extraits de code
* Partager des fichiers de code
* Montrer des exemples d’utilisation d’outils en ligne de commande
* Montrer comment appeler des points de terminaison d’API
* Et bien plus encore !

### Exemple d’un bloc de code

{% code title="index.js" overflow="wrap" lineNumbers="true" %}

```javascript
‌import * as React from 'react';
import ReactDOM from 'react-dom';
import App from './App';

ReactDOM.render(<App />, window.document.getElementById('root'));
```

{% endcode %}

Vous pouvez également combiner des blocs de code avec un [bloc d’onglets](https://gitbook-open-v2-preview.gitbook.workers.dev/url/gitbook.com/docs/documentation/fr/creating-content/blocks/tabs) pour proposer le même exemple de code dans plusieurs langages différents :

{% tabs %}
{% tab title="JavaScript" %}

```javascript
let greeting = function (name) {
  console.log(`Hello, ${name}!`);
};
greeting("Anna");
```

{% endtab %}

{% tab title="Ruby" %}

```ruby
greeting = lambda {|name| puts "Hello, #{name}!"}
greeting.("Anna")
```

{% endtab %}

{% tab title="Elixir" %}

```elixir
greeting = fn name -> IO.puts("Hello, #{name}!") end
greeting.("Anna")
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
Vous pouvez rendre les blocs de code [occupent toute la largeur de votre fenêtre](https://gitbook-open-v2-preview.gitbook.workers.dev/url/gitbook.com/docs/documentation/fr/creating-content/blocks/..#full-width-blocks) en cliquant sur **menu Options** <picture><source srcset="broken-reference" media="(prefers-color-scheme: dark)"><img src="https://3903131528-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkEGS7hzeqa35sMXQZ4X%2Fuploads%2FaS1QvPIBVYwhpFTGcPBN%2Foptions-menu.svg?alt=media&#x26;token=3ee40bbf-f4fb-41fa-aa30-306b559cbe88" alt="The Options menu icon in GitBook"></picture> à côté du bloc et en choisissant **Pleine largeur**.
{% endhint %}

### Options du bloc de code <a href="#options" id="options"></a>

Lorsque vous cliquez sur le **menu Options** <picture><source srcset="broken-reference" media="(prefers-color-scheme: dark)"><img src="https://3903131528-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkEGS7hzeqa35sMXQZ4X%2Fuploads%2FaS1QvPIBVYwhpFTGcPBN%2Foptions-menu.svg?alt=media&#x26;token=3ee40bbf-f4fb-41fa-aa30-306b559cbe88" alt="The Options menu icon in GitBook"></picture> à côté du bloc de code, ou sur le **menu d’actions** <picture><source srcset="broken-reference" media="(prefers-color-scheme: dark)"><img src="https://3903131528-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkEGS7hzeqa35sMXQZ4X%2Fuploads%2F89MTSo5XRpPMVr1T0rxS%2Factions.svg?alt=media&#x26;token=2b5d001e-560a-4f29-8d22-de8163725ca1" alt="The Actions menu icon in GitBook"></picture> dans le bloc lui-même, vous verrez un certain nombre d’options que vous pouvez définir.

#### Définir la syntaxe… <a href="#set-syntax" id="set-syntax"></a>

Vous pouvez définir la syntaxe de votre bloc de code dans n’importe quelle langue prise en charge. Cela activera également la coloration syntaxique dans cette langue.

{% hint style="info" %}
Nous utilisons [Prism](https://github.com/PrismJS/prism) pour la coloration syntaxique. Vous pouvez utiliser [Test Drive Prism](https://prismjs.com/test.html#language=markup) pour vérifier les langages pris en charge par Prism. Si vous remarquez une différence entre GitBook et Prism, il est possible que nous ayons une ou deux versions de retard. Nous rattraperons vite notre retard !
{% endhint %}

{% code title="filename.txt" %}

```
// Some code
```

{% endcode %}

#### Avec numéros de ligne <a href="#with-line-numbers" id="with-line-numbers"></a>

Cela activera ou désactivera les numéros de ligne pour votre code.

L’affichage des numéros de ligne est utile lorsque le code représente le contenu d’un fichier dans son ensemble, ou lorsque vous avez de longs blocs de code avec de nombreuses lignes. Masquer les numéros de ligne est utile pour les extraits, les instructions d’utilisation pour la ligne de commande ou les expressions de terminal et des cas similaires.

#### Avec légende

Cela activera ou désactivera une légende située en haut du bloc, au-dessus de vos lignes de code.

La légende est souvent le nom d’un fichier, comme indiqué dans [notre exemple ci-dessus](#example-of-a-code-block), mais vous pouvez aussi l’utiliser comme titre, description, ou tout autre élément de votre choix.

#### Retourner le code

Cela activera ou désactivera le retour à la ligne du code, de sorte que les longues lignes de code seront renvoyées à la ligne pour être toutes visibles sur la page en même temps.

Le retour à la ligne est utile lorsque votre code est long et que vous voulez éviter que le lecteur fasse défiler horizontalement pour le lire. Si vous activez **Retourner le code** cela, vous pouvez aussi afficher les numéros de ligne — cela facilitera la lecture du code et la compréhension de l’endroit où commencent les nouvelles lignes.

#### Repliable

Cela activera ou désactivera l’affichage du code en entier (lorsque l’option est désactivée) ou d’une fenêtre réduite du code que l’utilisateur peut développer (lorsque l’option est activée).

L’affichage réduit montre par défaut 10 lignes de code avec un bouton permettant de développer le bloc de code complet. S’il y a moins de 10 lignes de code, tout le contenu sera affiché.

### Actions du bloc de code

En plus des options ci-dessus, vous pouvez également changer la langue d’affichage du bloc de code et copier votre code instantanément.

#### Copier le code <a href="#copying-the-code" id="copying-the-code"></a>

Survolez un bloc de code et plusieurs icônes apparaîtront. Cliquez sur l’icône du milieu pour copier le contenu du bloc de code dans votre presse-papiers.

### Représentation en Markdown

````markdown
{% code title="index.js" overflow="wrap" lineNumbers="true" %}

```javascript
‌import * as React from 'react';
import ReactDOM from 'react-dom';
import App from './App';

ReactDOM.render(<App />, window.document.getElementById('root'));
```

{% endcode %}
````
