Mercurial > p > roundup > code
annotate tools/html.py @ 694:34dbcdfb2fe1
stripping of email message body can be controlled through config variables...
...EMAIL_KEEP_QUOTED_TEST and EMAIL_LEAVE_BODY_UNCHANGED.
| author | Roche Compaan <rochecompaan@users.sourceforge.net> |
|---|---|
| date | Tue, 23 Apr 2002 15:46:49 +0000 |
| parents | 71bf8f97fe30 |
| children |
| 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 |
