annotate tools/html.py @ 670:e06ee3dd5ee8 0.4.1

*ahem*
author Richard Jones <richard@users.sourceforge.net>
date Mon, 25 Mar 2002 06:19:45 +0000
parents 71bf8f97fe30
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
632
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1 import cStringIO, cgi, sys, urllib
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
2 import dps.utils
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
3 try:
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
4 from restructuredtext import Parser
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
5 except ImportError:
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
6 from dps.parsers.restructuredtext import Parser
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
7
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
8 # TODO: enforce model?
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
9
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
10 class DumbHTMLFormatter:
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
11 def __init__(self):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
12 self.out = cStringIO.StringIO()
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
13 self.w = self.out.write
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
14 self.section = 0
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
15 self.closers = []
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
16
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
17 def format(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
18 '''Format a node
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
19 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
20 for entry in node:
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
21 self.formatOneTag(entry)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
22
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
23 def formatOneTag(self, tag):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
24 if tag.tagname == '#text':
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
25 meth = self.format__text
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
26 else:
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
27 meth = getattr(self, 'format_'+tag.tagname)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
28 meth(tag)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
29
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
30 #
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
31 # Root Element
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
32 #
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
33 # ((title, subtitle?)?, docinfo?, %structure.model;)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
34 #
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
35 def format_document(self, document):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
36 ''' ((title, subtitle?)?, docinfo?, %structure.model;)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
37
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
38
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
39 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
40 self.document = document
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
41 self.w('<html><head>\n')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
42
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
43 n = 0
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
44
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
45 # See if there's a title
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
46 if document[n].tagname == 'title':
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
47 title = cgi.escape(document[n][0][0].data)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
48 self.w('<title>%s</title>\n'%title)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
49 n += 1
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
50 if document[n].tagname == 'subtitle':
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
51 title = cgi.escape(document[n][0][0].data)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
52 self.w('<h1>%s</h1>'%title)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
53 self.section += 1
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
54 n += 1
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
55
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
56 # Now see if there's biblio information
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
57
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
58 # see if there's a field_list at the start of the document
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
59 if document[n].tagname == 'docinfo':
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
60 self.format_docinfo(document[n])
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
61 n += 1
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
62
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
63 self.w('</head>\n<body>')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
64
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
65 # now for the body
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
66 l = list(document)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
67 for entry in l[n:]:
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
68 self.formatOneTag(entry)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
69 self.w('</body>\n</html>')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
70 return self.out.getvalue()
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
71
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
72 #
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
73 # Title Elements
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
74 #
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
75 def format_title(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
76 self.w('<h%d>'%self.section)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
77 if node.children: self.format(node)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
78 self.w('</h%d>\n'%self.section)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
79
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
80 def format_subtitle(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
81 raise NotImplementedError, node
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
82
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
83 #
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
84 # Bibliographic Elements
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
85 #
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
86 def format_docinfo(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
87 ''' (((%bibliographic.elements;)+, abstract?) | abstract)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
88
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
89 bibliographic.elements:
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
90 author | authors | organization | contact | version | revision
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
91 | status | date | copyright
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
92 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
93 if node.children: self.format(node)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
94
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
95 def format_abstract(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
96 content = urllib.quote(node[0].data)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
97 self.w('<meta name="description" content="%s">\n'%content)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
98
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
99 def format_author(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
100 content = urllib.quote(node[0].data)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
101 self.w('<meta name="author" content="%s">\n'%content)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
102
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
103 def format_authors(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
104 ''' ((author, organization?, contact?)+)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
105 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
106 self.w('<meta name="author" content="')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
107 print node
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
108 self.w('">\n'%content)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
109
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
110 def format_organization(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
111 content = urllib.quote(node[0].data)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
112 self.w('<meta name="organization" content="%s">\n'%content)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
113
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
114 # TODO: not in DTD
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
115 # def format_keywords(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
116 # content = urllib.quote(node[0].data)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
117 # self.w('<meta name="keywords" content="%s">\n'%content)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
118
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
119 def format_contact(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
120 addr = urllib.quote(node[0].data)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
121 self.w('<link rev="made" href="mailto:%s>\n'%addr)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
122
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
123 def format_version(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
124 addr = urllib.quote(node[0].data)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
125 self.w('<meta name="version" content="%s">\n'%content)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
126
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
127 def format_revision(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
128 addr = urllib.quote(node[0].data)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
129 self.w('<meta name="revision" content="%s">\n'%content)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
130
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
131 def format_status(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
132 addr = urllib.quote(node[0].data)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
133 self.w('<meta name="status" content="%s">\n'%content)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
134
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
135 def format_date(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
136 addr = urllib.quote(node[0].data)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
137 self.w('<meta name="date" content="%s">\n'%content)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
138
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
139 def format_copyright(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
140 addr = urllib.quote(node[0].data)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
141 self.w('<meta name="copyright" content="%s">\n'%content)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
142
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
143 #
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
144 # Structural Elements
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
145 #
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
146 # section
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
147 #
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
148 # structure.model:
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
149 # ( ((%body.elements; | transition)+, (%structural.elements;)*)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
150 # | (%structural.elements;)+ )
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
151 #
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
152 def format_section(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
153 self.w('<a name="%s"></a>'%urllib.quote(node.attributes['name']))
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
154 self.section += 1
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
155 if node.children: self.format(node)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
156 self.section -= 1
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
157
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
158 def format_transition(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
159 self.w('<hr>')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
160
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
161 #
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
162 # Body Elements
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
163 #
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
164 # paragraph | literal_block | block_quote | doctest_block| table
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
165 # | figure | image | footnote
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
166 # | bullet_list | enumerated_list | definition_list | field_list
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
167 # | option_list
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
168 # | note | tip | hint | warning | error | caution | danger | important
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
169 # | target | substitution_definition | comment | system_message
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
170 #
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
171 #
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
172 def format_paragraph(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
173 ''' %text.model;
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
174 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
175 # TODO: there are situations where the <p> </p> are unnecessary
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
176 self.w('<p>')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
177 if node.children: self.format(node)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
178 self.w('</p>\n')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
179
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
180 # Simple lists
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
181 def format_bullet_list(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
182 ''' (list_item+)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
183 bullet CDATA
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
184 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
185 # TODO: handle attribute
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
186 self.w('<ul>\n')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
187 if node.children: self.format(node)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
188 self.w('</ul>\n')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
189
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
190 def format_enumerated_list(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
191 ''' (list_item+)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
192 enumtype (arabic | loweralpha | upperalpha | lowerroman |
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
193 upperroman)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
194 prefix CDATA
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
195 suffix CDATA
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
196 start CDATA
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
197 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
198 # TODO: handle attributes
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
199 self.w('<ol>\n')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
200 if node.children: self.format(node)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
201 self.w('</ol>\n')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
202
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
203 def format_list_item(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
204 ''' (%body.elements;)+
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
205 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
206 self.w('<li>')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
207 if node.children: self.format(node)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
208 self.w('</li>\n')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
209
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
210 # Definition List
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
211 def format_definition_list(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
212 ''' (definition_list_item+)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
213 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
214 self.w('<dl>\n')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
215 if node.children: self.format(node)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
216 self.w('</dl>\n')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
217
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
218 def format_definition_list_item(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
219 ''' (term, classifier?, definition)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
220 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
221 self.w('<dt>')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
222 if node.children: self.format(node)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
223
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
224 def format_term(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
225 ''' %text.model;
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
226 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
227 self.w('<span class="term">')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
228 if node.children:self.format(node)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
229 self.w('</span>')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
230
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
231 def format_classifier(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
232 ''' %text.model;
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
233 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
234 # TODO: handle the classifier better
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
235 self.w('<span class="classifier">')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
236 if node.children: self.format(node)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
237 self.w('</span>')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
238
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
239 def format_definition(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
240 ''' (%body.elements;)+
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
241 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
242 self.w('</dt>\n<dd>')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
243 # TODO: this is way suboptimal!
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
244 first = 1
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
245 for child in node.children:
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
246 if child.tagname == 'paragraph' and first:
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
247 # just format the contents of the para
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
248 self.format(child)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
249 else:
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
250 # format the whole tag
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
251 self.formatOneTag(child)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
252 first = 0
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
253 self.w('</dd>\n')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
254
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
255 # Field List
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
256 def format_field_list(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
257 ''' (field+)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
258 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
259 self.w('<dl>')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
260 if node.children: self.format(node)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
261 self.w('</dl>')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
262
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
263 def format_field(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
264 ''' (field_name, field_argument*, field_body)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
265 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
266 self.w('<dt>')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
267 if node.children: self.format(node)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
268
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
269 def format_field_name(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
270 ''' (#PCDATA)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
271 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
272 self.w('<span class="field_name">')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
273 if node.children:self.format(node)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
274 self.w('</span>')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
275
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
276 def format_field_argument(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
277 ''' (#PCDATA)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
278 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
279 self.w('<span class="field_argument">')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
280 if node.children: self.format(node)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
281 self.w('</span>')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
282
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
283 def format_field_body(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
284 ''' (%body.elements;)+
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
285 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
286 self.w('</dt>\n<dd class="field_body">')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
287 if node.children: self.format(node)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
288 self.w('</dd>\n')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
289
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
290 # Option List
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
291 def format_option_list(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
292 ''' (option_list_item+)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
293 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
294 self.w('<table border=0 cellspacing=0 cellpadding=2><tr><th align="left" class="option_header">Option</th>\n')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
295 self.w('<th align="left" class="option_header">Description</th></tr>\n')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
296 if node.children: self.format(node)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
297 self.w('</table>\n')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
298
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
299 def format_option_list_item(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
300 ''' (option+, description)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
301 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
302 self.w('<tr>')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
303 if node.children: self.format(node)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
304 self.w('</tr>\n')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
305
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
306 def format_option(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
307 ''' ((short_option | long_option | vms_option), option_argument?)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
308 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
309 self.w('<td align="left" valign="top" class="option">')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
310 if node.children: self.format(node)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
311 self.w('</td>')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
312
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
313 def format_short_option(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
314 ''' (#PCDATA)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
315 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
316 for option in node.children:
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
317 self.w('-%s'%cgi.escape(option.data))
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
318
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
319 def format_long_option(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
320 ''' (#PCDATA)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
321 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
322 for option in node.children:
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
323 self.w('--%s'%cgi.escape(option.data))
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
324
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
325 def format_vms_option(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
326 ''' (#PCDATA)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
327 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
328 for option in node.children:
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
329 self.w('/%s'%cgi.escape(option.data))
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
330
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
331 def format_option_argument(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
332 ''' (#PCDATA)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
333 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
334 for option in node.children:
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
335 self.w('=%s'%cgi.escape(option.data))
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
336
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
337 def format_description(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
338 ''' (%body.elements;)+
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
339 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
340 self.w('<td align="left" valign="top" class="option_description">')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
341 if node.children: self.format(node)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
342 self.w('</td>\n')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
343
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
344 # Literal Block
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
345 def format_literal_block(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
346 self.w('<pre>')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
347 if node.children: self.format(node)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
348 self.w('</pre>\n')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
349
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
350 # Block Quote
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
351 def format_block_quote(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
352 # TODO: I believe this needs to be CSS'ified - blockquote is deprecated
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
353 self.w('<blockquote>')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
354 if node.children: self.format(node)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
355 self.w('</blockquote>\n')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
356
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
357 # Doctest Block
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
358 def format_doctest_block(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
359 self.w('<pre>')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
360 if node.children: self.format(node)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
361 self.w('</pre>\n')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
362
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
363 # Note, tip, hint, warning, error, caution, danger, important
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
364 def format_note(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
365 ''' (%body.elements;)+
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
366 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
367 self.w('<span class="note">')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
368 if node.children: self.format(node)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
369 self.w('</span>')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
370
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
371 def format_tip(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
372 ''' (%body.elements;)+
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
373 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
374 self.w('<span class="tip">')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
375 if node.children: self.format(node)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
376 self.w('</span>')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
377
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
378 def format_hint(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
379 ''' (%body.elements;)+
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
380 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
381 self.w('<span class="hint">')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
382 if node.children: self.format(node)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
383 self.w('</span>')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
384
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
385 def format_warning(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
386 ''' (%body.elements;)+
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
387 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
388 self.w('<span class="warning">')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
389 if node.children: self.format(node)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
390 self.w('</span>')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
391
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
392 def format_error(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
393 ''' (%body.elements;)+
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
394 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
395 self.w('<span class="error">')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
396 if node.children: self.format(node)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
397 self.w('</span>')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
398
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
399 def format_caution(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
400 ''' (%body.elements;)+
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
401 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
402 self.w('<span class="caution">')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
403 if node.children: self.format(node)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
404 self.w('</span>')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
405
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
406 def format_danger(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
407 ''' (%body.elements;)+
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
408 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
409 self.w('<span class="danger">')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
410 if node.children: self.format(node)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
411 self.w('</span>')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
412
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
413 def format_important(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
414 ''' (%body.elements;)+
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
415 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
416 self.w('<span class="important">')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
417 if node.children: self.format(node)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
418 self.w('</span>')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
419
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
420 # Footnote
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
421 def format_footnote(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
422 ''' (label?, (%body.elements;)+)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
423 %auto.att;
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
424 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
425 raise NotImplementedError, node
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
426
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
427 def format_label(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
428 ''' (#PCDATA)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
429 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
430 for label in node.children:
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
431 self.w(cgi.escape(label.data))
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
432
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
433 # Target
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
434 def format_target(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
435 ''' (%text.model;)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
436 %reference.atts;
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
437 %anonymous.att;
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
438 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
439 pass
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
440
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
441 # Substitution Definition
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
442 def format_substitution_definition(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
443 ''' (%text.model;)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
444 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
445 raise NotImplementedError, node
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
446
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
447 # Comment
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
448 def format_comment(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
449 ''' (#PCDATA)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
450 %fixedspace.att;
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
451 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
452 # TODO: handle attrs
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
453 self.w('<!--')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
454 for data in node.children:
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
455 self.w(cgi.escape(data.data))
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
456 self.w('-->')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
457
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
458 # Figure
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
459 def format_figure(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
460 ''' (image, ((caption, legend?) | legend)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
461 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
462 raise NotImplementedError, node
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
463
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
464 def format_image(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
465 ''' EMPTY
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
466 uri CDATA #REQUIRED
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
467 alt CDATA #IMPLIED
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
468 height NMTOKEN #IMPLIED
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
469 width NMTOKEN #IMPLIED
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
470 scale NMTOKEN #IMPLIED
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
471 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
472 attrs = node.attributes
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
473 l = ['src="%(uri)s"'%attrs]
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
474 if attrs.has_key('alt'):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
475 l.append('alt="%(alt)s"'%attrs)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
476 if attrs.has_key('alt'):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
477 l.append('alt="%(alt)s"'%attrs)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
478 if attrs.has_key('height'):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
479 l.append('height="%(height)s"'%attrs)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
480 if attrs.has_key('width'):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
481 l.append('width="%(width)s"'%attrs)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
482 # TODO: scale
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
483 self.w('<img %s>'%(' '.join(l)))
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
484
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
485 def format_caption(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
486 ''' %text.model;
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
487 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
488 raise NotImplementedError, node
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
489
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
490 def format_legend(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
491 ''' (%body.elements;)+
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
492 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
493 raise NotImplementedError, node
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
494
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
495 # System Message
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
496 def format_system_message(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
497 ''' (%body.elements;)+
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
498 level NMTOKEN #IMPLIED
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
499 type CDATA #IMPLIED
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
500 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
501 self.w('<span class="system_message-%s">'%node.attributes['type'])
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
502 if node.children: self.format(node)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
503 self.w('</span>')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
504
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
505 #
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
506 # Tables:
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
507 # NOT IN DOM YET
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
508 #
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
509 def format_table(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
510 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
511 +------------------------+------------+----------+----------+
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
512 | Header row, column 1 | Header 2 | Header 3 | Header 4 |
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
513 | (header rows optional) | | | |
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
514 +========================+============+==========+==========+
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
515 | body row 1, column 1 | column 2 | column 3 | column 4 |
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
516 +------------------------+------------+----------+----------+
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
517 | body row 2 | Cells may span columns. |
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
518 +------------------------+------------+---------------------+
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
519 | body row 3 | Cells may | - Table cells |
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
520 +------------------------+ span rows. | - contain |
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
521 | body row 4 | | - body elements. |
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
522 +------------------------+------------+---------------------+
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
523 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
524 self.w('<table border=1>\n')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
525 if node.children: self.format(node)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
526 self.w('</table>\n')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
527
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
528 def format_tgroup(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
529 # we get the number of columns, if that's important
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
530 if node.children: self.format(node)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
531
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
532 def format_colspec(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
533 # we get colwidth, but don't need it
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
534 pass
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
535
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
536 def format_thead(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
537 for row in node.children:
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
538 self.w('<tr>')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
539 for cell in row.children:
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
540 s = ''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
541 attrs = cell.attributes
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
542 if attrs.has_key('morecols'):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
543 s = s + ' colspan=%d'%(attrs['morecols']+1)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
544 if attrs.has_key('morerows'):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
545 s = s + ' rowspan=%d'%(attrs['morerows']+1)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
546 self.w('<th valign="top" align="left"%s>'%s)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
547 if cell.children: self.format(cell)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
548 self.w('</th>\n')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
549 self.w('</tr>\n')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
550
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
551 def format_tbody(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
552 for row in node.children:
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
553 self.w('<tr>')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
554 for cell in row.children:
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
555 s = ''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
556 attrs = cell.attributes
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
557 if attrs.has_key('morecols'):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
558 s = s + ' colspan=%d'%(attrs['morecols']+1)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
559 if attrs.has_key('morerows'):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
560 s = s + ' rowspan=%d'%(attrs['morerows']+1)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
561 self.w('<td valign="top" align="left"%s>'%s)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
562 if cell.children: self.format(cell)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
563 self.w('</td>\n')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
564 self.w('</tr>\n')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
565
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
566 #
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
567 # Inline Elements
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
568 #
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
569 # Inline elements occur within the text contents of body elements. Some
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
570 # nesting of inline elements is allowed by these definitions, with the
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
571 # following caveats:
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
572 # - An inline element may not contain a nested element of the same type
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
573 # (e.g. <strong> may not contain another <strong>).
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
574 # - Nested inline elements may or may not be supported by individual
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
575 # applications using this DTD.
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
576 # - The inline elements <footnote_reference>, <literal>, and <image> do
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
577 # not support nesting.
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
578 #
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
579 # What that means is that all of these take (%text.model;) except:
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
580 # literal (#PCDATA)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
581 # footnote_reference (#PCDATA)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
582 #
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
583 # text.model:
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
584 # (#PCDATA | %inline.elements;)*
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
585 #
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
586 def format_emphasis(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
587 ''' (%text.model;)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
588 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
589 self.w('<em>')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
590 if node.children: self.format(node)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
591 self.w('</em>')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
592
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
593 def format_strong(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
594 ''' (%text.model;)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
595 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
596 self.w('<strong>')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
597 if node.children: self.format(node)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
598 self.w('</strong>')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
599
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
600 def format_interpreted(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
601 ''' (%text.model;)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
602 type CDATA #IMPLIED
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
603 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
604 pass #raise NotImplementedError, node
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
605
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
606 def format_literal(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
607 ''' (#PCDATA)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
608 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
609 self.w('<tt>')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
610 for literal in node.children:
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
611 self.w(cgi.escape(literal.data))
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
612 self.w('</tt>')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
613
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
614 def format_reference(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
615 ''' (%text.model;)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
616 %reference.atts;
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
617 %anonymous.att;
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
618 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
619 attrs = node.attributes
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
620 doc = self.document
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
621 ok = 1
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
622 print node
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
623 if attrs.has_key('refuri'):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
624 self.w('<a href="%s">'%attrs['refuri'])
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
625 elif doc.explicit_targets.has_key(attrs['refname']):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
626 # an external reference has been defined
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
627 ref = doc.explicit_targets[attrs['refname']]
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
628 if ref.attributes.has_key('refuri'):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
629 self.w('<a href="%s">'%ref.attributes['refuri'])
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
630 else:
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
631 self.w('<a href="#%s">'%attrs['refname'])
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
632 elif doc.implicit_targets.has_key(attrs['refname']):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
633 # internal reference
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
634 name = attrs['refname']
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
635 self.w('<a href="#%s">'%urllib.quote(name))
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
636 else:
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
637 ok = 0
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
638 self.w('<span class="formatter_error">target "%s" '
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
639 'undefined</span>'%attrs['refname'])
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
640 if node.children: self.format(node)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
641 if ok:
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
642 self.w('</a>')
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
643
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
644 def format_footnote_reference(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
645 ''' (#PCDATA)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
646 %reference.atts;
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
647 %auto.att;
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
648 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
649 raise NotImplementedError, node
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
650
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
651 def format_substitution_reference(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
652 ''' (%text.model;)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
653 %refname.att;
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
654 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
655 raise NotImplementedError, node
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
656
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
657 def format_problematic(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
658 ''' (%text.model;)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
659 '''
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
660 raise NotImplementedError, node
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
661
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
662 #
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
663 # Finally, #text
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
664 #
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
665 def format__text(self, node):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
666 self.w(cgi.escape(node.data))
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
667
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
668
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
669 def main(filename, debug=0):
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
670 parser = Parser()
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
671 input = open(filename).read()
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
672 document = dps.utils.newdocument()
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
673 parser.parse(input, document)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
674 if debug == 1:
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
675 print document.pformat()
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
676 else:
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
677 formatter = DumbHTMLFormatter()
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
678 print formatter.format_document(document)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
679
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
680 if __name__ == '__main__':
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
681 if len(sys.argv) > 2:
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
682 main(sys.argv[1], debug=1)
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
683 else:
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
684 main(sys.argv[1])
71bf8f97fe30 Tools used to build the documentation
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
685

Roundup Issue Tracker: http://roundup-tracker.org/