How to comment a string in restructured text?

39,192

Solution 1

From the reference:

Arbitrary indented text may follow the explicit markup start and will be processed as a comment element.

..
   _This: is a comment!

..
   [and] this!

..
   this:: too!

..
   |even| this:: !

It is also possible to put the comment on the same line as the double dots:

.. Avoid this type of comment

This is however considered bad practice since it may lead to unintended consequences if the comment matches a proper markup construct, as pointed out by @CecilCurry in the comment below.

Solution 2

For comments, add 2 periods .. followed by a newline and then your comment indented.

Example:

..
  comment goes here

Solution 3

I came across this thread, looking for a more defined way to place comments in restructuredtext. Personally, I also of course don't like the one-liner .. this is a comment. To keep comments searchable and recognizable, I propose to consider using

.. only:: comment

    This is a comment

As documented (http://www.sphinx-doc.org/en/master/usage/restructuredtext/directives.html): "Undefined tags are false", such as comment.

Alternatively, one could write an extension in the style of todo, allowing syntax, such as

.. comment::
    This is a comment

Doing so without such extension of course gives error messages from the builder. But with such extension, just like todo, it would be possible to extract a list of comments from a document.

Solution 4

Please forgive this duplicative answer cos I'm trying to help RST newbies like me. My answer shows the CONTEXT of a comment.

I naively tried marking a line in my RST document using the answer above, DO NOT DO THIS:

    Lorem ipsum dolor sit amet, consectetur adipiscing elit.
    .. Hi everyone this line will never be seen
    Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Sphinx (or other RST formatter) will not complain, but "hi everyone" will appear in the output. Instead place a blank line before and after your comment like this:

    Lorem ipsum dolor sit amet, consectetur adipiscing elit.

    .. 
        comment Hi everyone this line will never be seen

    Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

But the downside of this is that the paragraph is ended then restarted, so you will have whitespace between.

I have not found any equivalent in RST for the C /* */ or HTML <!-- --> comment syntax that can make some text vanish totally.

Share:
39,192

Related videos on Youtube

prosseek
Author by

prosseek

A software engineer/programmer/researcher/professor who loves everything about software building. Programming Language: C/C++, D, Java/Groovy/Scala, C#, Objective-C, Python, Ruby, Lisp, Prolog, SQL, Smalltalk, Haskell, F#, OCaml, Erlang/Elixir, Forth, Rebol/Red Programming Tools and environments: Emacs, Eclipse, TextMate, JVM, .NET Programming Methodology: Refactoring, Design Patterns, Agile, eXtreme Computer Science: Algorithm, Compiler, Artificial Intelligence

Updated on July 05, 2022

Comments

  • prosseek
    prosseek almost 2 years

    The comment of HTML is <!-- .. -->, how can I make this comment block with restructured text? In order words, how can I comment out some of the lines in restructured text?

  • Nathaniel M. Beaver
    Nathaniel M. Beaver almost 8 years
    This answer would be better with an example.
  • Cecil Curry
    Cecil Curry almost 8 years
    This is an awful answer. The conditionality of reStructuredText comments overly complicates matters. A pithy "RTFM" followed by a single-line quote does not suffice here. What does and does not constitute a valid comment lexically depends on the content of that comment and the syntax used to specify that comment. It's non-trivial, non-obvious, and tragically fragile.
  • Cecil Curry
    Cecil Curry almost 8 years
    As an addendum to this helpful answer, the first form (i.e., ".. This is a comment") should never be used in practice. Basically, considered harmful. Why? Because conditionality. Any comment defined in this way whose first line matches the syntax of any existing explicit markup construct (e.g., citation, directive, footnote, substitution) will be silently reinterpreted as that construct rather than as a comment – which is horrible. To prevent this, unconditionally prefix all comments with a single-line ".." statement as in the remainder of the above examples.
  • JFlo
    JFlo over 6 years
    Given what Cecil Curry has stated, it would be very nice if @jball would revise his example to show an ideal form first so I needn't read all the fine print just to put a stinkin' comment in my reST. Also, I already assume I can put whatever I want into a comment, so all the extra symbols in the other examples only serve to complicate an otherwise simple answer ... unless those are relevant. Are they?
  • mhsmith
    mhsmith about 6 years
    @CecilCurry: Just like everything else in RST then.
  • Anthon
    Anthon almost 6 years
    @CecilCurry Thanks for your insight, I corrected my ryd documentation with that (And so we meet again!)
  • sygibson
    sygibson about 4 years
    @mhsmith - every language has it structures and syntax rules. RST is not immune to this immutable law.
  • Kermit
    Kermit over 3 years
    So is line_1.. with line_2 This is a comment fine? That is to say, could you delete the _ and : from line_2 of your first example? It runs fine, but not sure implications.
  • pepoluan
    pepoluan over 3 years
    What about using .. .. ? (dot dot space dot dot space) I've been using that on my .rst files...