3 09 Markdown et extensions
Eragon edited this page 2024-03-14 14:48:15 +01:00

Markdown et extensions

Le langage des messages dans la v5 est le Markdown (M↓). On utilise l'implémentation Python-Markdown qui supporte de nombreuses extensions.

L'intégration de HTML dans le texte Markdown est désactivée.

Blocs de code: backticks et coloration

L'extension fenced_code est activée, ce qui permet d'utiliser la syntaxe habituelle pour les blocs de code. De plus codehilite est utilisé, ce qui permet d'avoir la coloration syntaxique en spécifiant le langage :

```c
int main(void)
{
    return 0;
}
```

Cependant, ces blocs ne peuvent être placés qu'au premier niveau du message et pas dans des listes, citations, etc.

Autolinker

Les URL dans le texte brut sont automatiquement converties en liens.

https://www.planet-casio.com/Fr

Liens PC

L'extension personnalisée pclink permet d'insérer des liens internes sous la forme <catégorie: valeur> (TODO : syntaxe peut-être non définitive).

# Lien vers le profil d'un utilisateur :
<membre: Darks>
<user: Darks>
<u:Darks>

# Insertion d'un sondage
<sondage: 734>
<poll: 734>

# Lien vers un topic par son ID
<topic: 2820>
<t:2820>

# Bouton de téléchargement d'un fichier par son ID
<fichier: 1749>
<file: 1749>
<f:1749>

Médias

L'extension personnalisée media permet d'insérer des médias autre que des images, et d'ajouter des options de taille et de positionnement.

Le type de média est deviné par l'extension du fichier (par exemple .mp4) ou la forme du lien (par exemple YouTube), mais peut aussi être indiqué par l'attribut type.

![](https://example.com/image.png)
![](https://example.com/video.mp4)
![](https://example.com/image_sans_extension){type=image}
![](https://example.com/video_sans_extension){type=video}
![](https://www.youtube.com/watch?v=fwScgSFB2Mo)
![](https://example.com/image.png){float-right size=256x128 pixelated}

Les attributs sont spécifiés dans les accolades optionnelles après le lien, séparés par des espaces. Les options suivantes sont disponibles :

  • left, center, right, float-left, float-right : position et alignment (image/vidéo, ignorés dans un caroussel)
  • size=LARGEUR, size=LARGEURx, size=xHAUTEUR, size=LARGEURxHAUTEUR : taille (image/vidéo). Notez qu'une vidéo conservera toujours son ration largeur/hauteur indépendamment de la taille spécifiée, c'est forcé par le navigateur.
  • pixelated : désactive l'antialiasing sur les images redimensionées.

Tableaux

L'extension tables est activée, ce qui permet de faire des tableaux à la façon PHP :

First Header  | Second Header
------------- | -------------
Content Cell  | Content Cell
Content Cell  | Content Cell

Il n'y a pas toutes les fonctionnalités cependant (par exemple l'alignment avec : dans les en-têtes semble manquer).

Galeries/caroussels

Un caroussel peut être obtenu (typiquement dans la desciption d'un programme) en ajoutant l'attribut {gallery} à une liste de médias.

- ![](video.mp4)
- ![](image1.png)
- ![](image2.png){size=x480 pixelated}
- ![](image3.png){size=530x}
{gallery}

Retours à la ligne

En Markdown, un simple retour à la ligne dans le corps du texte n'a pas d'effet : pour commencer un nouveau paragraphe, il faut laisser une ligne blanche.

Pour insérer un simple retour à la ligne, Markdown indique de laisser deux espaces à la fin de la ligne. Mais c'est invisible, et en plus pas pratique parce que les éditeurs de code nettoient souvent les espaces en fin de ligne (à juste titre).

On a donc une extension personalisée hardbreak qui autorise l'usage de deux backslashs à la place :

Cette première ligne doit être coupée sans créer de paragraphe. \\
Ceci est sur une autre ligne.

Table des matières

Particulièrement utile pour les tutoriels : l'extension toc permet de créer une table des matières à partir des titres présents dans le message.

[TOC]

Notes de bas de page

L'extension footnotes est activée, ce qui permet d'écrire des notes de bas de page.

Ils appelaient ça «la huitième merveille du monde»[^1].

[^1]: Ce qui, pour quelqu'un qui a contribué à construire cinq des septs autres, est franchement exagéré.