2074 votes

Commentaires en format Markdown

Comment écrire un commentaire en Markdown, c'est-à-dire un texte qui n'est pas rendu dans la sortie HTML ? Je n'ai rien trouvé sur le site Projet Markdown .

11 votes

En lisant entre les lignes, il semble que vous vouliez attacher des métadonnées à votre Markdown. Pour cette raison, je vous suggère d'utiliser un préprocesseur qui vous permet d'ajouter un en-tête. Pour un exemple, voir La première page de Jekyll . Pour un autre exemple, voyez comment Basho utilise Middleman pour sa documentation . (Note : Ce n'est pas une réponse directe à la question, c'est pourquoi je la partage en tant que commentaire).

2 votes

3 votes

Voici un benchmark de différents types de commentaires avec différents analyseurs syntaxiques. Babelmark .

2120voto

Magnus Points 1641

Je pense que toutes les solutions proposées précédemment (à part celles qui nécessitent des implémentations spécifiques) font que les commentaires sont inclus dans le HTML de sortie, même s'ils ne sont pas affichés.

Si vous voulez un commentaire qui vous est strictement réservé (les lecteurs du document converti ne doivent pas pouvoir le voir, même avec "view source"), vous pouvez (ab)utiliser les étiquettes de lien (à utiliser avec les liens de style référence) qui sont disponibles dans la spécification Markdown de base :

http://daringfireball.net/projects/markdown/syntax#link

C'est-à-dire :

[comment]: <> (This is a comment, it will not be included)
[comment]: <> (in  the output file unless you use it in)
[comment]: <> (a reference style link.)

Ou vous pouvez aller plus loin :

[//]: <> (This is also a comment.)

Pour améliorer la compatibilité des plates-formes (et pour économiser une frappe), il est également possible d'utiliser la fonction # (qui est une cible légitime d'hyperlien) au lieu de <> :

[//]: # (This may be the most platform independent comment)

Pour une portabilité maximale, il est important d'insérer une ligne vierge avant et après ce type de commentaires, car certains analyseurs Markdown ne fonctionnent pas correctement lorsque les définitions côtoient du texte ordinaire. Les recherches les plus récentes menées avec Babelmark montrent que les lignes vides avant et après sont toutes deux importantes. Certains analyseurs génèrent le commentaire s'il n'y a pas de ligne vierge avant, et certains analyseurs excluent la ligne suivante s'il n'y a pas de ligne vierge après.

En général, cette approche devrait fonctionner avec la plupart des analyseurs Markdown, puisqu'elle fait partie de la spécification de base. (même si le comportement lorsque plusieurs liens sont définis, ou lorsqu'un lien est défini mais jamais utilisé, n'est pas strictement spécifié).

240 votes

[//]: # "Comment" et [//]: # (Comment) semblent fonctionner sur une plus grande variété d'implémentations, car # est un URI relatif valide. GitHub, par exemple, rejette <> et la ligne entière devient visible. Il convient également de noter que les étiquettes de liens doivent souvent être séparées du reste du contenu par une ligne vierge.

1 votes

# la variante échoue avec s9e \TextFormatter (Fatdown/PHP) et cebe/markdown selon Babelmark . <> échoue même dans CommonMark.

22 votes

Pour être le plus indépendant possible de la plate-forme, il faut aussi une ligne vide avant le commentaire. Voir les tests : stackoverflow.com/a/32190021/2790048

1452voto

chl Points 10205

J'utilise des balises HTML standard, comme

<!---
your comment goes here
and here
-->

Notez le triple tiret. L'avantage est que cela fonctionne avec pandoc lors de la génération d'une sortie TeX ou HTML. De plus amples informations sont disponibles sur le site pandoc-discuss groupe.

106 votes

Si je comprends bien, le triple tiret rend pandoc ignore le commentaire lorsqu'il analyse le fichier markdown. Mais si vous utilisez un autre moteur markdown, le commentaire apparaîtra dans le HTML généré (et sera donc visible avec "view source"). Vous devez donc faire attention à ce que vous mettez dans ce commentaire ;)

7 votes

Pouvez-vous expliquer comment Pandoc traite les triples tirets différemment des doubles tirets ? Lorsque je les ai expérimentés, ils semblaient être traités de la même manière. Aussi, le guide de l'utilisateur de Pandoc dit simplement "Le HTML brut est transmis inchangé dans les sorties HTML, S5, Slidy, Slideous, DZSlides, EPUB, Markdown et Textile, et supprimé dans les autres formats." Le triple tiret ne semble pas avoir un privilège plus élevé que le double tiret.

4 votes

@dkim Les commentaires avec un triple tiret sont ignorés et rejetés de la sortie HTML. Ce n'est pas le cas des commentaires à double tiret qui sont insérés dans le fichier HTML. C'est toujours le cas avec la dernière version de Pandoc (1.10).

68voto

uiroshan Points 454

Si vous utilisez Jekyll ou octopress, les éléments suivants fonctionneront également.

{% comment %} 
    These commments will not include inside the source.
{% endcomment %}

Les étiquettes liquides {% comment %} sont analysés en premier et supprimés avant même que le processeur MarkDown ne s'en occupe. Les visiteurs ne verront rien lorsqu'ils essaieront d'afficher la source à partir de leur navigateur.

5 votes

Jinja2 = {# commentaires multilignes ici #}

31voto

Stu Points 554

Une autre solution consiste à placer les commentaires dans des balises HTML stylisées. De cette façon, vous pouvez basculer leur visibilité selon vos besoins. Par exemple, définissez une classe de commentaires dans votre feuille de style CSS.

.comment { display: none; }

Ensuite, le MARKDOWN amélioré suivant

We do <span class="comment">NOT</span> support comments

apparaît comme suit dans un BROWSER

We do support comments

5 votes

Le copier/coller finira probablement par copier le texte "commenté" ainsi que le texte normal, alors soyez prudent lorsque vous l'utilisez. Cela pourrait facilement produire des résultats inattendus pour quelqu'un qui copierait un bloc de texte.

5 votes

@Eilon aussi l'accessibilité pour cela serait terrible.

3 votes

Les moteurs prenant en charge l'accessibilité ignoreront correctement le texte display : none.

20voto

Kerim Points 21

Voir également le balisage critique, pris en charge par un nombre croissant d'outils Markdown.

http://criticmarkup.com/

Comment {>> <<}

Lorem ipsum dolor sit amet.{>>This is a comment<<}

Highlight+Comment {== ==}{>> <<}

Lorem ipsum dolor sit amet, consectetur adipiscing elit. {==Vestibulum at orci magna. Phasellus augue justo, sodales eu pulvinar ac, vulputate eget nulla.==}{>>confusing<<} Mauris massa sem, tempor sed cursus et, semper tincidunt lacus.

5 votes

Je pense que l'un des problèmes de ces "pseudo"-normes est qu'elles ne sont pas portables. Sur certains sites web, elles fonctionneront parfaitement, sur d'autres, non.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X