Retour d'expérience sur les langages de markup
Après quelques jours d'utilisation de markdown dans des textarea, j'avais envie de poster un petit retour d'expérience.
Expérience ressentie
Globalement, j'ai trouvé l'utilisation de markdown moins agréable que celle d'un BBcode.
En effet, à l'écriture, le principal avantage de markdown (et autres langages de markups similaires) se trouve dans les balises inlines, que j'utilise finalement assez peu. Pour ces balises, il est effectivement plus concis et plus visuel qu'un langage à balises ouvrantes/fermantes.
Pour les balises blocs par contre, je ne suis pas convaincu.
Pour commencer, le parsing des listes est très désagréable, il oblige à séparer la liste du paragraphe précédent d'au moins une ligne, ce qui n'est pas sémantique quand la liste appartient au paragraphe, et donne un rendu qui me déplait.
Ensuite, l'utilisation pour du code est assez pénible. Je suis obligé de faire le yoyo entre la textarea dans laquelle je rédige mes messages et mon éditeur de texte, qui a des capacités d'édition de colonnes. Ce n'est pas agréable. D'ailleurs la syntaxe choisie pour les blocs de code (indentation de quatre espaces) est arbitraire.
Les citations sont moins gênantes, puisqu'il suffit de mettre un signe ">" sur la première ligne du premier paragraphe. Même s'il faut en mettre sur chaque ligne, ce n'est pas un problème car ces lignes (écrites dans un textarea avec autowrap) sont en général très longues, donc peut nombreuses dans le bout de texte que l'on cite.
Cependant, du faite de l'absence de contrôle de l'utilisateur markdown sur l'espacement vertical, les citations ont un défaut agaçant : elles sont à même distance du texte qui les précède que du texte qui les suit, ce qui rend moins clair (à mes yeux) la structure du texte.
Nuances
La plupart de ces problèmes ne se posent pas pour la rédaction d'un long document, tel une news ou un tutoriel. En effet, on travaille déjà dans un éditeur de texte, et ces opérations sont donc facilement accessibles.
Il est possible que la difficulté que j'encontre soit juste un problème d'outil de mon côté : « Comment, tu n'utilise pas l'oufzor extension Firefox pour intégrer Vim ? Ton système d'exploitation inférieur n'a pas un service utilisable sur tout champ texte pour écrire les messages à ta place ? ». Je suis intéressé par des solutions palliatives que vous utilisez réellement (moins par le « oui, mais en théorie on pourrait faire ceci cela »), mais il faut garder en tête que le choix par défaut doit être accessible même aux utilisateurs moins choyés par la technologie. En espérant qu'ils savent qu'on peut faire de l'édition rectangulaire.
Il serait peut-être possible de mitiger les défauts que je décris en ajoutant une syntaxe alternative, basée sur des balises d'ouverture-fermeture, pour les délimiteurs blocs. Dans le cas des listes, je serais aussi très content de garder le simple rendu ASCII. D'ailleurs, dans l'ensemble, je pense que le rendu ASCII (avec line-wrapping) ferait tout aussi bien l'affaire que le rendu markdown.
Problèmes techniques
Contrairement à ce qu'un utilisateur bien disposé pourrait croire, markdown n'est pas un format standard (je ne parle même pas d'une spécification de la syntaxe, oh non, mais d'un standard de fait). Il y a plusieurs implémentations en Perl, Python, Ruby et PHP, et légèrement incompatibles les unes avec les autres.
De plus, le format markdown a des limitations agaçantes. J'aimerais bien avoir des notes de bas de page, mais on peut s'en passer, par contre il n'y a pas de syntaxe définie pour les commentaires (du texte qui ne soit pas affiché dans le document final), et ça c'est un énorme manque. Les commentaires sont utiles comme commentaires, et ils sont précieux si on veut rajouter des métadonnées à des documents : on les met sous forme de directives, dans des commentaires avec une forme prédéfinie (technique mdown).
6 réponse(s)
| Yno | # - le 27/06/2010 à 21:31:22 - Répondre - Source |
|
|
Je suis d'accord qu'il manque pas mal de choses à markdown et que y'a plein d'implémentations qui se dispersent de partout et donc c'est pas cool. C'est d'ailleurs pour cela que j'encourage régulièrement asmanur à continuer/améliorer mldown. Pour les subtilités sémantiques, comme j'y connais rien j'avoue que ça ne me préoccupe pas trop. En ce qui me concerne je préfère de loin éditer en markdown, que ça soit dans mon éditeur ou dans la textarea, car j'utilise firemacs, une extension pour Firefox qui offre les commandes de bases d'Emacs pour l'édition, et ça me convient bien pour l'instant. |
| terresMinees | # - le 28/06/2010 à 11:08:33 - Répondre - Source |
|
|
Bluestorm, pour ton problème des listes, tu dois insérer deux espaces à la fin de la dernière puce pour passer à la ligne, ca marche aussi sans liste. Cela permet de passer à la ligne sans en sauter. * blablahh * blablahh[espace][espace] pas de saut de ligne
|
| gasche | # - le 28/06/2010 à 11:21:05 - Répondre - Source |
|
|
Ce que tu as fait, c'est faire un saut de ligne à l'intérieur de la puce, en utilisant la syntaxe markdown au sein d'un paragraphe. Ce que je voudrais c'est ne pas avoir de ligne blanche avant la liste. Voici un exemple naturel et agréable en tant que texte, et dont le rendu foire : Voici une liste : - premier élément - deuxième élément - troisième élément Voici une liste : - premier élément - deuxième élément - troisième élément . Rajouter deux espaces avant la liste (après Voici une liste : . Pour avoir un rendu qui ne bousille pas complètement le texte, il faut sauter une ligne entre la première ligne et la liste. Le problème c'est qu'ensuite le rendu est lui aussi "trop" espacé. Voici une liste : - premier élément - deuxième élément - troisième élément Voici une liste :
|
| terresMinees | # - le 28/06/2010 à 13:00:44 - Répondre - Source |
|
|
Effectivement, je ne vois pas de solution, faut croire que markdown est un peu chatouilleux. |
| Sobe | # - le 28/06/2010 à 14:49:08 - Répondre - Source |
|
|
Dans l'ensemble, je trouve que le markdown c'est quand même assez agréable à manipuler (en tout cas, je préfère largement ça au zCode ou BBcode), sauf pour le code : X espaces en début de ligne, c'est franchement chiant. Pour les listes à puces, ça me dérange pas plus que ça. Après, le vrai truc pénible avec le markdown, c'est comme disais bluestorm, qu'il y a 36 implémentations qui sont pas complètement compatibles : l'utilisant à environ 4 endroits différents (ici, Jottit, Tumblr, kramdown pour Ruby), y en a pas 2 identiques ! Par exemple, les 4 espaces ici, c'est 1 seul je sais plus où, etc... Après, je ne connais pas bien les autres alternatives : mdown c'est pareil ou non ? Textile j'ai pas testé... |
| gnomnain | # - le 02/09/2010 à 20:07:48 - Répondre - Source |
|
|
On va probablement passer à mldown. Pour le problème du code, j'ai écrit une extension à mldown qui permet de délimiter un bloc de code par Sinon, avec l'aide mémoire markdown qui est maintenant affiché en haut des formulaires, on peut voir assez vite la syntaxe donc c'est légèrement moins pénible d'avoir quelque chose de différent. |