1 | # Author: Martin Blais |
---|
2 | # Contact: blais@furius.ca |
---|
3 | # Revision: $Revision: 4006 $ |
---|
4 | # Date: $Date: 2005-11-08 03:38:20 +0100 (Tue, 08 Nov 2005) $ |
---|
5 | # Copyright: This module has been placed in the public domain. |
---|
6 | |
---|
7 | """Reader for existing document trees.""" |
---|
8 | |
---|
9 | from docutils import readers, utils, transforms |
---|
10 | |
---|
11 | |
---|
12 | class Reader(readers.ReReader): |
---|
13 | |
---|
14 | """ |
---|
15 | Adapt the Reader API for an existing document tree. |
---|
16 | |
---|
17 | The existing document tree must be passed as the ``source`` parameter to |
---|
18 | the `docutils.core.Publisher` initializer, wrapped in a |
---|
19 | `docutils.io.DocTreeInput` object:: |
---|
20 | |
---|
21 | pub = docutils.core.Publisher( |
---|
22 | ..., source=docutils.io.DocTreeInput(document), ...) |
---|
23 | |
---|
24 | The original document settings are overridden; if you want to use the |
---|
25 | settings of the original document, pass ``settings=document.settings`` to |
---|
26 | the Publisher call above. |
---|
27 | """ |
---|
28 | |
---|
29 | supported = ('doctree',) |
---|
30 | |
---|
31 | config_section = 'doctree reader' |
---|
32 | config_section_dependencies = ('readers',) |
---|
33 | |
---|
34 | def parse(self): |
---|
35 | """ |
---|
36 | No parsing to do; refurbish the document tree instead. |
---|
37 | Overrides the inherited method. |
---|
38 | """ |
---|
39 | self.document = self.input |
---|
40 | # Create fresh Transformer object, to be populated from Writer |
---|
41 | # component. |
---|
42 | self.document.transformer = transforms.Transformer(self.document) |
---|
43 | # Replace existing settings object with new one. |
---|
44 | self.document.settings = self.settings |
---|
45 | # Create fresh Reporter object because it is dependent on |
---|
46 | # (new) settings. |
---|
47 | self.document.reporter = utils.new_reporter( |
---|
48 | self.document.get('source', ''), self.document.settings) |
---|