SEESenv/scripts/docbook.py
author amit@thunder
Mon, 12 Apr 2010 04:08:23 +0530
changeset 48 c9990f63505d
permissions -rw-r--r--
Library for docbook conversion taken from docutils sandbox ... patches done on it by me
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
48
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
     1
#!/usr/bin/env python
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
     2
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
     3
"""
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
     4
:Author: Ollie Rutherfurd
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
     5
:Contact: oliver@rutherfurd.net
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
     6
:Revision: $Revision: 5918 $
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
     7
:Date: $Date: 2009-04-23 04:45:57 +0200 (Don, 23 Apr 2009) $
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
     8
:Copyright: This module has been placed in the public domain.
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
     9
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    10
DocBook XML document tree Writer.
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    11
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    12
This Writer converts a reST document tree to a subset
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    13
of DocBook.
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    14
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    15
**This is an unfinished work in progress.**
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    16
"""
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    17
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    18
__docformat__ = 'reStructuredText'
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    19
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    20
import re
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    21
import string
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    22
from docutils import writers, nodes, languages
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    23
from types import ListType
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    24
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    25
class Writer(writers.Writer):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    26
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    27
    settings_spec = (
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    28
        'DocBook-Specific Options',
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    29
        None,
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    30
        (('Set DocBook document type. '
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    31
            'Choices are "article", "book", and "chapter". '
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    32
            'Default is "article".',
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    33
            ['--doctype'],
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    34
            {'default': 'chapter', 
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    35
             'metavar': '<name>',
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    36
             'type': 'choice', 
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    37
             'choices': ('article', 'book', 'chapter',)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    38
            }
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    39
         ),
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    40
        )
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    41
    )
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    42
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    43
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    44
    """DocBook does it's own section numbering"""
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    45
    settings_default_overrides = {'enable_section_numbering': 0}
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    46
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    47
    output = None
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    48
    """Final translated form of `document`."""
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    49
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    50
    def translate(self):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    51
        visitor = DocBookTranslator(self.document)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    52
        self.document.walkabout(visitor)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    53
        self.output = visitor.astext()
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    54
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    55
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    56
class DocBookTranslator(nodes.NodeVisitor):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    57
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    58
    XML_DECL = '<?xml version="1.0" encoding="%s"?>\n'
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    59
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    60
    DOCTYPE_DECL = """<!DOCTYPE %s 
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    61
        PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    62
        "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">\n"""
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    63
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    64
    def __init__(self, document):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    65
        nodes.NodeVisitor.__init__(self, document)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    66
        self.language = languages.get_language(
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    67
            document.settings.language_code)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    68
        self.doctype = document.settings.doctype
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    69
        self.doc_header = [
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    70
            self.XML_DECL % (document.settings.output_encoding,),
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    71
            self.DOCTYPE_DECL % (self.doctype,),
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    72
            '<%s>\n' % (self.doctype,),
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    73
        ]
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    74
        self.doc_footer = [
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    75
            '</%s>\n' % (self.doctype,)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    76
        ]
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    77
        self.body = []
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    78
        self.section = 0
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    79
        self.context = []
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    80
        self.colnames = []
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    81
        self.footnotes = {}
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    82
        self.footnote_map = {}
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    83
        self.docinfo = []
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    84
        self.title = ''
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    85
        self.subtitle = ''
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    86
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    87
    def astext(self):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    88
        return ''.join(self.doc_header
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    89
                    + self.docinfo
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    90
                    + self.body
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    91
                    + self.doc_footer)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    92
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    93
    def encode(self, text):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    94
        """Encode special characters in `text` & return."""
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    95
        # @@@ A codec to do these and all other 
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    96
        # HTML entities would be nice.
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    97
        text = text.replace("&", "&amp;")
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    98
        text = text.replace("<", "&lt;")
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
    99
        text = text.replace('"', "&quot;")
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   100
        text = text.replace(">", "&gt;")
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   101
        return text
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   102
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   103
    def encodeattr(self, text):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   104
        """Encode attributes characters > 128 as &#XXX;"""
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   105
        buff = []
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   106
        for c in text:
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   107
            if ord(c) >= 128:
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   108
                buff.append('&#%d;' % ord(c))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   109
            else:
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   110
                buff.append(c)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   111
        return ''.join(buff)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   112
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   113
    def rearrange_footnotes(self):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   114
        """
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   115
        Replaces ``foonote_reference`` placeholders with
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   116
        ``footnote`` element content as DocBook and reST
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   117
        handle footnotes differently.
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   118
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   119
        DocBook defines footnotes inline, whereas they
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   120
        may be anywere in reST.  This function replaces the 
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   121
        first instance of a ``footnote_reference`` with 
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   122
        the ``footnote`` element itself, and later 
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   123
        references of the same a  footnote with 
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   124
        ``footnoteref`` elements.
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   125
        """
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   126
        for (footnote_id,refs) in self.footnote_map.items():
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   127
            ref_id, context, pos = refs[0]
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   128
            context[pos] = ''.join(self.footnotes[footnote_id])
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   129
            for ref_id, context, pos in refs[1:]:
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   130
                context[pos] = '<footnoteref linkend="%s"/>' \
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   131
                    % (footnote_id,)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   132
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   133
    def attval(self, text,
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   134
               transtable=string.maketrans('\n\r\t\v\f', '     ')):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   135
        """Cleanse, encode, and return attribute value text."""
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   136
        return self.encode(text.translate(transtable))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   137
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   138
    def starttag(self, node, tagname, suffix='\n', infix='', **attributes):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   139
        """
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   140
        Construct and return a start tag given a node 
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   141
        (id & class attributes are extracted), tag name, 
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   142
        and optional attributes.
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   143
        """
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   144
        atts = {}
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   145
        for (name, value) in attributes.items():
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   146
            atts[name.lower()] = value
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   147
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   148
        for att in ('id',):             # node attribute overrides
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   149
            if node.has_key(att):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   150
                atts[att] = node[att]
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   151
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   152
        attlist = atts.items()
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   153
        attlist.sort()
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   154
        parts = [tagname.lower()]
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   155
        for name, value in attlist:
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   156
            if value is None:           # boolean attribute
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   157
                # this came from the html writer, but shouldn't
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   158
                # apply here, as an element with no attribute
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   159
                # isn't well-formed XML.
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   160
                parts.append(name.lower())
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   161
            elif isinstance(value, ListType):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   162
                values = [str(v) for v in value]
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   163
                parts.append('%s="%s"' % (name.lower(),
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   164
                                          self.attval(' '.join(values))))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   165
            else:
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   166
                name = self.encodeattr(name.lower())
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   167
                value = str(self.encodeattr(unicode(value)))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   168
                value = self.attval(value)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   169
                parts.append('%s="%s"' % (name,value))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   170
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   171
        return '<%s%s>%s' % (' '.join(parts), infix, suffix)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   172
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   173
    def emptytag(self, node, tagname, suffix='\n', **attributes):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   174
        """Construct and return an XML-compatible empty tag."""
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   175
        return self.starttag(node, tagname, suffix, infix=' /', **attributes)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   176
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   177
    def visit_Text(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   178
        self.body.append(self.encode(node.astext()))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   179
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   180
    def depart_Text(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   181
        pass
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   182
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   183
    def visit_address(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   184
        # handled by visit_docinfo
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   185
        pass
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   186
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   187
    def depart_address(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   188
        # handled by visit_docinfo
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   189
        pass
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   190
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   191
    def visit_admonition(self, node, name=''):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   192
        self.body.append(self.starttag(node, 'note'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   193
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   194
    def depart_admonition(self, node=None):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   195
        self.body.append('</note>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   196
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   197
    def visit_attention(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   198
        self.body.append(self.starttag(node, 'note'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   199
        self.body.append('\n<title>%s</title>\n' 
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   200
            % (self.language.labels[node.tagname],))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   201
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   202
    def depart_attention(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   203
        self.body.append('</note>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   204
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   205
    def visit_attribution(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   206
        # attribution must precede blockquote content
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   207
        if isinstance(node.parent, nodes.block_quote):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   208
            raise nodes.SkipNode
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   209
        self.body.append(self.starttag(node, 'attribution', ''))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   210
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   211
    def depart_attribution(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   212
        # attribution must precede blockquote content
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   213
        if not isinstance(node.parent, nodes.block_quote):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   214
            self.body.append('</attribution>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   215
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   216
    # author is handled in ``visit_docinfo()``
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   217
    def visit_author(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   218
        raise nodes.SkipNode
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   219
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   220
    # authors is handled in ``visit_docinfo()``
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   221
    def visit_authors(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   222
        raise nodes.SkipNode
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   223
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   224
    def visit_block_quote(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   225
        self.body.append(self.starttag(node, 'blockquote'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   226
        if isinstance(node[-1], nodes.attribution):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   227
            self.body.append('<attribution>%s</attribution>\n' % node[-1].astext())
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   228
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   229
    def depart_block_quote(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   230
        self.body.append('</blockquote>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   231
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   232
    def visit_bullet_list(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   233
        self.body.append(self.starttag(node, 'itemizedlist'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   234
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   235
    def depart_bullet_list(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   236
        self.body.append('</itemizedlist>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   237
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   238
    def visit_caption(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   239
        # NOTE: ideally, this should probably be stuffed into
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   240
        # the mediaobject as a "caption" element
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   241
        self.body.append(self.starttag(node, 'para'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   242
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   243
    def depart_caption(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   244
        self.body.append('</para>')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   245
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   246
    def visit_caution(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   247
        self.body.append(self.starttag(node, 'caution'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   248
        self.body.append('\n<title>%s</title>\n' 
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   249
            % (self.language.labels[node.tagname],))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   250
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   251
    def depart_caution(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   252
        self.body.append('</caution>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   253
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   254
    # reST & DocBook ciations are somewhat 
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   255
    # different creatures.
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   256
    #
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   257
    # reST seems to handle citations as a labled
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   258
    # footnotes, whereas DocBook doesn't from what
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   259
    # I can tell.  In DocBook, it looks like they're
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   260
    # an abbreviation for a published work, which 
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   261
    # might be in the bibliography.
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   262
    #
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   263
    # Quote:
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   264
    #
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   265
    #   The content of a Citation is assumed to be a reference 
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   266
    #   string, perhaps identical to an abbreviation in an entry 
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   267
    #   in a Bibliography. 
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   268
    #
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   269
    # I hoped to have citations behave look footnotes,
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   270
    # using the citation label as the footnote label,
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   271
    # which would seem functionally equivlent, however
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   272
    # the DocBook stylesheets for generating HTML & FO 
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   273
    # output don't seem to be using the label for foonotes
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   274
    # so this doesn't work very well.
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   275
    #
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   276
    # Any ideas or suggestions would be welcome.
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   277
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   278
    def visit_citation(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   279
        self.visit_footnote(node)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   280
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   281
    def depart_citation(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   282
        self.depart_footnote(node)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   283
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   284
    def visit_citation_reference(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   285
        self.visit_footnote_reference(node)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   286
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   287
    def depart_citation_reference(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   288
        # there isn't a a depart_footnote_reference
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   289
        pass
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   290
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   291
    def visit_classifier(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   292
        self.body.append(self.starttag(node, 'type'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   293
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   294
    def depart_classifier(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   295
        self.body.append('</type>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   296
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   297
    def visit_colspec(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   298
        self.colnames.append('col_%d' % (len(self.colnames) + 1,))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   299
        atts = {'colname': self.colnames[-1]}
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   300
        self.body.append(self.emptytag(node, 'colspec', **atts))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   301
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   302
    def depart_colspec(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   303
        pass
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   304
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   305
    def visit_comment(self, node, sub=re.compile('-(?=-)').sub):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   306
        """Escape double-dashes in comment text."""
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   307
        self.body.append('<!-- %s -->\n' % sub('- ', node.astext()))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   308
        raise nodes.SkipNode
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   309
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   310
    # contact is handled in ``visit_docinfo()``
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   311
    def visit_contact(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   312
        raise nodes.SkipNode
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   313
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   314
    # copyright is handled in ``visit_docinfo()``
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   315
    def visit_copyright(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   316
        raise nodes.SkipNode
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   317
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   318
    def visit_danger(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   319
        self.body.append(self.starttag(node, 'caution'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   320
        self.body.append('\n<title>%s</title>\n' 
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   321
            % (self.language.labels[node.tagname],))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   322
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   323
    def depart_danger(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   324
        self.body.append('</caution>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   325
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   326
    # date is handled in ``visit_docinfo()``
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   327
    def visit_date(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   328
        raise nodes.SkipNode
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   329
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   330
    def visit_decoration(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   331
        pass
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   332
    def depart_decoration(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   333
        pass
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   334
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   335
    def visit_definition(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   336
        # "term" is not closed in depart_term
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   337
        self.body.append('</term>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   338
        self.body.append(self.starttag(node, 'listitem'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   339
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   340
    def depart_definition(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   341
        self.body.append('</listitem>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   342
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   343
    def visit_definition_list(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   344
        self.body.append(self.starttag(node, 'variablelist'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   345
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   346
    def depart_definition_list(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   347
        self.body.append('</variablelist>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   348
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   349
    def visit_definition_list_item(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   350
        self.body.append(self.starttag(node, 'varlistentry'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   351
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   352
    def depart_definition_list_item(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   353
        self.body.append('</varlistentry>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   354
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   355
    def visit_description(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   356
        self.body.append(self.starttag(node, 'entry'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   357
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   358
    def depart_description(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   359
        self.body.append('</entry>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   360
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   361
    def visit_docinfo(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   362
        """
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   363
        Collects all docinfo elements for the document.
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   364
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   365
        Since reST's bibliography elements don't map very
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   366
        cleanly to DocBook, rather than maintain state and
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   367
        check dependencies within the different visitor
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   368
        fuctions all processing of bibliography elements
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   369
        is dont within this function.
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   370
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   371
        .. NOTE:: Skips processing of all child nodes as
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   372
                  everything should be collected here.
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   373
        """
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   374
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   375
        # XXX There are a number of fields in docinfo elements
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   376
        #     which don't map nicely to docbook elements and 
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   377
        #     reST allows one to insert arbitrary fields into
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   378
        #     the header, We need to be able to handle fields
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   379
        #     which either don't map or nicely or are unexpected.
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   380
        #     I'm thinking of just using DocBook to display these
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   381
        #     elements in some sort of tabular format -- but
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   382
        #     to collecting them is not straight-forward.  
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   383
        #     Paragraphs, links, lists, etc... can all live within
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   384
        #     the values so we either need a separate visitor
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   385
        #     to translate these elements, or to maintain state
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   386
        #     in any possible child elements (not something I
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   387
        #     want to do).
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   388
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   389
        docinfo = ['<%sinfo>\n' % self.doctype]
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   390
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   391
        address = ''
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   392
        authors = []
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   393
        author = ''
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   394
        contact = ''
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   395
        date = ''
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   396
        legalnotice = ''
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   397
        orgname = ''
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   398
        releaseinfo = ''
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   399
        revision,version = '',''
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   400
 
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   401
        docinfo.append('<title>%s</title>\n' % self.title)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   402
        if self.subtitle:
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   403
            docinfo.append('<subtitle>%s</subtitle>\n' % self.subtitle)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   404
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   405
        for n in node:
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   406
            if isinstance(n, nodes.address):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   407
                address = n.astext()
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   408
            elif isinstance(n, nodes.author):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   409
                author = n.astext()
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   410
            elif isinstance(n, nodes.authors):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   411
                for a in n:
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   412
                    authors.append(a.astext())
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   413
            elif isinstance(n, nodes.contact):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   414
                contact = n.astext()
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   415
            elif isinstance(n, nodes.copyright):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   416
                legalnotice = n.astext()
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   417
            elif isinstance(n, nodes.date):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   418
                date = n.astext()
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   419
            elif isinstance(n, nodes.organization):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   420
                orgname = n.astext()
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   421
            elif isinstance(n, nodes.revision):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   422
                # XXX yuck
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   423
                revision = 'Revision ' + n.astext()
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   424
            elif isinstance(n, nodes.status):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   425
                releaseinfo = n.astext()
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   426
            elif isinstance(n, nodes.version):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   427
                # XXX yuck
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   428
                version = 'Version ' + n.astext()
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   429
            elif isinstance(n, nodes.field):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   430
                # XXX
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   431
                import sys
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   432
                print >> sys.stderr, "I don't do 'field' yet"
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   433
                print n.astext()
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   434
            # since all child nodes are handled here raise an exception
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   435
            # if node is not handled, so it doesn't silently slip through.
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   436
            else:
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   437
                print dir(n)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   438
                print n.astext()
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   439
                raise self.unimplemented_visit(n)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   440
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   441
        # can only add author if name is present
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   442
        # since contact is associate with author, the contact
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   443
        # can also only be added if an author name is given.
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   444
        if author:
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   445
            docinfo.append('<author>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   446
            docinfo.append('<othername>%s</othername>\n' % author)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   447
            if contact:
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   448
                docinfo.append('<email>%s</email>\n' % contact)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   449
            docinfo.append('</author>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   450
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   451
        if authors:
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   452
            docinfo.append('<authorgroup>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   453
            for name in authors:
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   454
                docinfo.append(
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   455
                    '<author><othername>%s</othername></author>\n' % name)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   456
            docinfo.append('</authorgroup>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   457
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   458
        if revision or version:
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   459
            edition = version
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   460
            if edition and revision:
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   461
                edition += ', ' + revision
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   462
            elif revision:
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   463
                edition = revision
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   464
            docinfo.append('<edition>%s</edition>\n' % edition)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   465
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   466
        if date:
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   467
            docinfo.append('<date>%s</date>\n' % date)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   468
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   469
        if orgname:
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   470
            docinfo.append('<orgname>%s</orgname>\n' % orgname)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   471
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   472
        if releaseinfo:
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   473
            docinfo.append('<releaseinfo>%s</releaseinfo>\n' % releaseinfo)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   474
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   475
        if legalnotice:
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   476
            docinfo.append('<legalnotice>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   477
            docinfo.append('<para>%s</para>\n' % legalnotice)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   478
            docinfo.append('</legalnotice>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   479
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   480
        if address:
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   481
            docinfo.append('<address xml:space="preserve">' + 
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   482
                address + '</address>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   483
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   484
        if len(docinfo) > 1:
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   485
            docinfo.append('</%sinfo>\n' % self.doctype)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   486
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   487
        self.docinfo = docinfo
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   488
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   489
        raise nodes.SkipChildren
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   490
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   491
    def depart_docinfo(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   492
        pass
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   493
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   494
    def visit_doctest_block(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   495
        self.body.append('<informalexample>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   496
        self.body.append(self.starttag(node, 'programlisting'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   497
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   498
    def depart_doctest_block(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   499
        self.body.append('</programlisting>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   500
        self.body.append('</informalexample>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   501
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   502
    def visit_document(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   503
        pass
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   504
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   505
    def depart_document(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   506
        self.rearrange_footnotes()
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   507
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   508
    def visit_emphasis(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   509
        self.body.append('<emphasis>')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   510
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   511
    def depart_emphasis(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   512
        self.body.append('</emphasis>')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   513
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   514
    def visit_entry(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   515
        tagname = 'entry'
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   516
        atts = {}
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   517
        if node.has_key('morerows'):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   518
            atts['morerows'] = node['morerows']
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   519
        if node.has_key('morecols'):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   520
            atts['namest'] = self.colnames[self.entry_level]
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   521
            atts['nameend'] = self.colnames[self.entry_level \
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   522
                + node['morecols']]
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   523
        self.entry_level += 1   # for tracking what namest and nameend are
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   524
        self.body.append(self.starttag(node, tagname, '', **atts))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   525
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   526
    def depart_entry(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   527
        self.body.append('</entry>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   528
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   529
    def visit_enumerated_list(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   530
        # TODO: need to specify "mark" type used for list items
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   531
        self.body.append(self.starttag(node, 'orderedlist'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   532
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   533
    def depart_enumerated_list(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   534
        self.body.append('</orderedlist>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   535
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   536
    def visit_error(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   537
        self.body.append(self.starttag(node, 'caution'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   538
        self.body.append('\n<title>%s</title>\n' 
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   539
            % (self.language.labels[node.tagname],))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   540
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   541
    def depart_error(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   542
        self.body.append('</caution>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   543
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   544
    # TODO: wrap with some element (filename used in DocBook example)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   545
    def visit_field(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   546
        self.body.append(self.starttag(node, 'varlistentry'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   547
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   548
    def depart_field(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   549
        self.body.append('</varlistentry>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   550
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   551
    # TODO: see if this should be wrapped with some element
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   552
    def visit_field_argument(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   553
        self.body.append(' ')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   554
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   555
    def depart_field_argument(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   556
        pass
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   557
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   558
    def visit_field_body(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   559
        # NOTE: this requires that a field body always
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   560
        #   be present, which looks like the case
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   561
        #   (from docutils.dtd)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   562
        self.body.append(self.context.pop())
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   563
        self.body.append(self.starttag(node, 'listitem'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   564
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   565
    def depart_field_body(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   566
        self.body.append('</listitem>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   567
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   568
    def visit_field_list(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   569
        self.body.append(self.starttag(node, 'variablelist'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   570
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   571
    def depart_field_list(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   572
        self.body.append('</variablelist>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   573
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   574
    def visit_field_name(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   575
        self.body.append(self.starttag(node, 'term'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   576
        # popped by visit_field_body, so "field_argument" is
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   577
        # content within "term"
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   578
        self.context.append('</term>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   579
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   580
    def depart_field_name(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   581
        pass
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   582
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   583
    def visit_figure(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   584
        self.body.append(self.starttag(node, 'informalfigure'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   585
        self.body.append('<blockquote>')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   586
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   587
    def depart_figure(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   588
        self.body.append('</blockquote>')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   589
        self.body.append('</informalfigure>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   590
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   591
    # TODO: footer (this is where 'generated by docutils' arrives)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   592
    # if that's all that will be there, it could map to "colophon"
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   593
    def visit_footer(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   594
        raise nodes.SkipChildren
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   595
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   596
    def depart_footer(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   597
        pass
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   598
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   599
    def visit_footnote(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   600
        self.footnotes[node['ids'][0]] = []
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   601
        atts = {'id': node['ids'][0]}
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   602
        if isinstance(node[0], nodes.label):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   603
            atts['label'] = node[0].astext()
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   604
        self.footnotes[node['ids'][0]].append(
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   605
            self.starttag(node, 'footnote', **atts))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   606
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   607
        # replace body with this with a footnote collector list
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   608
        # which will hold all the contents for this footnote.
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   609
        # This needs to be kept separate so it can be used to replace
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   610
        # the first ``footnote_reference`` as DocBook defines 
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   611
        # ``footnote`` elements inline. 
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   612
        self._body = self.body
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   613
        self.body = self.footnotes[node['ids'][0]]
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   614
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   615
    def depart_footnote(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   616
        # finish footnote and then replace footnote collector
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   617
        # with real body list.
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   618
        self.footnotes[node['ids'][0]].append('</footnote>')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   619
        self.body = self._body
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   620
        self._body = None
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   621
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   622
    def visit_footnote_reference(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   623
        if node.has_key('refid'):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   624
            refid = node['refid']
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   625
        else:
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   626
            refid = self.document.nameids[node['refname']]
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   627
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   628
        # going to replace this footnote reference with the actual
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   629
        # footnote later on, so store the footnote id to replace
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   630
        # this reference with and the list and position to replace it
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   631
        # in. Both list and position are stored in case a footnote
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   632
        # reference is within a footnote, in which case ``self.body``
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   633
        # won't really be ``self.body`` but a footnote collector
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   634
        # list.
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   635
        refs = self.footnote_map.get(refid, [])
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   636
        refs.append((node['ids'][0], self.body, len(self.body),))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   637
        self.footnote_map[refid] = refs
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   638
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   639
        # add place holder list item which should later be 
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   640
        # replaced with the contents of the footnote element
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   641
        # and it's child elements
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   642
        self.body.append('<!-- REPLACE WITH FOOTNOTE -->')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   643
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   644
        raise nodes.SkipNode
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   645
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   646
    def visit_header(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   647
        pass
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   648
    def depart_header(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   649
        pass
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   650
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   651
    # ??? does anything need to be done for generated?
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   652
    def visit_generated(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   653
        pass
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   654
    def depart_generated(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   655
        pass
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   656
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   657
    def visit_hint(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   658
        self.body.append(self.starttag(node, 'note'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   659
        self.body.append('\n<title>%s</title>\n' 
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   660
            % (self.language.labels[node.tagname],))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   661
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   662
    def depart_hint(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   663
        self.body.append('</note>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   664
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   665
    def visit_image(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   666
        if isinstance(node.parent, nodes.paragraph):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   667
            element = 'inlinemediaobject'
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   668
        elif isinstance(node.parent, nodes.reference):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   669
            element = 'inlinemediaobject'
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   670
        else:
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   671
            element = 'mediaobject'
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   672
        atts = node.attributes.copy()
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   673
        atts['fileref'] = atts['uri']
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   674
        alt = None
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   675
        del atts['uri']
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   676
        if atts.has_key('alt'):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   677
            alt = atts['alt']
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   678
            del atts['alt']
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   679
        if atts.has_key('height'):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   680
            atts['depth'] = atts['height']
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   681
            del atts['height']
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   682
        self.body.append('<%s>' % element)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   683
        self.body.append('<imageobject>')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   684
        self.body.append(self.emptytag(node, 'imagedata', **atts))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   685
        self.body.append('</imageobject>')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   686
        if alt:
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   687
            self.body.append('<textobject><phrase>' \
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   688
                '%s</phrase></textobject>\n' % alt)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   689
        self.body.append('</%s>' % element)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   690
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   691
    def depart_image(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   692
        pass
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   693
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   694
    def visit_important(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   695
        self.body.append(self.starttag(node, 'important'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   696
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   697
    def depart_important(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   698
        self.body.append('</important>')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   699
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   700
    # @@@ Incomplete, pending a proper implementation on the
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   701
    # Parser/Reader end.
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   702
    # XXX see if the default for interpreted should be ``citetitle``
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   703
    def visit_interpreted(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   704
        self.body.append('<constant>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   705
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   706
    def depart_interpreted(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   707
        self.body.append('</constant>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   708
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   709
    def visit_label(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   710
        # getting label for "footnote" in ``visit_footnote``
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   711
        # because label is an attribute for the ``footnote``
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   712
        # element.
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   713
        if isinstance(node.parent, nodes.footnote):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   714
            raise nodes.SkipNode
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   715
        # citations are currently treated as footnotes
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   716
        elif isinstance(node.parent, nodes.citation):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   717
            raise nodes.SkipNode
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   718
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   719
    def depart_label(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   720
        pass
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   721
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   722
    def visit_legend(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   723
        # legend is placed inside the figure's ``blockquote``
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   724
        # so there's nothing special to be done for it
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   725
        pass
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   726
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   727
    def depart_legend(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   728
        pass
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   729
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   730
    def visit_line(self,node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   731
        pass
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   732
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   733
    def depart_line(self,node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   734
        pass
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   735
        
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   736
    def visit_line_block(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   737
        self.body.append(self.starttag(node, 'literallayout'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   738
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   739
    def depart_line_block(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   740
        self.body.append('</literallayout>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   741
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   742
    def visit_list_item(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   743
        self.body.append(self.starttag(node, 'listitem'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   744
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   745
    def depart_list_item(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   746
        self.body.append('</listitem>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   747
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   748
    def visit_literal(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   749
         self.body.append('<literal>')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   750
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   751
    def depart_literal(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   752
        self.body.append('</literal>')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   753
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   754
    def visit_literal_block(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   755
        self.body.append(self.starttag(node, 'programlisting'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   756
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   757
    def depart_literal_block(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   758
        self.body.append('</programlisting>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   759
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   760
    def visit_note(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   761
        self.body.append(self.starttag(node, 'note'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   762
        self.body.append('\n<title>%s</title>\n' 
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   763
            % (self.language.labels[node.tagname],))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   764
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   765
    def depart_note(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   766
        self.body.append('</note>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   767
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   768
    def visit_option(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   769
        self.body.append(self.starttag(node, 'command'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   770
        if self.context[-1]:
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   771
            self.body.append(', ')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   772
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   773
    def depart_option(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   774
        self.context[-1] += 1
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   775
        self.body.append('</command>')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   776
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   777
    def visit_option_argument(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   778
        self.body.append(node.get('delimiter', ' '))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   779
        self.body.append(self.starttag(node, 'replaceable', ''))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   780
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   781
    def depart_option_argument(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   782
        self.body.append('</replaceable>')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   783
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   784
    def visit_option_group(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   785
        self.body.append(self.starttag(node, 'entry'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   786
        self.context.append(0)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   787
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   788
    def depart_option_group(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   789
        self.context.pop()
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   790
        self.body.append('</entry>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   791
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   792
    def visit_option_list(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   793
        self.body.append(self.starttag(node, 'informaltable', frame='all'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   794
        self.body.append('<tgroup cols="2">\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   795
        self.body.append('<colspec colname="option_col"/>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   796
        self.body.append('<colspec colname="description_col"/>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   797
        self.body.append('<tbody>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   798
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   799
    def depart_option_list(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   800
        self.body.append('</tbody>')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   801
        self.body.append('</tgroup>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   802
        self.body.append('</informaltable>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   803
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   804
    def visit_option_list_item(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   805
        self.body.append(self.starttag(node, 'row'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   806
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   807
    def depart_option_list_item(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   808
        self.body.append('</row>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   809
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   810
    def visit_option_string(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   811
        pass
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   812
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   813
    def depart_option_string(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   814
        pass
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   815
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   816
    # organization is handled in ``visit_docinfo()``
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   817
    def visit_organization(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   818
        raise nodes.SkipNode
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   819
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   820
    def visit_paragraph(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   821
        self.body.append(self.starttag(node, 'para', ''))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   822
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   823
    def depart_paragraph(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   824
        self.body.append('</para>')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   825
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   826
    # TODO: problematic
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   827
    visit_problematic = depart_problematic = lambda self, node: None
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   828
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   829
    def visit_raw(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   830
        if node.has_key('format') and node['format'] == 'docbook':
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   831
            self.body.append(node.astext())
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   832
        raise nodes.SkipNode
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   833
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   834
    def visit_reference(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   835
        atts = {}
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   836
        if node.has_key('refuri'):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   837
            atts['url'] = node['refuri']
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   838
            self.context.append('ulink')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   839
        elif node.has_key('refid'):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   840
            atts['linkend'] = node['refid']
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   841
            self.context.append('link')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   842
        elif node.has_key('refname'):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   843
            atts['linkend'] = self.document.nameids[node['refname']]
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   844
            self.context.append('link')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   845
        # if parent is a section, 
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   846
        # wrap link in a para
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   847
        if isinstance(node.parent, nodes.section):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   848
            self.body.append('<para>')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   849
        self.body.append(self.starttag(node, self.context[-1], '', **atts))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   850
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   851
    def depart_reference(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   852
        self.body.append('</%s>' % (self.context.pop(),))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   853
        # if parent is a section, 
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   854
        # wrap link in a para
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   855
        if isinstance(node.parent, nodes.section):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   856
            self.body.append('</para>')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   857
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   858
    # revision is handled in ``visit_docinfo()``
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   859
    def visit_revision(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   860
        raise nodes.SkipNode
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   861
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   862
    def visit_row(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   863
        self.entry_level = 0
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   864
        self.body.append(self.starttag(node, 'row'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   865
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   866
    def depart_row(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   867
        self.body.append('</row>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   868
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   869
    def visit_rubric(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   870
        self.body.append(self.starttag(node, 'bridgehead'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   871
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   872
    def depart_rubric(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   873
        self.body.append('</bridgehead>')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   874
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   875
    def visit_section(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   876
        if self.section == 0 and self.doctype == 'book':
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   877
            self.body.append(self.starttag(node, 'chapter'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   878
        else:
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   879
            self.body.append(self.starttag(node, 'section'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   880
        self.section += 1
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   881
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   882
    def depart_section(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   883
        self.section -= 1
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   884
        if self.section == 0 and self.doctype == 'book':
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   885
            self.body.append('</chapter>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   886
        else:
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   887
            self.body.append('</section>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   888
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   889
    def visit_sidebar(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   890
        self.body.append(self.starttag(node, 'sidebar'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   891
        if isinstance(node[0], nodes.title):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   892
            self.body.append('<sidebarinfo>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   893
            self.body.append('<title>%s</title>\n' % node[0].astext())
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   894
            if isinstance(node[1], nodes.subtitle):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   895
                self.body.append('<subtitle>%s</subtitle>\n' % node[1].astext())
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   896
            self.body.append('</sidebarinfo>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   897
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   898
    def depart_sidebar(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   899
        self.body.append('</sidebar>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   900
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   901
    # author is handled in ``visit_docinfo()``
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   902
    def visit_status(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   903
        raise nodes.SkipNode
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   904
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   905
    def visit_strong(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   906
        self.body.append('<emphasis role="strong">')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   907
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   908
    def depart_strong(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   909
        self.body.append('</emphasis>')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   910
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   911
    def visit_subscript(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   912
        self.body.append(self.starttag(node, 'subscript', ''))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   913
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   914
    def depart_subscript(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   915
        self.body.append('</subscript>')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   916
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   917
    def visit_substitution_definition(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   918
        raise nodes.SkipNode
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   919
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   920
    def visit_substitution_reference(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   921
        self.unimplemented_visit(node)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   922
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   923
    def visit_subtitle(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   924
        # document title needs to go into
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   925
        # <type>info/subtitle, so save it for
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   926
        # when we do visit_docinfo
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   927
        if isinstance(node.parent, nodes.document):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   928
            self.subtitle = node.astext()
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   929
            raise nodes.SkipNode
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   930
        else:
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   931
            # sidebar subtitle needs to go into a sidebarinfo element
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   932
            #if isinstance(node.parent, nodes.sidebar):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   933
            #    self.body.append('<sidebarinfo>')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   934
            if isinstance(node.parent, nodes.sidebar):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   935
                raise nodes.SkipNode
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   936
            self.body.append(self.starttag(node, 'subtitle', ''))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   937
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   938
    def depart_subtitle(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   939
        if not isinstance(node.parent, nodes.document):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   940
            self.body.append('</subtitle>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   941
        #if isinstance(node.parent, nodes.sidebar):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   942
        #    self.body.append('</sidebarinfo>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   943
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   944
    def visit_superscript(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   945
        self.body.append(self.starttag(node, 'superscript', ''))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   946
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   947
    def depart_superscript(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   948
        self.body.append('</superscript>')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   949
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   950
    # TODO: system_message
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   951
    visit_system_message = depart_system_message = lambda self, node: None
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   952
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   953
    def visit_table(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   954
        self.body.append(
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   955
            self.starttag(node, 'informaltable', frame='all')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   956
        )
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   957
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   958
    def depart_table(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   959
        self.body.append('</informaltable>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   960
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   961
    # don't think anything is needed for targets
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   962
    def visit_target(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   963
        # XXX this would like to be a transform!
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   964
        # XXX comment this mess!
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   965
        handled = 0
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   966
        siblings = node.parent.children
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   967
        for i in range(len(siblings)):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   968
            if siblings[i] is node:
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   969
                if i+1 < len(siblings):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   970
                    next = siblings[i+1]
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   971
                    if isinstance(next,nodes.Text):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   972
                        pass
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   973
                    elif not next.attributes.has_key('id'):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   974
                        next['id'] = node['ids'][0]
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   975
                        handled = 1
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   976
        if not handled:
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   977
            if not node.parent.attributes.has_key('id'):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   978
                # TODO node["ids"] 
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   979
                node.parent.attributes['id'] = node['ids'][0]
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   980
                handled = 1
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   981
        # might need to do more...
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   982
        # (if not handled, update the referrer to refer to the parent's id)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   983
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   984
    def depart_target(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   985
        pass
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   986
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   987
    def visit_tbody(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   988
        self.body.append(self.starttag(node, 'tbody'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   989
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   990
    def depart_tbody(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   991
        self.body.append('</tbody>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   992
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   993
    def visit_term(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   994
        self.body.append(self.starttag(node, 'term'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   995
        self.body.append('<varname>')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   996
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   997
    def depart_term(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   998
        # Leave the end tag "term" to ``visit_definition()``,
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
   999
        # in case there's a classifier.
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1000
        self.body.append('</varname>')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1001
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1002
    def visit_tgroup(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1003
        self.colnames = []
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1004
        atts = {'cols': node['cols']}
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1005
        self.body.append(self.starttag(node, 'tgroup', **atts))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1006
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1007
    def depart_tgroup(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1008
        self.body.append('</tgroup>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1009
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1010
    def visit_thead(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1011
        self.body.append(self.starttag(node, 'thead'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1012
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1013
    def depart_thead(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1014
        self.body.append('</thead>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1015
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1016
    def visit_tip(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1017
        self.body.append(self.starttag(node, 'tip'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1018
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1019
    def depart_tip(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1020
        self.body.append('</tip>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1021
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1022
    def visit_title(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1023
        # document title needs to go inside
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1024
        # <type>info/title
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1025
        if isinstance(node.parent, nodes.document):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1026
            self.title = node.astext()
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1027
            raise nodes.SkipNode
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1028
        elif isinstance(node.parent, nodes.sidebar):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1029
            # sidebar title and subtitle are collected in visit_sidebar
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1030
            raise nodes.SkipNode
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1031
        else:
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1032
            self.body.append(self.starttag(node, 'title', ''))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1033
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1034
    def depart_title(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1035
        if not isinstance(node.parent, nodes.document):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1036
            self.body.append('</title>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1037
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1038
    def visit_title_reference(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1039
        self.body.append('<citetitle>')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1040
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1041
    def depart_title_reference(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1042
        self.body.append('</citetitle>')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1043
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1044
    def visit_topic(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1045
        # let DocBook handle Table of Contents generation
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1046
        if node.get('class') == 'contents':
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1047
            raise nodes.SkipChildren
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1048
        elif node.get('class') == 'abstract':
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1049
            self.body.append(self.starttag(node, 'abstract'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1050
            self.context.append('abstract')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1051
        elif node.get('class') == 'dedication':
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1052
            # docbook only supports dedication in a book,
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1053
            # so we're faking it for article & chapter
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1054
            if self.doctype == 'book':
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1055
                self.body.append(self.starttag(node, 'dedication'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1056
                self.context.append('dedication')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1057
            else:
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1058
                self.body.append(self.starttag(node, 'section'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1059
                self.context.append('section')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1060
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1061
        # generic "topic" element treated as a section
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1062
        elif node.get('class','') == '':
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1063
            self.body.append(self.starttag(node, 'section'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1064
            self.context.append('section')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1065
        else:
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1066
            # XXX DEBUG CODE
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1067
            print 'class:', node.get('class')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1068
            print node.__class__.__name__
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1069
            print node
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1070
            print `node`
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1071
            print dir(node)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1072
            self.unimplemented_visit(node)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1073
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1074
    def depart_topic(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1075
        if len(self.context):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1076
            self.body.append('</%s>\n' % (self.context.pop(),))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1077
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1078
    def visit_transition(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1079
        pass
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1080
    def depart_transition(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1081
        pass
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1082
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1083
    # author is handled in ``visit_docinfo()``
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1084
    def visit_version(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1085
        raise nodes.SkipNode
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1086
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1087
    def visit_warning(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1088
        self.body.append(self.starttag(node, 'warning'))
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1089
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1090
    def depart_warning(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1091
        self.body.append('</warning>\n')
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1092
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1093
    def unimplemented_visit(self, node):
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1094
        raise NotImplementedError('visiting unimplemented node type: %s'
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1095
                % node.__class__.__name__)
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1096
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1097
# :collapseFolds=0:folding=indent:indentSize=4:
c9990f63505d Library for docbook conversion taken from docutils sandbox ... patches done on it by me
amit@thunder
parents:
diff changeset
  1098
# :lineSeparator=\n:noTabs=true:tabSize=4: