There is a `graph drawing Sphinx extension <http://sphinx.pocoo.org/ext/graphviz.html>`_ based on `Graphviz
<http://graphviz.org/>`_.

Unfortunately there was not enough space here to display the full Javascript
    functions, but you can view `the full template here`_ to see how one might
    implement this functionality. See <warning descr="Unknown target name 'template'">`template`_</warning>

.. _`the full template here`: http://django-threadedcomments.googlecode.com/svn/trunk/examples/tut1/blog/templates/blog/latest_post.html

See `the web site of my favorite programming language`__.
See `programming language`__.

.. __: http://www.python.org

.. __: http://www.pythonic.org

See <warning descr="Unknown target name 'template1'">template1_</warning>

See `template2`_

.. _template2: http://www.template.org


.. PY-3922

reference `this is a very long
link target`_

reference <warning descr="Unknown target name 'this is a very long  link target'">`this is a very long

link target`_</warning>

.. _this is a very long link target: http://www.template.org

.. PY-3923


<warning descr="Unknown target name '\_.each'">`\\_.each`_</warning>

`_.each`_

.. _\_.each: http://underscore.html