Cours 10: Autres formats de documents
<lgrobol@parisnanterre.fr>
Université Paris Nanterre
2024-03-18
Markdown est un format de documents créé par Aaron Swartz et John Gruber en 2004 sur les principes suivants :
Le nom est un jeu de mot sur markup, qui désigne les formats dits « balisés » comme HTML ou XML.
La spécification originale et un programme pour convertir de Markdown ont été publiés à https://daringfireball.net/projects/markdown en 2004.
Cette spécification est volontairement informelle, un des objectifs étant de permettre des évolutions futures vers des formats dérivés (ou *dialectes**) de Markdown adaptés à différents usages, ce qui a effectivement été le cas.
La légèreté du format a permis son inclusion dans énormément d’applications. Essentiellement, si vous voulez proposer du texte formaté en évitant de créer un éditeur WYSIWIG, Markdown est une bonne solution.
Pour visualiser, tester et expérimenter avec Markdown, vous pouvez utiliser un des nombreux éditeurs en ligne disponible, par exemple https://dillinger.io ou un éditeur local comme Zettlr.
Évidemment — c’est tout le principe —, vous pouvez aussi écrire en Markdown dans n’importe quel éditeur de texte (bloc note, notepad++, …).
La spécification originale décrit Markdown en termes de balises HTML, et on va faire pareil.
Un fichier Markdown est un fichier texte, généralement avec l’extension .md
, qui comprend du texte, ainsi que des annotations de format et structures, qui utilisent exclusivement des caractères non alphabétiques.
Ce qui suit est une brève introduction à la syntaxe. Voir par exemple les spécifications GFM ou Pandoc pour des dialectes modernes et complets.
En Markdown, on écrit du texte en l’écrivant. Plus clairement :
Équivaut en HTML à
Les espaces multiples ne sont pas préservées et un retour à la ligne équivaut à une espace. En revanche une ligne blanche marque un changement de paragraphe.
Markdown a, comme HTML, deux niveaux d’emphase :
*hello*
équivaut à <em>hello</em>
et est en général marqué en italiques.**hello**
équivaut à <strong>hello</strong>
et est en général marqué en gras.On peut utiliser _
à la place de *
Les titres sont notés en débutant une ligne avec autant de #
que le niveau voulu :
Les listes non-ordonnées se notent en démarrant une ligne par -
, *
ou +
.
un item
un autre item
un autre item dans une autre liste
et un autre
On peut également créer des sous-listes, signalées par l’indentation
On crée des listes ordonnées de la façon suivante
Les liens hypertextes peuvent être notés inline
Ils peuvent aussi être référencés ailleurs dans le document en leur donnant une étiquette arbitraire (ici 1
)
Dans beaucoup d’applications, on autorise aussi l’insertion de balises HTML directement dans Markdown :
Du texte Markdown avec du HTML dedans.
Plusieurs outils utilisant Markdown proposent des fonctionnalités en plus de Markdown qui pourraient vous être utiles comme
Reprendre l’exercice lettre en formatant à l’aide de Markdown plutôt que HTML. Attention : il ne sera pas possible de tout représenter.
Pour vous entraîner, revoir les points précédents ou en apprendre plus, vous pouvez également suivre le tutoriel interactif de https://www.markdowntutorial.com/fr.
En plus de faire des recherches avec des RegEx, on peut s’en servir pour faire des remplacements.
Le principe est simple : comme avec un rechercher-remplacer dont vous avez l’habitude, mais ce qu’on recherche, c’est une expression régulière.
Par exemple, essayez de remplacer \bc\w*\b
par chats
dans
Plus intéressant : on peut aussi conserver une partie de l’expression régulière : remplacer \bc(\w*)\b
par C$1
(dans Regexr ou VSCode) ou par C\1
(dans Notepad++) dans
Principe : $n
(ou \n
) où n est un nombre sera remplacé par le contenu du n-ième groupe de capture (signalé par des parenthèses).
Maintenant, utilisez ce nouvel outil pour convertir du Markdown en HTML : exercice.
Ou si vous peinez, vous pouvez vous rafraîchir la mémoire sur les RegEx avec les premiers niveaux (jusqu’à Intermediate inclus) de https://regexcrossword.com