/[navidoc]/navidoc/navidoc/writers/__init__.py
ViewVC logotype

Diff of /navidoc/navidoc/writers/__init__.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.3 by humppake, Tue Apr 1 13:54:10 2003 UTC revision 1.4 by humppake, Thu Apr 10 09:20:43 2003 UTC
# Line 1  Line 1 
1  #  #
2  # Copyright (c) 2003 Asko Soukka  # Copyright (c) 2003 Asko Soukka, Benja Fallenstein
3  #  #
4  # This file is part of Navidoc.  # This file is part of Navidoc.
5  #  #
# Line 22  Line 22 
22  # $Id$  # $Id$
23    
24  #  #
25  # Written by Asko Soukka  # Written by Asko Soukka, Benja Fallenstein
26  #  #
27    
28  __docformat__ = 'reStructuredText'  __docformat__ = 'reStructuredText'
# Line 34  from docutils.writers import _writer_ali Line 34  from docutils.writers import _writer_ali
34    
35  _writer_modules = {}  _writer_modules = {}
36  _writer_aliases['latex'] = 'latex2e'  _writer_aliases['latex'] = 'latex2e'
37  _writer_modules['latex'] = 'navidoc.writers'  _writer_modules['latex2e'] = 'navidoc.writers'
38    
39    # Replacing existing: Allows writers from different modules
40  def get_writer_class(writer_name):  def get_writer_class(writer_name):
41      """Return the Writer class from the `writer_name` module."""      """Return the Writer class from the `writer_name` module."""
42      writer_name = writer_name.lower()      writer_name = writer_name.lower()
# Line 44  def get_writer_class(writer_name): Line 45  def get_writer_class(writer_name):
45      if _writer_modules.has_key(writer_name):      if _writer_modules.has_key(writer_name):
46          writer_module = _writer_modules[writer_name]          writer_module = _writer_modules[writer_name]
47      else: writer_module = 'docutils.writers'      else: writer_module = 'docutils.writers'
48      module = __import__(writer_name, globals(), locals(), writer_module)      module = __import__(writer_module, globals(), locals(), [writer_name])
49        module = getattr(module, writer_name)
50      return module.Writer      return module.Writer
51    
52  docutils.writers.get_writer_class = get_writer_class  docutils.writers.get_writer_class = get_writer_class
53    
54    # Replacing existing: Avoiding "unknown target" warnings with latex writer
55    # ***ugly***
56    import docutils.transforms.universal, docutils.nodes
57    class FinalCheckVisitor(docutils.transforms.universal.FinalCheckVisitor):
58        def visit_citation_reference(self, node):
59            if node.resolved or not node.hasattr('refname'):
60                return
61            refname = node['refname']
62            id = self.document.nameids.get(refname)
63            if id is None:
64                # Instead of complaining when a reference is not included
65                # (i.e., there's no '.. [gzz] bla' for a '[gzz]_'),
66                # we insert the missing node, empty.
67    
68                # Note: I don't really know what I'm doing here,
69                # just poking around and guessing which variables
70                # contain which things...
71    
72                id = refname
73                xnode = docutils.nodes.reference(refid=refname)
74                #node += xnode
75                self.document.ids[id] = xnode
76                self.document.nameids[refname] = refname
77    
78            del node['refname']
79            node['refid'] = id
80            self.document.ids[id].referenced = 1
81            node.resolved = 1
82                
83            ##    msg = self.document.reporter.error(
84            ##          'Unknown target name: "%s".' % (node['refname']),
85            ##          base_node=node)
86            ##    msgid = self.document.set_id(msg)
87            ##    prb = nodes.problematic(
88            ##          node.rawsource, node.rawsource, refid=msgid)
89            ##    prbid = self.document.set_id(prb)
90            ##    msg.add_backref(prbid)
91            ##    node.parent.replace(node, prb)
92            ##else:
93            ##    del node['refname']
94            ##    node['refid'] = id
95            ##    self.document.ids[id].referenced = 1
96            ##    node.resolved = 1
97    docutils.transforms.universal.FinalCheckVisitor = FinalCheckVisitor

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26