L'histoire derrière l'éditeur Markdown
Markdown est une façon d'écrire du texte mis en forme qui reste naturel à lire en texte brut. Les astérisques pour l'emphase, les dièses pour les titres et les tirets pour les listes viennent de la manière dont on écrivait déjà les courriels. Cette page raconte comment cette idée simple est devenue la langue des fichiers README, des notes et de la documentation.
Né du courriel
En 2004, John Gruber a publié Markdown sur son site Daring Fireball, avec l'aide d'Aaron Swartz. Le but était un texte facile à lire et à écrire tel quel, mais convertible proprement en HTML. Beaucoup de conventions venaient du courriel et de formats texte plus anciens comme Setext : souligner une ligne de signes égal pour un titre, entourer un mot d'astérisques pour l'accentuer et commencer les lignes par un tiret pour une liste. Le premier convertisseur était un simple script Perl.
Trop de dialectes
La description d'origine laissait de nombreux cas limites ouverts, comme l'indentation nécessaire d'une liste imbriquée ou le moment où une ligne vide termine un bloc. Chaque implémentation tranchait différemment, si bien qu'un même texte pouvait s'afficher autrement selon le site. En 2014, John MacFarlane, Jeff Atwood et d'autres ont publié une spécification précise avec des centaines d'exemples. Appelée d'abord Standard Markdown, elle a été renommée CommonMark après les objections de Gruber.
GitHub Flavored Markdown
GitHub a fait de Markdown un outil quotidien des programmeurs grâce aux fichiers README, aux tickets et aux commentaires. En 2017, il a publié une spécification formelle de GitHub Flavored Markdown, sur-ensemble strict de CommonMark. Elle ajoute les tableaux avec alignement des colonnes, les listes de tâches à cases à cocher, le texte barré avec deux tildes et les liens reconnus automatiquement. Les blocs de code délimités avec un nom de langage, déjà populaires, ont permis la coloration syntaxique.
Pourquoi assainir les aperçus
Markdown autorise le HTML brut, pratique mais risqué. Si une page affiche le Markdown de quelqu'un d'autre, une balise script cachée, un attribut onerror sur une image ou un lien javascript pourrait exécuter du code dans le navigateur du lecteur, une attaque appelée cross site scripting. C'est pourquoi cet éditeur affiche le HTML brut comme du texte, supprime les schémas de liens dangereux et filtre le résultat avec une liste d'éléments et d'attributs autorisés avant l'affichage.
Questions fréquemment posées
Qui a inventé Markdown ?
John Gruber a créé Markdown en 2004, avec Aaron Swartz comme collaborateur et testeur important dès le début.
Quelle est la différence entre CommonMark et GFM ?
CommonMark est une spécification précise du cœur de Markdown. GitHub Flavored Markdown s'appuie dessus et ajoute tableaux, listes de tâches, texte barré et liens automatiques.
Pourquoi mon HTML s'affiche-t-il comme du texte ?
Par sécurité. Le HTML brut pourrait contenir des scripts, donc l'éditeur l'échappe et ne produit que des éléments qu'il sait inoffensifs.
Prêt à l'essayer ?
Ouvrez PictorX dans votre navigateur – aucune installation, aucune carte de crédit requise pour démarrer.
Ouvrir l'éditeur Markdown