summaryrefslogtreecommitdiff
path: root/docutils/transforms
diff options
context:
space:
mode:
authormilde <milde@929543f6-e4f2-0310-98a6-ba3bd3dd1d04>2009-06-26 20:43:51 +0000
committermilde <milde@929543f6-e4f2-0310-98a6-ba3bd3dd1d04>2009-06-26 20:43:51 +0000
commitfaa95dac1d7e13f4f89e4b722e6f00f52499e0f0 (patch)
tree8b5a7c416fd6762a874ab1af794cc999773cb048 /docutils/transforms
parenta83c9789bd36daba5e413fbab810a6b2b65f53b4 (diff)
downloaddocutils-faa95dac1d7e13f4f89e4b722e6f00f52499e0f0.tar.gz
Better conformance to Docutils specifications with "use_latex_toc".
git-svn-id: http://svn.code.sf.net/p/docutils/code/trunk/docutils@5998 929543f6-e4f2-0310-98a6-ba3bd3dd1d04
Diffstat (limited to 'docutils/transforms')
-rw-r--r--docutils/transforms/parts.py35
1 files changed, 22 insertions, 13 deletions
diff --git a/docutils/transforms/parts.py b/docutils/transforms/parts.py
index 64de5b5da..64dc721f6 100644
--- a/docutils/transforms/parts.py
+++ b/docutils/transforms/parts.py
@@ -30,12 +30,25 @@ class SectNum(Transform):
"""Should be applied before `Contents`."""
def apply(self):
+ try: # leave section numbering to the writer?
+ numbering_by_writer = self.document.settings.use_latex_toc
+ except AttributeError:
+ numbering_by_writer = False
+ #
self.maxdepth = self.startnode.details.get('depth', sys.maxint)
self.startvalue = self.startnode.details.get('start', 1)
self.prefix = self.startnode.details.get('prefix', '')
self.suffix = self.startnode.details.get('suffix', '')
self.startnode.parent.remove(self.startnode)
- if self.document.settings.sectnum_xform:
+ if numbering_by_writer:
+ if self.document.settings.sectnum_xform:
+ self.document.settings.sectnum_depth = self.maxdepth
+ else:
+ self.document.settings.sectnum_depth = 0
+ self.document.settings.sectnum_start = self.startvalue
+ self.document.settings.sectnum_prefix = self.prefix
+ self.document.settings.sectnum_suffix = self.suffix
+ elif self.document.settings.sectnum_xform:
self.update_section_numbers(self.document)
def update_section_numbers(self, node, prefix=(), depth=0):
@@ -79,14 +92,10 @@ class Contents(Transform):
default_priority = 720
def apply(self):
- # build a contents list from the section headings?
- # if False, the writer (or output software) builds the contents list
- # Example: the LaTeX writer with option "use-latex-toc".
- try:
- build = not(self.document.settings.use_latex_toc)
+ try: # let the writer (or output software) build the contents list?
+ toc_by_writer = self.document.settings.use_latex_toc
except AttributeError:
- build = True
-
+ toc_by_writer = False
details = self.startnode.details
if 'local' in details:
startnode = self.startnode.parent.parent
@@ -101,16 +110,16 @@ class Contents(Transform):
self.backlinks = details['backlinks']
else:
self.backlinks = self.document.settings.toc_backlinks
- if build:
+ if toc_by_writer:
+ # move customization settings to the parent node
+ self.startnode.parent.attributes.update(details)
+ self.startnode.parent.remove(self.startnode)
+ else:
contents = self.build_contents(startnode)
if len(contents):
self.startnode.replace_self(contents)
else:
self.startnode.parent.parent.remove(self.startnode.parent)
- else:
- # pass customization settings to the parent node
- self.startnode.parent.attributes.update(details)
- self.startnode.parent.remove(self.startnode)
def build_contents(self, node, level=0):
level += 1