[Python-checkins] r66591 - in doctools/trunk: CHANGES doc/markup/inline.rst sphinx/environment.py

georg.brandl python-checkins at python.org
Wed Sep 24 17:36:35 CEST 2008


Author: georg.brandl
Date: Wed Sep 24 17:36:34 2008
New Revision: 66591

Log:
#16: allow referring to figures without explicit text.


Modified:
   doctools/trunk/CHANGES
   doctools/trunk/doc/markup/inline.rst
   doctools/trunk/sphinx/environment.py

Modified: doctools/trunk/CHANGES
==============================================================================
--- doctools/trunk/CHANGES	(original)
+++ doctools/trunk/CHANGES	Wed Sep 24 17:36:34 2008
@@ -9,7 +9,8 @@
   - Incompatible change: The "root" relation link (top left in the
     relbar) now points to the ``master_doc`` by default, no longer to a
     document called "index".  The old behavior, while useful in some
-    situations, was somewhat unexpected.
+    situations, was somewhat unexpected.  Override the "rootrellink"
+    block in the template to customize where it refers to.
 
   - The JavaScript search now searches for objects before searching in
     the full text.
@@ -96,6 +97,9 @@
 
   - Glossary entries are now automatically added to the index.
 
+  - Figures with captions can now be referred to like section titles,
+    using the ``:ref:`` role without an explicit link text.
+
 
 Release 0.4.2 (Jul 29, 2008)
 ============================

Modified: doctools/trunk/doc/markup/inline.rst
==============================================================================
--- doctools/trunk/doc/markup/inline.rst	(original)
+++ doctools/trunk/doc/markup/inline.rst	Wed Sep 24 17:36:34 2008
@@ -205,6 +205,17 @@
   title being "Section to cross-reference".  This works just as well when
   section and reference are in different source files.
 
+  Automatic labels also work with figures: given ::
+
+     .. _my-figure:
+
+     .. figure:: whatever
+
+        Figure caption
+
+  a reference ``:ref:`my-figure``` would insert a reference to the figure with
+  link text "Figure caption".
+
 * Labels that aren't placed before a section title can still be referenced to,
   but you must give the link an explicit title, using this syntax: ``:ref:`Link
   title <label-name>```.

Modified: doctools/trunk/sphinx/environment.py
==============================================================================
--- doctools/trunk/sphinx/environment.py	(original)
+++ doctools/trunk/sphinx/environment.py	Wed Sep 24 17:36:34 2008
@@ -658,10 +658,18 @@
                           'other instance in %s' % self.doc2path(self.labels[name][0]),
                           node.line)
             self.anonlabels[name] = docname, labelid
-            if not isinstance(node, nodes.section):
+            if node.tagname == 'section':
+                sectname = node[0].astext() # node[0] == title node
+            elif node.tagname == 'figure':
+                for n in node:
+                    if n.tagname == 'caption':
+                        sectname = n.astext()
+                        break
+                else:
+                    continue
+            else:
                 # anonymous-only labels
                 continue
-            sectname = node[0].astext() # node[0] == title node
             self.labels[name] = docname, labelid, sectname
 
     def note_indexentries_from(self, docname, document):


More information about the Python-checkins mailing list