Mercurial > p > roundup > code
annotate tools/html.py @ 718:e10c37f53efd
fixed SCRIPT_NAME in ZRoundup for instances not at top level of Zope
(thanks dman)
fixed some sorting issues that were breaking some unit tests under py2.2
mailgw test output dir was confusing the init test (but only on 2.2 *shrug*)
fixed bug in the init unit test that meant only the bsddb test ran if it
could (it clobbered the anydbm test)
| author | Richard Jones <richard@users.sourceforge.net> |
|---|---|
| date | Wed, 15 May 2002 03:27:16 +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 |
