Author: wiemann Date: 2007-08-20 00:35:42 +0200 (Mon, 20 Aug 2007) New Revision: 5410 Added: branches/subdocs/test/test_parsers/test_rst/test_directives/subdocs/subtitle-test.txt Modified: branches/subdocs/docutils/parsers/rst/directives/parts.py branches/subdocs/docutils/transforms/frontmatter.py branches/subdocs/test/test_parsers/test_rst/test_directives/test_subdocs.py Log: do not transform sub-document titles into subtitles; slight clean-up in parts.py Modified: branches/subdocs/docutils/parsers/rst/directives/parts.py =================================================================== --- branches/subdocs/docutils/parsers/rst/directives/parts.py 2007-08-19 22:33:31 UTC (rev 5409) +++ branches/subdocs/docutils/parsers/rst/directives/parts.py 2007-08-19 22:35:42 UTC (rev 5410) @@ -168,7 +168,6 @@ and len(item[0]) == 1 file_name = item[0].astext() subdocument, subdoc_sections = self.read_subdocument(file_name) - self.prepare_subdocument(subdocument) assert len(subdoc_sections) sections += subdoc_sections if len(item) > 1: @@ -227,10 +226,6 @@ subdocument = subdoc_reader.read( source=source, parser=Parser(subdoc_reader), settings=subdoc_settings) - # Get ID's used by sub-document back into current document. - for id in subdocument.ids: - if subdocument.ids[id] is not None: - self.state_machine.document.ids[id] = subdocument.ids[id] if len(subdocument) >= 1 and isinstance(subdocument[0], nodes.title): # Single document title. attributes = {} @@ -242,7 +237,7 @@ **attributes) for id in attributes['ids']: subdocument.ids[id] = section - return subdocument, [section] + sections = [section] elif (# at least one section: [n for n in subdocument if isinstance(n, nodes.section)] # only sections and transitions: @@ -256,21 +251,18 @@ for id in subdocument['ids']: sections[0]['ids'].append(id) subdocument.ids[id] = sections[0] - return subdocument, sections else: raise self.error( 'Error with "%s" directive, file "%s": a sub-document must ' 'either have a single document-title, or it must consist of ' 'one or more top-level sections and optionally transitions.' % (self.name, file_name)) - - def prepare_subdocument(self, subdocument): - """Miscellaneous operations on the sub-document after parsing it.""" # Update the master document's ID's. self.state_machine.document.ids.update(subdocument.ids) # Remove decoration (header and footer). for node in subdocument.traverse(nodes.decoration): node.parent.remove(node) + return subdocument, sections class DocsetRoot(Directive): Modified: branches/subdocs/docutils/transforms/frontmatter.py =================================================================== --- branches/subdocs/docutils/transforms/frontmatter.py 2007-08-19 22:33:31 UTC (rev 5409) +++ branches/subdocs/docutils/transforms/frontmatter.py 2007-08-19 22:35:42 UTC (rev 5410) @@ -68,7 +68,7 @@ """ Transform the following node tree:: - <node> + <section> <title> <section> <title> @@ -76,7 +76,7 @@ into :: - <node> + <section> <title> <subtitle> ... @@ -112,8 +112,8 @@ """ index = node.first_child_not_matching_class( nodes.PreBibliographic) - if index is None or len(node) > (index + 1) or \ - not isinstance(node[index], nodes.section): + if index is None or len(node) > (index + 1) or not isinstance( + node[index], nodes.section) or node[index].has_key('source'): return None, None else: return node[index], index Added: branches/subdocs/test/test_parsers/test_rst/test_directives/subdocs/subtitle-test.txt =================================================================== --- branches/subdocs/test/test_parsers/test_rst/test_directives/subdocs/subtitle-test.txt 2007-08-19 22:33:31 UTC (rev 5409) +++ branches/subdocs/test/test_parsers/test_rst/test_directives/subdocs/subtitle-test.txt 2007-08-19 22:35:42 UTC (rev 5410) @@ -0,0 +1,16 @@ +================================== + A Sub-Document With a Title Only +================================== + +.. docset-root:: . +.. subdocs:: + + * single-1.txt +================================== + A Sub-Document With a Title Only +================================== + +.. docset-root:: . +.. subdocs:: + + * single-1.txt Property changes on: branches/subdocs/test/test_parsers/test_rst/test_directives/subdocs/subtitle-test.txt ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native Modified: branches/subdocs/test/test_parsers/test_rst/test_directives/test_subdocs.py =================================================================== --- branches/subdocs/test/test_parsers/test_rst/test_directives/test_subdocs.py 2007-08-19 22:33:31 UTC (rev 5409) +++ branches/subdocs/test/test_parsers/test_rst/test_directives/test_subdocs.py 2007-08-19 22:35:42 UTC (rev 5410) @@ -144,6 +144,23 @@ <paragraph> Document contents. """ % paths], +["""\ +.. docset-root:: %(docset-root)s +.. subdocs:: + + * subtitle-test.txt +""" % paths, # The "Document 1" title must not become a subtitle: +"""\ +<document docset_root="%(docset-root)s" source="test data"> + <section ids="a-sub-document-with-a-title-only" names="a\\ sub-document\\ with\\ a\\ title\\ only" source="%(subtitle-test.txt)s"> + <title> + A Sub-Document With a Title Only + <section ids="document-1" names="document\\ 1" source="%(single-1.txt)s"> + <title> + Document 1 + <paragraph> + Contents of document 1. +""" % paths], ] totest['subdocs-errors'] = [ |