annotate tools/html.py @ 635:3d61b5d2243e

Added popup help for classes using the classhelp html template function. - add <display call="classhelp('priority', 'id,name,description')"> to an item page, and it generates a link to a popup window which displays the id, name and description for the priority class. The description field won't exist in most installations, but it will be added to the default templates.
author Richard Jones <richard@users.sourceforge.net>
date Thu, 21 Feb 2002 06:57:39 +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/