Les commentaires dans Markdown

Quelle est la syntaxe pour stocker un commentaire dans un fichier markdown, par exemple un commentaire CVS $Id$ en haut du fichier? Je n'ai rien trouvé sur le projet markdown .

1006
demandé sur Betamos 2011-01-28 03:18:11

14 réponses

je crois que toutes les solutions proposées précédemment (à l'exception de celles qui nécessitent des implémentations spécifiques) font en sorte que les commentaires soient inclus dans la sortie HTML, même s'ils ne sont pas affichés.

si vous voulez un commentaire qui est strictement pour vous-même (les lecteurs du document converti ne devraient pas être en mesure de le voir, même avec "view source") vous pouvez (ab)utiliser les étiquettes de lien (à utiliser avec les liens de style de référence) qui sont disponibles dans le core Markdown spécification:

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é de la plate-forme (et pour sauvegarder une touche), il est également possible d'utiliser # (qui est une cible d'hyperlien légitime) au lieu de <> :

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

pour le maximum portabilité il est important d'insérer une ligne blanche avant et après ce type de commentaires, parce que certains analyseurs de Markdown n'établissent pas de liens entre les définitions et le texte habituel. La recherche la plus récente avec Babelmark montre que les lignes vierges avant et après sont tous deux importants. Certains analyseurs afficheront le commentaire s'il n'y a pas de ligne vide avant, et certains analyseurs excluront la ligne suivante s'il n'y a pas de ligne vide après.

En général, cette approche devrait fonctionner avec la plupart des analyseurs Markdown, puisque cela 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é).

1045
répondu Magnus 2018-04-18 09:23:26

j'utilise des balises HTML standard, comme

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

Notez le triple tiret. L'avantage est qu'il fonctionne avec pandoc lors de la génération de sortie TEX ou HTML. De plus amples informations sont disponibles sur le groupe pandoc-discussion .

805
répondu chl 2011-01-28 15:36:00

cette petite recherche prouve et raffine la réponse de Magnus

la syntaxe la plus indépendante de la plateforme est

(empty line)
[comment]: # (This actually is the most platform independent comment)

les deux conditions sont importantes:

  1. utilisant # (et non <> )
  2. Avec une ligne vide avant le commentaire . Ligne vide après le commentaire n'a pas de impact sur le résultat.

La stricte Markdown spécification CommonMark ne fonctionne qu'avec cette syntaxe (et non <> et/ou une ligne vide)

pour le prouver, nous utiliserons le Babelmark2, écrit par John MacFarlane. Cet outil vérifie le rendu d'un code source particulier dans 28 implémentations de Markdown.

