22

I'm writing some documentation with Sphinx and I'd like to print out a certain block of text only for HTML documentation, not for LaTeX documentation. Something tells me I should be able to do this with sphinx.ext.ifconfig but I can't figure out how. Does anyone know how to do this?

bad_coder
  • 11,289
  • 20
  • 44
  • 72
astrofrog
  • 32,883
  • 32
  • 90
  • 131

1 Answers1

29

No extension is required. Just use the only directive.

(old link, from original 2010 post)
https://web.archive.org/web/20100129001557/http://sphinx.pocoo.org/markup/misc.html#including-content-based-on-tags

(latest link)
https://www.sphinx-doc.org/en/master/usage/restructuredtext/directives.html#including-content-based-on-tags

It works like this:

.. only:: latex

    The stuff in here only appears in the latex output.

.. only:: html

    The stuff in this block only appears in the HTML output. It's
    often useful to use this directive with it:

    .. raw:: html

        It's good for embedding stuff, like video.
Gino Mempin
  • 25,369
  • 29
  • 96
  • 135
ddbeck
  • 3,855
  • 2
  • 28
  • 22
  • Is it possible to discern between `singlehtml` and `html` ? – Carel Jan 11 '17 at 20:25
  • @Carel yes, with Sphinx 1.2 and later, you can distinguish between `html` and `singlehtml` by using the explicit builder tags `builder_html` and `builder_singlehtml`. – ddbeck Jan 19 '17 at 19:58
  • could you please take a look at a similar question. http://stackoverflow.com/questions/42798152/adding-custom-tag-in-sphinx – Learner Mar 15 '17 at 00:17
  • The link to the Sphinx doc on `only` is dead. See: https://www.sphinx-doc.org/en/master/usage/restructuredtext/directives.html#including-content-based-on-tags – Gino Mempin Apr 22 '20 at 23:58