Rev 5224: Implement intra document references. in file:///home/vila/src/bzr/bugs/219334-texinfo/

Vincent Ladeuil v.ladeuil+lp at free.fr
Fri Jul 9 08:13:35 BST 2010


At file:///home/vila/src/bzr/bugs/219334-texinfo/

------------------------------------------------------------
revno: 5224
revision-id: v.ladeuil+lp at free.fr-20100709071335-am811etf5xsmj8xd
parent: v.ladeuil+lp at free.fr-20100708163003-4ry49f1u14uft2mt
committer: Vincent Ladeuil <v.ladeuil+lp at free.fr>
branch nick: texinfo
timestamp: Fri 2010-07-09 09:13:35 +0200
message:
  Implement intra document references.
  
  * bzrlib/tests/doc_generate/writers/test_texinfo.py:
  (TestReferences): Test reference inside the same document.
  
  * bzrlib/doc_generate/writers/texinfo.py:
  (TexinfoTranslator.depart_reference): Generate @pxref-like
  references.
-------------- next part --------------
=== modified file 'bzrlib/doc_generate/writers/texinfo.py'
--- a/bzrlib/doc_generate/writers/texinfo.py	2010-07-08 16:30:03 +0000
+++ b/bzrlib/doc_generate/writers/texinfo.py	2010-07-09 07:13:35 +0000
@@ -162,15 +162,15 @@
         node.parent.collect_text(''.join(node['text']))
         node.parent.collect_text('@end example\n\n')
 
-    def visit_note(self, node):
-        raise nodes.SkipNode # Not implemented yet
-
     def depart_warning(self, node):
         pass
 
     def visit_warning(self, node):
         raise nodes.SkipNode # Not implemented yet
 
+    def visit_note(self, node):
+        raise nodes.SkipNode # Not implemented yet
+
     def depart_note(self, node):
         pass
 
@@ -449,14 +449,20 @@
         if collect is not None:
             if not self.in_toctree:
                 raise AssertionError('collect_reference is specific to toctree')
-            # FIXME: this handles only the toctree references so far.
             if anchorname is None:
                 anchorname = ''
             if refuri is None:
                 refuri = ''
             collect((anchorname, refuri, text))
         elif refuri is not None:
-           node.parent.collect_text('@uref{%s,%s}' % (refuri, text))
+            node.parent.collect_text('@uref{%s,%s}' % (refuri, text))
+        elif refid is not None:
+            # XXX: refid should exist in self.document.ids
+
+            # Info format requires that a reference is followed by some
+            # punctuation char ('.', ','. ')', etc). Rest is more liberal. To
+            # accommodate, we use pxref inside parenthesis.
+            node.parent.collect_text('%s (@pxref{%s})' % (text, refid))
 
     def visit_footnote_reference(self, node):
         raise nodes.SkipNode # Not implemented yet

=== modified file 'bzrlib/tests/doc_generate/writers/test_texinfo.py'
--- a/bzrlib/tests/doc_generate/writers/test_texinfo.py	2010-07-08 16:30:03 +0000
+++ b/bzrlib/tests/doc_generate/writers/test_texinfo.py	2010-07-09 07:13:35 +0000
@@ -282,7 +282,7 @@
 
 class TestReferences(test_dg.TestSphinx):
 
-    def test_uref(self):
+    def test_external_reference(self):
         self.create_content('''\
 The `example web site`_ is nice.
 
@@ -292,3 +292,18 @@
 The @uref{http://www.example.com/,example web site} is nice.''')
 
 
+    def test_internal_reference(self):
+        self.create_content('''\
+The `example web site`_ contains more examples.
+
+Example web site
+----------------
+
+Here we have a lot of nice examples.
+''')
+        self.assertContent('''\
+The example web site (@pxref{example-web-site}) contains more examples.
+
+ at chapter Example web site
+Here we have a lot of nice examples.''')
+



More information about the bazaar-commits mailing list