diff options
| author | milde <milde@929543f6-e4f2-0310-98a6-ba3bd3dd1d04> | 2009-06-26 20:43:51 +0000 |
|---|---|---|
| committer | milde <milde@929543f6-e4f2-0310-98a6-ba3bd3dd1d04> | 2009-06-26 20:43:51 +0000 |
| commit | faa95dac1d7e13f4f89e4b722e6f00f52499e0f0 (patch) | |
| tree | 8b5a7c416fd6762a874ab1af794cc999773cb048 /docutils/transforms | |
| parent | a83c9789bd36daba5e413fbab810a6b2b65f53b4 (diff) | |
| download | docutils-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.py | 35 |
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 |
