PROJET AUTOBLOG


Arthur Hoaro

Archivé

Site original : Arthur Hoaro

⇐ retour index

Markdown a besoin d'être standardisé

mercredi 7 août 2013 à 13:12

J'adore le Markdown. C'est un langage de formatage simple, lisible et parfaitement adapté au web. J'en mange 5 fois par jour, matin midi et soir sur ce blog, sur Github, sur GitLab, sur mon Wiki (en fait ça n'est pas du Markdown mais un type de markup language), sur Stack Overflow, etc. Le hic, c'est que le Markdown original n'a codifié qu'un nombre limité d'éléments HTML standards. Du coup, la plupart des services qui l'utilisent y ajoutent une surcouche ; le fameux Flavored Markdown.

Mais vous vous en doutez, sinon ça serait trop simple, cette surcouche ne reprend généralement pas les mêmes conventions en fonction des services. Faisons un petit tour d'horizon.

Markdown standard

Je fais un rappel rapide de ce qu'est Markdown, pour ceux qui ne connaitraient pas. Cet outil permet donc de formater du texte très simplement. C'est un peu le même principe que le BBCode à la grande époque des forums, sauf qu'on ne s'arrache plus les cheveux.

Un petit exemple :

# Titre principal

## Sous titre   

Ceci est une super liste :

 * Elément 1
 * Elément 2    

[Lien](http://hoa.ro "Titre : Tu m'emmerdes avec ton exemple")

Enfin bref, vous pouvez retrouver toute la syntaxe sur la page de documentation et encore plus dans l'image-mémo ci-dessous.

github-md.jpg

Flavored Markdown

L'image précédente n'est pas là tout à fait par hasard. Vous pouvez voir en bas de celle-ci quelques éléments clés du Github Flavored Markdown (que je vais appeler le GitFlav dans la suite, parce que c'est plus court).

Ainsi, comme vous pouvez le constater, sur Github vous pouvez écrire votre code après un triple backquote et le nom du langage. Par contre, vous ne pourrez faire ça QUE sur Github (ou un service qui implémente arbitrairement la même règle).

Sur ce même service, vous avez également la possibilité d'afficher des cases cochées/décochées. Pourquoi pas.

Une fois sur Stack Overflow, si vous voulez définir le langage utilise dans votre bout de code, il vous en coutera un :

<!-- language: lang-js -->

C'est l'exemple le plus parlant, mais il y a très certainement d'autres subtilités.

Note : La liste des différences entre GitFlav et l'original est ici (et elle est longue). De plus, à ma connaissance, les sources de GitFlav ne sont pas disponibles.

Normalisation

En bref, chaque fois qu'apparaît un besoin spécifique sur Markdown, mais non moins global, chacun y va à son coup de spécification. Un autre exemple, tout simple : Markdown ne prévoit pas dans sa norme le strike (barré). Basique, mais non implémenté. Que fait-on alors ? On forke et on rajoute un strike entre deux signes égals ? Ou deux dollars ?

Il est clair que le langage Markdown aurait un bon besoin de dépoussiérage, de normalisation et d'évolution. Vous saviez que la dernière version, la 1.0.1 date de 2004 ? Les usages ont tout de même un peu évolués en 10 ans.

Je pense qu'aujourd'hui les mieux placés pour porter ce changement sont les deux semi-géants de l'Internet cités précédemment : Github et Stack Overflow. Après tout, Twitter a bien révolutionné le monde des framework CSS, pourquoi un meilleur Markdown ne serait-il pas possible ?

Note : Image via le Colibri.