URL: https://linuxfr.org/news/commonmark-une-syntaxe-markdown-en-commun-et-repandue Title: CommonMark, une syntaxe Markdown en commun et répandue Authors: Collectif BAud, Bruno Michel, ZeroHeure, Davy Defaud, Benoît Sibaud, Anonyme, zurvan, Nils Ratusznik et Thomas Debesse Date: 2014年11月11日T14:20:56+01:00 License: CC By-SA Tags: markdown, commonmark, wiki et john_gruber Score: 46 [[Markdown]] est la syntaxe wiki retenue pour écrire sur LinuxFr.org. John Gruber a publié les principes généraux du Markdown en 2004, avec une suite de tests et une implémentation de référence en Perl. Il est donc considéré comme le créateur du langage. Mais sa suite de tests est très incomplète et son implémentation de référence donne des résultats parfois surprenants sur des cas particuliers (les listes imbriquées notamment). De nombreuses autres implémentations dans différents langages sont apparues depuis. Certaines essaient de corriger les « erreurs » de la version initiale pour mieux coller aux attentes des utilisateurs, tandis que d’autres préfèrent y rester conforme. Le premier camp réunit cependant toutes les implémentations les plus utilisées (_GitHub_, _Stack Overflow_, _Discourse_, _LinuxFr.org_ — dont les particularités sont détaillées sur la page wiki pour l’[[[aide-édition]]] —, etc.). Aussi, les développeurs des principales bibliothèques se sont regroupés pour discuter des difficultés à implémenter un Markdown qui plaise à leurs utilisateurs et chercher à minimiser les différences entre les sorties des différentes implémentations : CommonMark. ---- [Article LWN sur Common Markdown](http://lwn.net/Articles/610975/) [CommonMark](http://commonmark.org/) [Forum de discussion de CommonMark](http://talk.commonmark.org/) [Markdown tel que sur LinuxFr.org](http://linuxfr.org/wiki/aide-edition) [Entrées du suivi ouvertes sur LinuxFr.org pour le Markdown](http://linuxfr.org/suivi?utf8=%E2%9C%93&tracker[state]=opened&tracker[category_id]=29&tracker[assigned_to_user_id]=&order=created_at&commit=Filtrer) ---- ## CommonMark Ces efforts, ainsi qu’un gros travail de John MacFarlane (l’auteur de [Pandoc](http://johnmacfarlane.net/pandoc/)), ont permis d’arriver à un standard. Ce projet, initialement nommé « Standard Markdown », a dû être renommé en « CommonMark » suite à une [réclamation de John Gruber, un des créateurs de Markdown](http://blog.codinghorror.com/standard-markdown-is-now-common-markdown/). Il prend la forme d’une description très précise des règles à prendre en compte pour écrire un analyseur lexical Markdown. On pourrait regretter qu’il ne soit pas accompagné d’une grammaire formelle, mais il semblerait qu’il soit particulièrement difficile de faire cela (la plupart des analyseurs lexicaux travaillent en plusieurs passes). John MacFarlane a également écrit deux implémentations de références : l’une en C et l’autre en JavaScript. Ce travail de rapprochement des implémentations n’est toutefois qu’une première étape. Les différentes implémentations ont toutes diverses extensions aux langages (tableaux, notes de bas de pages, etc.) avec des syntaxes souvent différentes pour la même fonctionnalité. Il reste donc du boulot à l’équipe de CommonMark pour prendre en compte ces extensions et répondre aux nombreuses discussions sur le [forum _Discourse_ du projet](http://talk.commonmark.org/) (qui d’ailleurs utilise une syntaxe Markdown qui n’est pas encore du CommonMark). ## Particularités de LinuxFr.org par rapport au Markdown et CommonMark Le Markdown gagnerait à évoluer et être standardisé pour prendre en compte les évolutions apportées de part et d’autre. Sur [_LinuxFr.org_](//linuxfr.org/), les choix suivants ont été effectués : - ajout d’une table des matières pour les articles longs ; - liens vers le [[[wiki]]] interne avec la syntaxe `[[[wiki]]]` ; - gestion du $\LaTeX$ avec [quelques incompréhensions](//linuxfr.org/suivi/syntaxe-latex-activee-des-qu-il-y-a-deux-dollars-sur-une-ligne) de la syntaxe `$\LaTeX$` ; - gestion en standard des images, mais il y a une [évolution proposée pour les sons et vidéos](http://linuxfr.org/suivi/idee-de-balisage-audio-et-video-en-markdown) ; - non prise en compte des deux espaces en fin de ligne pour passer à la ligne (quasiment tout le monde a râlé là‐dessus) : CommonMark permet d’utiliser un antislash plutôt que deux espaces pour que ce soit visible, mais conserve le même mécanisme. ## Amélioration possibles du Markdown de LinuxFr.org - gestion plus fine par lettre (et non juste par mot) des enrichissements (gras, italique, barré et télétype). Il resterait à identifier d’autres différences du Markdown sur _LinuxFr.org_ et ce qui bénéficierait de la standardisation proposée par CommonMark.  ## Bibliothèques de développement utilisées pour le Markdown Sur _LinuxFr.org_, spécifiquement, les bibliothèques suivantes sont utilisées pour gérer le Markdown : - le rendu HTML de Markdown est effectué par [RedCarpet](https://github.com/vmg/redcarpet) ; - il y a [Pygments](http://pygments.org/) pour l’affichage du code : \`\`\`langage **précédé d’une ligne blanche** permet la coloration syntaxique (très utile dans les forums et commentaires ou en 2^(e) partie de dépêche technique) ; - c’est à [SVGtex](https://github.com/linuxfrorg/svgtex) que vous devez le rendu des bouts de $\LaTeX$. Autres points à discuter ?