summaryrefslogtreecommitdiff
path: root/docutils/transforms
diff options
context:
space:
mode:
authorgoodger <goodger@929543f6-e4f2-0310-98a6-ba3bd3dd1d04>2002-07-24 01:40:14 +0000
committergoodger <goodger@929543f6-e4f2-0310-98a6-ba3bd3dd1d04>2002-07-24 01:40:14 +0000
commit0ef0fd6e65f2ac5221a125f6c2aa2e6d6340e8de (patch)
treeb402d6920f4f484da9769e5805e3d65cbd2173e1 /docutils/transforms
parent54a26a7452be9b2e0f5f0404d383e244fec5376a (diff)
downloaddocutils-0ef0fd6e65f2ac5221a125f6c2aa2e6d6340e8de.tar.gz
Support for optional TOC backlinks.
git-svn-id: http://svn.code.sf.net/p/docutils/code/trunk/docutils@358 929543f6-e4f2-0310-98a6-ba3bd3dd1d04
Diffstat (limited to 'docutils/transforms')
-rw-r--r--docutils/transforms/parts.py28
1 files changed, 18 insertions, 10 deletions
diff --git a/docutils/transforms/parts.py b/docutils/transforms/parts.py
index d109d3552..5c778fb12 100644
--- a/docutils/transforms/parts.py
+++ b/docutils/transforms/parts.py
@@ -49,19 +49,24 @@ class Contents(Transform):
startnode = self.document
if not title:
title = nodes.title('', self.language.labels['contents'])
+ if title:
+ name = title.astext()
+ topic += title
+ else:
+ name = self.language.labels['contents']
+ name = utils.normalize_name(name)
+ if not self.document.has_name(name):
+ topic['name'] = name
+ self.document.note_implicit_target(topic)
+ self.toc_id = topic['id']
+ if self.startnode.details.has_key('backlinks'):
+ self.backlinks = self.startnode.details['backlinks']
+ else:
+ self.backlinks = self.document.options.toc_backlinks
contents = self.build_contents(startnode)
if len(contents):
- if title:
- name = title.astext()
- topic += title
- else:
- name = self.language.labels['contents']
topic += contents
self.startnode.parent.replace(self.startnode, topic)
- name = utils.normalize_name(name)
- if not self.document.has_name(name):
- topic['name'] = name
- self.document.note_implicit_target(topic)
else:
self.startnode.parent.remove(self.startnode)
@@ -83,7 +88,10 @@ class Contents(Transform):
entry = nodes.paragraph('', '', reference)
item = nodes.list_item('', entry)
itemid = self.document.set_id(item)
- title['refid'] = itemid
+ if self.backlinks == 'entry':
+ title['refid'] = itemid
+ elif self.backlinks == 'top':
+ title['refid'] = self.toc_id
if level < depth:
subsects = self.build_contents(section, level)
item += subsects