Prologue
Il serait par exemple intéressant que je refasse ce billet en utilisant la syntaxe Markdown plutôt que le Wiki Dotclear, et que je vois si je peux “mieux” présenter cette comparaison qu’actuellement.
Franck Wiki Dotclear vs Markdown ,
C’est ce que j’entreprends avec ce billet qui reprend l’intégralité du billet (initialement publié le 23 décembre 2013) cité ci-dessous, en utilisant a priori des tableaux là où ce sera pertinent.
Wiki Dotclear vs Markdown
Les deux syntaxes wiki, Dotclear et Markdown, sont disponibles pour écrire les billets (et les pages, commentaires, …). La première syntaxe est intégrée depuis quasiment le début de Dotclear 1, la seconde est utilisable en installant le plugin idoine.
Ça fait un moment déjà que j’envisage de basculer sur Markdown parce que certaines applications tierces proposent cette syntaxe et me permettrait ainsi de faire un simple copié-collé pour alimenter ce blog. Par contre, ce qui me retient encore est que je ne sais si toutes les possibilités offertes par la syntaxe Wiki Dotclear sont également proposées par Markdown.
Alors voilà une sorte de table de correspondance entre les deux1. J’indiquerai (DC) quand il s’agira de la syntaxe Wiki Dotclear et (MD) pour Markdown (MDE quand ce sera uniquement dans l’extension Extra de Michel Fortin implémentée dans le plugin). D’autre part, quand plusieurs syntaxes sont proposées par Markdown pour un balisage, j’indiquerai la syntaxe la plus proche de Dotclear.
Marqueurs de début de ligne :
Titres :
Les niveaux 1 et 2 sont historiquement réservés au titre du blog et au titre du billet.
Type | Dotclear | Markdown |
---|---|---|
Niveau 3 | !!! + Titre (DC) |
### + Titre (MD) |
Niveau 4 | !! + Titre (DC) |
#### + Titre (MD) |
Niveau 5 | ! + Titre (DC) |
##### + Titre (MD) |
Vous noterez l’inversion du nombre de symboles utilisés (décroissant pour Dotclear, croissant pour Markdown).
Listes :
Type | Dotclear | Markdown |
---|---|---|
Numérotées | # + élément de liste (DC) |
1. + élément de liste (MD) |
Non numérotées | * + élément de liste (DC et MD) |
idem |
2e niveau | ## , #* , *# ou ** + élément de liste (DC) |
<4 espaces ou une tabulation> + 1. ou * (MD) |
Divers :
Type | Dotclear | Markdown |
---|---|---|
Trait horizontal | ---- (DC et MD) |
idem |
Texte pré-formatté | <espace> + texte (DC) |
<4 espaces ou une tabulation> + texte (MD) |
Bloc de citation | > + texte (DC et MD) |
idem |
Bloc HTML (sera interprété) :
///html
code HTML
///
(DC)
code HTML
(MD)
Marqueurs de fin de ligne :
Type | Dotclear | Markdown |
---|---|---|
Retour à la ligne | %%% (DC) |
<2 espaces ou plus> (MD) |
Une ligne vide termine un bloc (paragraphe, liste, …), dans les deux syntaxes (DC et MD)
Marqueurs indépendants de la position :
Type | Dotclear | Markdown |
---|---|---|
Emphase | '' + texte + '' (DC) |
* + texte + * (MD) |
Forte emphase | __ + texte + __ (DC et MD) |
idem |
Insertion | ++ + texte + ++ (DC) |
pas d’équivalence (MD) |
Suppression | -- + texte + -- (DC) |
pas d’équivalence (MD) |
Pour l’insertion et la suppression, Markdown impose l’usage des balises HTML <ins>
et <del>
.
Liens :
Dotclear | Markdown |
---|---|
[ + url + ] (DC) |
< + url + > (MD) |
[ + nom + | + url + ] (DC) |
[ + nom + ]( + url + ) (MD) |
[ + nom + | + url + | + langue + ] (DC) |
pas d’équivalence (MD) |
[ + nom + | + url + | + langue + | + titre + ] (DC) |
pas d’équivalence (MD) |
La mention de la langue n’est pas possible avec Markdown sans passer par les balises HTML <a…/>
. Par contre l’ajout d’un titre est possible : [
+ nom + ](
+ url + "
+ titre + ")
et n’a pas d’équivalence dans Dotclear sans ajouter également la langue ; dans Dotclear il suffit de ne pas préciser la langue entre les deux |
(correction effectuée ce jour à 18h).
Images :
Dotclear | Markdown |
---|---|
(( + url + | + texte alternatif + )) (DC) |
 (MD) |
(( + url + | + texte alternatif + | + position (L/G,C,R/D) + )) (DC) |
pas d’équivalence (MD) |
(( + url + | + texte alternatif + | + position + | + titre + )) (DC) |
pas d’équivalence (MD) |
La mention de la position n’est pas possible avec Markdown sans passer par les balises HTML/CSS <img … />
. Par contre l’ajout d’un titre est possible : 
et n’a pas d’équivalence dans Dotclear sans ajouter également la position ; dans Dotclear il suffit de ne pas préciser la position entre les deux |
(correction effectuée ce jour à 18h).
Ancres :
Dotclear | Markdown |
---|---|
~ + ancre + ~ (DC) |
pas d’équivalence (MD) |
Markdown impose l’usage de la balise <a name="ancre"></a>
pour l’insertion d’une ancre au sein du contenu.
Acronymes :
Dotclear | Markdown |
---|---|
?? + acronyme + | + titre + ?? (DC) |
*[ + acronyme + ]: + titre (en fin de contenu, toutes les occurrences de l’acronyme seront remplacées dans le texte, MDE). |
Citation :
Dotclear | Markdown |
---|---|
{{ + citation + }} (DC) |
pas d’équivalence (MD) |
{{ + citation + | + langue + }} (DC) |
pas d’équivalence (MD) |
{{ + citation + | + langue + | + url + }} (DC) |
pas d’équivalence (MD) |
Markdown impose l’usage de la balise <q>
pour l’insertion de citation en ligne.
Autres :
Élément | Dotclear | Markdown |
---|---|---|
Code | @@ + code + @@ (DC) |
\`` + *code* + `` (MD) |
Note | $$ + corps de la note + $$ (DC) |
[^ + refnote + ] dans le texte et [^ + refnote + ]: + corps de la note (en fin de contenu, MDE) |
Littéral | \ + caractère (DC et MD) |
idem |
Code HTML (sera interprété) | (DC) |
code HTML (MD) |
Conclusion
De mon point de vue et sans tenir compte des possibilités supplémentaires de Markdown par rapport à la syntaxe Wiki Dotclear (tables, listes de définition, gestion des éléments indentés, listes dont les éléments peuvent contenir plusieurs paragraphes, …) le manque le plus flagrant est l’absence de prise en compte de la langue pour les liens, qui peut assez souvent être différente de la langue du contenu (je rédige en français et moult ressources liées sont en anglais), ce qui m’obligerait à basculer sur la représentation HTML de la balise.
Idem pour les citations en ligne, que j’utilise assez régulièrement, qui sont complètement absentes et imposent l’usage de la balise HTML correspondante.
Après avoir fait cette comparaison (certes incomplète du point de vue de Markdown et de son extension Extra) il apparaît que le choix de la syntaxe pourrait essentiellement dépendre du type de contenu à éditer. Markdown m’apparaît plus ”geek” à l’usage que le Wiki Dotclear, mais c’est peut-être qu’après plusieurs milliers de billets écrits avec cette dernière syntaxe, j’en connais parfaitement les possibilités et les limites.
Il serait par exemple intéressant que je refasse ce billet en utilisant la syntaxe Markdown plutôt que le Wiki Dotclear, et que je vois si je peux “mieux” présenter cette comparaison qu’actuellement.
Épilogue
Markdown apporte quelques raffinements qui peuvent être les bienvenus, comme la possibilité de concevoir rapidement et facilement des tableaux, ou des listes de définition ; et son avantage indéniable est la facilité avec laquelle vous intégrez du HTML, justement, au sein du contenu.
Je n’ai quasiment pas été gêné pendant la conversion du Wiki Dotclear vers Markdown pour transformer le contenu du billet original.
Comme je le précisais dans mon premier billet (voir la conclusion reproduite ci-dessus), le manque le plus flagrant, compte tenu évidemment de ce que je publie d’habitude, est l’impossibilité de préciser la langue d’une ressource sans passer par le balisage HTML.
Autre petit inconvénient, l’utilisateur est tenu de fournir des références de note unique avec Markdown alors que le Wiki Dotclear gère ça tout seul. Cela dit c’est à double-sens puisque une même note peut être utilisée à plusieurs endroits dans le texte sans être obligé de la dupliquer.
L’idéal, je pense, serait de compléter Markdown avec les deux trois bricoles que j’utilise (citation en ligne, langue pour les liens, insertion, suppression), on obtiendrait ainsi quelque chose d’assez proche de la perfection2.
-
Je ne retiens ici que ce qui existe dans la syntaxe Wiki Dotclear. ↩
-
Je n’ai pas mentionné le positionnement des images, possible facilement avec Dotclear, parce qu’à mon sens on sort de la sémantique du contenu et je ne pense pas que la syntaxe wiki (quelle qu’elle soit) ait à se préoccuper de présentation, bien que ce soit fichtrement pratique. ↩
1 De annso -
Tiens moi aussi, je me suis posée la question de switcher, écrivant pas mal en markdown au boulot (d'ailleurs, je me trompe souvent de syntaxe avec celle de DC, ou encore celle de Redmine...)
Je préfère la notation des titres du MD mais la notation des listes de DC. Et la syntaxe note de DC est juste tellement simple qu'elle en est indispensable ! Quand aux liens et images, j'utilise le WYSIWIG car je suis incapable d'en retenir la syntaxe maintenant que je n'écris plus régulièrement...
2 De Pinkilla -
Depuis que tu as proposé le plugin MD, je suis un ardent utilisateur de la syntaxe et je rédige mes billets en MD.
La syntaxe MD est beaucoup plus facile à lire lorsqu'elle n'est pas encore interprétée et je découvre des outils assez sympa tel que pandoc par exemple.
3 De Da Scritch -
Chacun ses goûts, mais ce qui me gène profondément dans ces systèmes, c'est qu'on a du coup bien plus de caractères spéciaux, dont l'usage peut devenir inconfortable.
Oui, le HTML est plus long, mais moi, je me sens en meilleur confort
4 De Nicolas Hoizey -
Excellent tout ça, j'espère qu'un jour on arrivera tous à généraliser une même syntaxe dans nos outils, sans doute basée sur Markdown qui est la plus répandue déjà, et à laquelle il ne manque pas grand chose.
Des réflexions ont déjà été menée côté SPIP aussi, peut-être l'occasion d'un nouveau travail commun, pour harmoniser les syntaxes… ;-)
5 De Franck -
Da Scritch Markdown a tout de même été conçu pour être le moins pertubateur question lecture en mode texte, et je trouve ça largement plus lisible qu’une source HTML.
Nicolas je vais probablement proposer quelques ajouts à Michel Fortin (qui gère Markdown Extra), faudrait voir côté Spip s’il n’y a pas des choses possibles avec le wiki Spip (est-ce spécifique ?) et pas avec Markdown Extra.
Je sais qu’il y a aussi d’autres extensions que Markdown Extra, mais je n’en pas encore exploré les possibilités.
6 De Pascal -
La dernière version (fin novembre) de markdown par Michel Fortin ajoute (entre autres) la possibilité d'ajouter une classe (et id) aux images et aux liens
[link](url){#id .class}
{#id .class}
c'est vrai qu'un ajout d'attributs (comme lang) seraient un plus, pourquoi pas un système plus générique comme
[link](url){#id .class [attr=value] [lang=en]}
plutôt que de cibler spécifiquement lang (je pense à rel par exemple, pourquoi pas des data-* ... )
le scheme url tel: a aussi été ajouté <tel:+1-111-111-1111>
Ce qui est appréciable dans markdown extra, c'est la possibilité d'écrire du HTML à l'intérieur duquel on peut écrire du markdown.
<div markdown="1">
This is *true* markdown text.
</div>
(Je ne connais pas la syntaxe wiki dotclear, c'est peut être possible...)
Bon, lesfootnotes ont changé dans Markdown extra... j'ai une mise à jour d'un script js qui s'ajoute à ma todo list...
7 De tetue -
Intéressant billet ! qui mériterait son pendant SPIP :)
J'ai fait une étude de différentes syntaxes à balisage léger (de type Markdown, wiki, etc.) que je propose de partager, sous forme d'un atelier de réflexion et co-création. J'ai déjà animé tel atelier fin décembre chez SPIP et j'aimerais beaucoup le refaire avec Dotclear courant janvier. Le but est de découvrir, de comparer, pour un choix éclairé. Après quoi on pourrait se faire une journée d'étude et de mise en commun. Ça vous botte ?
8 De tetue -
Et voici semblable étude comparative avec SPIP : Syntaxe SPIP versus Markdown !
9 De Franck -
tetue \o/