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