diff options
| author | goodger <goodger@929543f6-e4f2-0310-98a6-ba3bd3dd1d04> | 2002-07-24 01:40:14 +0000 |
|---|---|---|
| committer | goodger <goodger@929543f6-e4f2-0310-98a6-ba3bd3dd1d04> | 2002-07-24 01:40:14 +0000 |
| commit | 0ef0fd6e65f2ac5221a125f6c2aa2e6d6340e8de (patch) | |
| tree | b402d6920f4f484da9769e5805e3d65cbd2173e1 /docutils/transforms | |
| parent | 54a26a7452be9b2e0f5f0404d383e244fec5376a (diff) | |
| download | docutils-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.py | 28 |
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 |