( + - a réussi l'essai, - - n'a pas passé, ? - laisse quelques ordures qui n'est pas montré dans rendu HTML).

cela prouve les déclarations ci-dessus.

ces implémentations échouent tous les 7 tests. Il n'y a aucune chance d'utiliser des commentaires exclus-sur-rendu avec eux.

  • cebe / markdown 1.1.0
  • cebe / markdown MarkdownExtra 1.1.0
  • cebe / markdown GFM 1.1.0
  • s9e\TextFormatter (Fatdown/PHP)
128
répondu Nick Volynkin 2018-04-25 05:08:05

si vous utilisez Jekyll ou octopress la suite fonctionnera aussi.

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

les étiquettes liquides {% comment %} sont analysées en premier et enlevées avant même que le processeur MarkDown ne s'y retrouve. Les visiteurs ne verront pas quand ils essaient de voir la source à partir de leur navigateur.

43
répondu uiroshan 2015-08-11 21:05:53

une alternative est de mettre des commentaires dans des balises HTML stylisées. De cette façon, vous pouvez modifier leur visibilité au besoin. Par exemple, définissez une classe de commentaire dans votre feuille de style CSS.

.comment { display: none; }

puis, le MARKDOWN amélioré suivant

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

apparaît comme suit dans un navigateur

We do support comments

32
répondu Stu 2011-02-22 18:11:20

cela fonctionne sur GitHub:

[](Comment text goes here)

le HTML résultant ressemble à:

<a href="Comment%20text%20goes%20here"></a>

Qui est essentiellement un lien vide. Évidemment, vous pouvez le lire dans la source du texte rendu, mais vous pouvez le faire sur GitHub de toute façon.

27
répondu jomo 2015-06-09 13:46:22

Voir Aussi Markup de critique, supporté par un nombre croissant d'outils de 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.
15
répondu Kerim 2015-04-07 15:59:15

Que Diriez-vous de mettre les commentaires dans un bloc non-eval, non-echo r? c'est à dire,

```{r echo=FALSE, eval=FALSE}
All the comments!
```

Semble bien fonctionner pour moi.

11
répondu David Kaufman 2015-11-23 03:19:03

Divulgation: j'ai écrit le plugin.

comme la question ne spécifie pas d'implémentation markdown spécifique , j'aimerais mentionner le Plugin Comments pour python-markdown , qui implémente le même style de commentaire pandoc mentionné ci-dessus.

10
répondu Ryne Everett 2015-04-07 16:21:43
<!--- ... --> 

ne fonctionne pas dans Pandoc Markdown (Pandoc 1.12.2.1). Les commentaires apparaissent toujours en html. Ce qui suit a fonctionné:

Blank line
[^Comment]:  Text that will not appear in html source
Blank line

utilisez ensuite l'extension + footnote. Il s'agit essentiellement d'une note de bas de page, qui n'est jamais mentionné.

9
répondu Brad Porter 2016-07-07 21:26:11

Vim Instant-Markdown les utilisateurs ont besoin d'utiliser

<!---
First comment line...
//
_NO_BLANK_LINES_ARE_ALLOWED_
//
_and_try_to_avoid_double_minuses_like_this_: --
//
last comment line.
-->
8
répondu alex 2016-11-01 18:47:50

pour pandoc, une bonne façon de bloquer les commentaires est d'utiliser un metablock yaml, comme suggéré par l'auteur pandoc . J'ai remarqué que cela donne une syntaxe plus appropriée mettant en évidence les commentaires par rapport à beaucoup d'autres solutions proposées, au moins dans mon environnement ( vim , vim-pandoc , et vim-pandoc-syntax ).

j'utilise les commentaires de bloc de yaml en combinaison avec les commentaires html-inline, depuis html-les commentaires ne peuvent pas être emboîté . Malheureusement , il n'y a aucun moyen de bloc commentant dans le metablock yaml , donc chaque ligne doit être commentée individuellement. Heureusement, il ne devrait y avoir qu'une seule ligne dans un paragraphe contenant un logiciel.

dans mon ~/.vimrc , j'ai mis en place des raccourcis personnalisés pour les commentaires de bloc:

nmap <Leader>b }o<Esc>O...<Esc>{ji#<Esc>O---<Esc>2<down>
nmap <Leader>v {jddx}kdd

j'utilise , comme mon <Leader> -clé, de sorte que ,b et ,v et supprimez les marques de commentaire un paragraphe, respectivement. Si je dois commenter plusieurs paragraphes, je mets j,b sur une macro (habituellement Q ) et j'exécute <number-of-paragraphs><name-of-macro> (par exemple 3Q ). Les mêmes travaux pour décommenter.

5
répondu joelostblom 2017-05-23 11:55:03

kramdown - le moteur markdown basé sur Ruby qui est la valeur par défaut pour Jekyll et donc GitHub Pages - a intégré le support de commentaire à travers sa syntaxe d'extension :

{::comment}
This text is completely ignored by kramdown - a comment in the text.
{:/comment}

Do you see {::comment}this text{:/comment}?
{::comment}some other comment{:/}

ceci a l'avantage de permettre des commentaires en ligne, mais l'inconvénient de ne pas être portable à d'autres moteurs de Markdown.

5
répondu vossad01 2017-02-19 03:42:19

vous pouvez essayer

[](
Your comments go here however you cannot leave
// a blank line so fill blank lines with
//
Something
)
4
répondu magaga 2016-02-01 01:15:17