Mercurial > cpython-lru_cache-weakref
annotate Tools/scripts/texi2html.py @ 49955:878d40468c4e legacy-trunk
Issue #4384: Added logging integration with warnings module using captureWarnings(). This change includes a NullHandler which does nothing; it will be of use to library developers who want to avoid the "No handlers could be found for logger XXX" message which can appear if the library user doesn't configure logging.
| author | Vinay Sajip <vinay_sajip@yahoo.co.uk> |
|---|---|
| date | Wed, 03 Dec 2008 23:22:58 +0000 |
| parents | b1d142d71482 |
| children | 74c0a78114ae 6b18a095c2e7 |
| rev | line source |
|---|---|
|
8134
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
1 #! /usr/bin/env python |
| 2551 | 2 |
| 3 # Convert GNU texinfo files into HTML, one file per node. | |
| 4 # Based on Texinfo 2.14. | |
|
3016
7ae332472629
many fixes by anonymous contributor
Guido van Rossum <guido@python.org>
parents:
2705
diff
changeset
|
5 # Usage: texi2html [-d] [-d] [-c] inputfile outputdirectory |
| 2551 | 6 # The input file must be a complete texinfo file, e.g. emacs.texi. |
| 7 # This creates many files (one per info node) in the output directory, | |
| 8 # overwriting existing files of the same name. All files created have | |
| 9 # ".html" as their extension. | |
| 10 | |
| 11 | |
| 12 # XXX To do: | |
| 13 # - handle @comment*** correctly | |
| 14 # - handle @xref {some words} correctly | |
| 15 # - handle @ftable correctly (items aren't indexed?) | |
| 16 # - handle @itemx properly | |
| 17 # - handle @exdent properly | |
| 18 # - add links directly to the proper line from indices | |
| 19 # - check against the definitive list of @-cmds; we still miss (among others): | |
| 20 # - @defindex (hard) | |
| 21 # - @c(omment) in the middle of a line (rarely used) | |
| 22 # - @this* (not really needed, only used in headers anyway) | |
| 23 # - @today{} (ever used outside title page?) | |
| 24 | |
|
3016
7ae332472629
many fixes by anonymous contributor
Guido van Rossum <guido@python.org>
parents:
2705
diff
changeset
|
25 # More consistent handling of chapters/sections/etc. |
|
7ae332472629
many fixes by anonymous contributor
Guido van Rossum <guido@python.org>
parents:
2705
diff
changeset
|
26 # Lots of documentation |
|
7ae332472629
many fixes by anonymous contributor
Guido van Rossum <guido@python.org>
parents:
2705
diff
changeset
|
27 # Many more options: |
| 9105 | 28 # -top designate top node |
| 29 # -links customize which types of links are included | |
| 30 # -split split at chapters or sections instead of nodes | |
| 31 # -name Allow different types of filename handling. Non unix systems | |
| 32 # will have problems with long node names | |
| 33 # ... | |
|
3016
7ae332472629
many fixes by anonymous contributor
Guido van Rossum <guido@python.org>
parents:
2705
diff
changeset
|
34 # Support the most recent texinfo version and take a good look at HTML 3.0 |
|
23895
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
35 # More debugging output (customizable) and more flexible error handling |
|
3016
7ae332472629
many fixes by anonymous contributor
Guido van Rossum <guido@python.org>
parents:
2705
diff
changeset
|
36 # How about icons ? |
| 2551 | 37 |
|
23895
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
38 # rpyron 2002-05-07 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
39 # Robert Pyron <rpyron@alum.mit.edu> |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
40 # 1. BUGFIX: In function makefile(), strip blanks from the nodename. |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
41 # This is necesary to match the behavior of parser.makeref() and |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
42 # parser.do_node(). |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
43 # 2. BUGFIX fixed KeyError in end_ifset (well, I may have just made |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
44 # it go away, rather than fix it) |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
45 # 3. BUGFIX allow @menu and menu items inside @ifset or @ifclear |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
46 # 4. Support added for: |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
47 # @uref URL reference |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
48 # @image image file reference (see note below) |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
49 # @multitable output an HTML table |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
50 # @vtable |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
51 # 5. Partial support for accents, to match MAKEINFO output |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
52 # 6. I added a new command-line option, '-H basename', to specify |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
53 # HTML Help output. This will cause three files to be created |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
54 # in the current directory: |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
55 # `basename`.hhp HTML Help Workshop project file |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
56 # `basename`.hhc Contents file for the project |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
57 # `basename`.hhk Index file for the project |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
58 # When fed into HTML Help Workshop, the resulting file will be |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
59 # named `basename`.chm. |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
60 # 7. A new class, HTMLHelp, to accomplish item 6. |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
61 # 8. Various calls to HTMLHelp functions. |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
62 # A NOTE ON IMAGES: Just as 'outputdirectory' must exist before |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
63 # running this program, all referenced images must already exist |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
64 # in outputdirectory. |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
65 |
| 2551 | 66 import os |
|
23895
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
67 import sys |
| 2551 | 68 import string |
|
8134
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
69 import re |
| 2551 | 70 |
| 71 MAGIC = '\\input texinfo' | |
| 72 | |
|
8134
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
73 cmprog = re.compile('^@([a-z]+)([ \t]|$)') # Command (line-oriented) |
|
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
74 blprog = re.compile('^[ \t]*$') # Blank line |
|
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
75 kwprog = re.compile('@[a-z]+') # Keyword (embedded, usually |
|
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
76 # with {} args) |
|
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
77 spprog = re.compile('[\n@{}&<>]') # Special characters in |
|
15930
14a27acc755a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
9309
diff
changeset
|
78 # running text |
|
8134
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
79 # |
|
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
80 # menu item (Yuck!) |
|
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
81 miprog = re.compile('^\* ([^:]*):(:|[ \t]*([^\t,\n.]+)([^ \t\n]*))[ \t\n]*') |
|
23895
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
82 # 0 1 1 2 3 34 42 0 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
83 # ----- ---------- --------- |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
84 # -|----------------------------- |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
85 # ----------------------------------------------------- |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
86 |
| 2551 | 87 |
|
3016
7ae332472629
many fixes by anonymous contributor
Guido van Rossum <guido@python.org>
parents:
2705
diff
changeset
|
88 |
|
15930
14a27acc755a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
9309
diff
changeset
|
89 |
|
4392
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
90 class HTMLNode: |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
91 """Some of the parser's functionality is separated into this class. |
|
3016
7ae332472629
many fixes by anonymous contributor
Guido van Rossum <guido@python.org>
parents:
2705
diff
changeset
|
92 |
|
7ae332472629
many fixes by anonymous contributor
Guido van Rossum <guido@python.org>
parents:
2705
diff
changeset
|
93 A Node accumulates its contents, takes care of links to other Nodes |
|
4392
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
94 and saves itself when it is finished and all links are resolved. |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
95 """ |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
96 |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
97 DOCTYPE = '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">' |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
98 |
|
4392
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
99 type = 0 |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
100 cont = '' |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
101 epilogue = '</BODY></HTML>\n' |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
102 |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
103 def __init__(self, dir, name, topname, title, next, prev, up): |
| 9105 | 104 self.dirname = dir |
| 105 self.name = name | |
| 106 if topname: | |
| 107 self.topname = topname | |
| 108 else: | |
| 109 self.topname = name | |
| 110 self.title = title | |
| 111 self.next = next | |
| 112 self.prev = prev | |
| 113 self.up = up | |
| 114 self.lines = [] | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
115 |
|
4392
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
116 def write(self, *lines): |
| 9105 | 117 map(self.lines.append, lines) |
|
3016
7ae332472629
many fixes by anonymous contributor
Guido van Rossum <guido@python.org>
parents:
2705
diff
changeset
|
118 |
|
4392
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
119 def flush(self): |
| 9105 | 120 fp = open(self.dirname + '/' + makefile(self.name), 'w') |
| 121 fp.write(self.prologue) | |
| 122 fp.write(self.text) | |
| 123 fp.write(self.epilogue) | |
| 124 fp.close() | |
|
3016
7ae332472629
many fixes by anonymous contributor
Guido van Rossum <guido@python.org>
parents:
2705
diff
changeset
|
125 |
|
4392
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
126 def link(self, label, nodename, rel=None, rev=None): |
| 9105 | 127 if nodename: |
|
23896
ad1d862fb632
Mechanically translated string method calls to string methods.
Fred Drake <fdrake@acm.org>
parents:
23895
diff
changeset
|
128 if nodename.lower() == '(dir)': |
| 9105 | 129 addr = '../dir.html' |
| 130 title = '' | |
| 131 else: | |
| 132 addr = makefile(nodename) | |
| 133 title = ' TITLE="%s"' % nodename | |
| 134 self.write(label, ': <A HREF="', addr, '"', \ | |
| 135 rel and (' REL=' + rel) or "", \ | |
| 136 rev and (' REV=' + rev) or "", \ | |
| 137 title, '>', nodename, '</A> \n') | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
138 |
|
3016
7ae332472629
many fixes by anonymous contributor
Guido van Rossum <guido@python.org>
parents:
2705
diff
changeset
|
139 def finalize(self): |
| 9105 | 140 length = len(self.lines) |
|
23896
ad1d862fb632
Mechanically translated string method calls to string methods.
Fred Drake <fdrake@acm.org>
parents:
23895
diff
changeset
|
141 self.text = ''.join(self.lines) |
| 9105 | 142 self.lines = [] |
| 143 self.open_links() | |
| 144 self.output_links() | |
| 145 self.close_links() | |
|
23896
ad1d862fb632
Mechanically translated string method calls to string methods.
Fred Drake <fdrake@acm.org>
parents:
23895
diff
changeset
|
146 links = ''.join(self.lines) |
| 9105 | 147 self.lines = [] |
| 148 self.prologue = ( | |
| 149 self.DOCTYPE + | |
| 150 '\n<HTML><HEAD>\n' | |
| 151 ' <!-- Converted with texi2html and Python -->\n' | |
| 152 ' <TITLE>' + self.title + '</TITLE>\n' | |
| 153 ' <LINK REL=Next HREF="' | |
| 154 + makefile(self.next) + '" TITLE="' + self.next + '">\n' | |
| 155 ' <LINK REL=Previous HREF="' | |
| 156 + makefile(self.prev) + '" TITLE="' + self.prev + '">\n' | |
| 157 ' <LINK REL=Up HREF="' | |
| 158 + makefile(self.up) + '" TITLE="' + self.up + '">\n' | |
| 159 '</HEAD><BODY>\n' + | |
| 160 links) | |
| 161 if length > 20: | |
| 162 self.epilogue = '<P>\n%s</BODY></HTML>\n' % links | |
|
4392
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
163 |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
164 def open_links(self): |
| 9105 | 165 self.write('<HR>\n') |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
166 |
|
4392
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
167 def close_links(self): |
| 9105 | 168 self.write('<HR>\n') |
|
4392
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
169 |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
170 def output_links(self): |
| 9105 | 171 if self.cont != self.next: |
| 172 self.link(' Cont', self.cont) | |
| 173 self.link(' Next', self.next, rel='Next') | |
| 174 self.link(' Prev', self.prev, rel='Previous') | |
| 175 self.link(' Up', self.up, rel='Up') | |
| 176 if self.name <> self.topname: | |
| 177 self.link(' Top', self.topname) | |
|
4392
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
178 |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
179 |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
180 class HTML3Node(HTMLNode): |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
181 |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
182 DOCTYPE = '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Level 3//EN//3.0">' |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
183 |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
184 def open_links(self): |
| 9105 | 185 self.write('<DIV CLASS=Navigation>\n <HR>\n') |
|
4392
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
186 |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
187 def close_links(self): |
| 9105 | 188 self.write(' <HR>\n</DIV>\n') |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
189 |
|
3016
7ae332472629
many fixes by anonymous contributor
Guido van Rossum <guido@python.org>
parents:
2705
diff
changeset
|
190 |
| 2551 | 191 class TexinfoParser: |
| 192 | |
|
4392
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
193 COPYRIGHT_SYMBOL = "©" |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
194 FN_ID_PATTERN = "(%(id)s)" |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
195 FN_SOURCE_PATTERN = '<A NAME=footnoteref%(id)s' \ |
| 9105 | 196 ' HREF="#footnotetext%(id)s">' \ |
| 197 + FN_ID_PATTERN + '</A>' | |
|
4392
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
198 FN_TARGET_PATTERN = '<A NAME=footnotetext%(id)s' \ |
| 9105 | 199 ' HREF="#footnoteref%(id)s">' \ |
| 200 + FN_ID_PATTERN + '</A>\n%(text)s<P>\n' | |
|
4405
e528c0ace4e5
(texi2html.py): Added CLASS=Navigation attribute to DIV around top/bottom
Fred Drake <fdrake@acm.org>
parents:
4392
diff
changeset
|
201 FN_HEADER = '\n<P>\n<HR NOSHADE SIZE=1 WIDTH=200>\n' \ |
| 9105 | 202 '<STRONG><EM>Footnotes</EM></STRONG>\n<P>' |
|
4392
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
203 |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
204 |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
205 Node = HTMLNode |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
206 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
207 # Initialize an instance |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
208 def __init__(self): |
| 9105 | 209 self.unknown = {} # statistics about unknown @-commands |
| 210 self.filenames = {} # Check for identical filenames | |
| 211 self.debugging = 0 # larger values produce more output | |
| 212 self.print_headers = 0 # always print headers? | |
| 213 self.nodefp = None # open file we're writing to | |
| 214 self.nodelineno = 0 # Linenumber relative to node | |
| 215 self.links = None # Links from current node | |
| 216 self.savetext = None # If not None, save text head instead | |
| 217 self.savestack = [] # If not None, save text head instead | |
|
23895
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
218 self.htmlhelp = None # html help data |
| 9105 | 219 self.dirname = 'tmp' # directory where files are created |
| 220 self.includedir = '.' # directory to search @include files | |
| 221 self.nodename = '' # name of current node | |
| 222 self.topname = '' # name of top node (first node seen) | |
| 223 self.title = '' # title of this whole Texinfo tree | |
| 224 self.resetindex() # Reset all indices | |
| 225 self.contents = [] # Reset table of contents | |
| 226 self.numbering = [] # Reset section numbering counters | |
| 227 self.nofill = 0 # Normal operation: fill paragraphs | |
| 228 self.values={'html': 1} # Names that should be parsed in ifset | |
| 229 self.stackinfo={} # Keep track of state in the stack | |
| 230 # XXX The following should be reset per node?! | |
| 231 self.footnotes = [] # Reset list of footnotes | |
| 232 self.itemarg = None # Reset command used by @item | |
| 233 self.itemnumber = None # Reset number for @item in @enumerate | |
| 234 self.itemindex = None # Reset item index name | |
| 235 self.node = None | |
| 236 self.nodestack = [] | |
| 237 self.cont = 0 | |
| 238 self.includedepth = 0 | |
|
23895
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
239 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
240 # Set htmlhelp helper class |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
241 def sethtmlhelp(self, htmlhelp): |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
242 self.htmlhelp = htmlhelp |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
243 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
244 # Set (output) directory name |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
245 def setdirname(self, dirname): |
| 9105 | 246 self.dirname = dirname |
| 2551 | 247 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
248 # Set include directory name |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
249 def setincludedir(self, includedir): |
| 9105 | 250 self.includedir = includedir |
| 2551 | 251 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
252 # Parse the contents of an entire file |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
253 def parse(self, fp): |
| 9105 | 254 line = fp.readline() |
| 255 lineno = 1 | |
| 256 while line and (line[0] == '%' or blprog.match(line)): | |
| 257 line = fp.readline() | |
| 258 lineno = lineno + 1 | |
| 259 if line[:len(MAGIC)] <> MAGIC: | |
|
31515
71a294bd7950
Replace backticks with repr() or "%r"
Walter Dörwald <walter@livinglogic.de>
parents:
23896
diff
changeset
|
260 raise SyntaxError, 'file does not begin with %r' % (MAGIC,) |
| 9105 | 261 self.parserest(fp, lineno) |
| 2551 | 262 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
263 # Parse the contents of a file, not expecting a MAGIC header |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
264 def parserest(self, fp, initial_lineno): |
| 9105 | 265 lineno = initial_lineno |
| 266 self.done = 0 | |
| 267 self.skip = 0 | |
| 268 self.stack = [] | |
| 269 accu = [] | |
| 270 while not self.done: | |
| 271 line = fp.readline() | |
| 272 self.nodelineno = self.nodelineno + 1 | |
| 273 if not line: | |
| 274 if accu: | |
| 275 if not self.skip: self.process(accu) | |
| 276 accu = [] | |
| 277 if initial_lineno > 0: | |
| 278 print '*** EOF before @bye' | |
| 279 break | |
| 280 lineno = lineno + 1 | |
|
8134
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
281 mo = cmprog.match(line) |
|
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
282 if mo: |
|
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
283 a, b = mo.span(1) |
| 9105 | 284 cmd = line[a:b] |
| 285 if cmd in ('noindent', 'refill'): | |
| 286 accu.append(line) | |
| 287 else: | |
| 288 if accu: | |
| 289 if not self.skip: | |
| 290 self.process(accu) | |
| 291 accu = [] | |
| 292 self.command(line, mo) | |
| 293 elif blprog.match(line) and \ | |
| 294 'format' not in self.stack and \ | |
| 295 'example' not in self.stack: | |
| 296 if accu: | |
| 297 if not self.skip: | |
| 298 self.process(accu) | |
| 299 if self.nofill: | |
| 300 self.write('\n') | |
| 301 else: | |
| 302 self.write('<P>\n') | |
| 303 accu = [] | |
| 304 else: | |
| 305 # Append the line including trailing \n! | |
| 306 accu.append(line) | |
| 307 # | |
| 308 if self.skip: | |
| 309 print '*** Still skipping at the end' | |
| 310 if self.stack: | |
| 311 print '*** Stack not empty at the end' | |
| 312 print '***', self.stack | |
| 313 if self.includedepth == 0: | |
| 314 while self.nodestack: | |
| 315 self.nodestack[-1].finalize() | |
| 316 self.nodestack[-1].flush() | |
| 317 del self.nodestack[-1] | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
318 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
319 # Start saving text in a buffer instead of writing it to a file |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
320 def startsaving(self): |
| 9105 | 321 if self.savetext <> None: |
| 322 self.savestack.append(self.savetext) | |
| 323 # print '*** Recursively saving text, expect trouble' | |
| 324 self.savetext = '' | |
| 2551 | 325 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
326 # Return the text saved so far and start writing to file again |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
327 def collectsavings(self): |
| 9105 | 328 savetext = self.savetext |
| 329 if len(self.savestack) > 0: | |
| 330 self.savetext = self.savestack[-1] | |
| 331 del self.savestack[-1] | |
| 332 else: | |
| 333 self.savetext = None | |
| 334 return savetext or '' | |
| 2551 | 335 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
336 # Write text to file, or save it in a buffer, or ignore it |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
337 def write(self, *args): |
| 9105 | 338 try: |
|
23896
ad1d862fb632
Mechanically translated string method calls to string methods.
Fred Drake <fdrake@acm.org>
parents:
23895
diff
changeset
|
339 text = ''.join(args) |
| 9105 | 340 except: |
| 341 print args | |
| 342 raise TypeError | |
| 343 if self.savetext <> None: | |
| 344 self.savetext = self.savetext + text | |
| 345 elif self.nodefp: | |
| 346 self.nodefp.write(text) | |
| 347 elif self.node: | |
| 348 self.node.write(text) | |
|
23895
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
349 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
350 # Complete the current node -- write footnotes and close file |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
351 def endnode(self): |
| 9105 | 352 if self.savetext <> None: |
| 353 print '*** Still saving text at end of node' | |
| 354 dummy = self.collectsavings() | |
| 355 if self.footnotes: | |
| 356 self.writefootnotes() | |
| 357 if self.nodefp: | |
| 358 if self.nodelineno > 20: | |
| 359 self.write('<HR>\n') | |
| 360 [name, next, prev, up] = self.nodelinks[:4] | |
| 361 self.link('Next', next) | |
| 362 self.link('Prev', prev) | |
| 363 self.link('Up', up) | |
| 364 if self.nodename <> self.topname: | |
| 365 self.link('Top', self.topname) | |
| 366 self.write('<HR>\n') | |
| 367 self.write('</BODY>\n') | |
| 368 self.nodefp.close() | |
| 369 self.nodefp = None | |
| 370 elif self.node: | |
| 371 if not self.cont and \ | |
| 372 (not self.node.type or \ | |
| 373 (self.node.next and self.node.prev and self.node.up)): | |
| 374 self.node.finalize() | |
| 375 self.node.flush() | |
| 376 else: | |
| 377 self.nodestack.append(self.node) | |
| 378 self.node = None | |
| 379 self.nodename = '' | |
| 2551 | 380 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
381 # Process a list of lines, expanding embedded @-commands |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
382 # This mostly distinguishes between menus and normal text |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
383 def process(self, accu): |
| 9105 | 384 if self.debugging > 1: |
|
23895
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
385 print '!'*self.debugging, 'process:', self.skip, self.stack, |
| 9105 | 386 if accu: print accu[0][:30], |
| 387 if accu[0][30:] or accu[1:]: print '...', | |
| 388 print | |
|
23895
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
389 if self.inmenu(): |
| 9105 | 390 # XXX should be done differently |
| 391 for line in accu: | |
|
8134
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
392 mo = miprog.match(line) |
|
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
393 if not mo: |
|
23896
ad1d862fb632
Mechanically translated string method calls to string methods.
Fred Drake <fdrake@acm.org>
parents:
23895
diff
changeset
|
394 line = line.strip() + '\n' |
| 9105 | 395 self.expand(line) |
| 396 continue | |
|
8134
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
397 bgn, end = mo.span(0) |
|
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
398 a, b = mo.span(1) |
|
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
399 c, d = mo.span(2) |
|
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
400 e, f = mo.span(3) |
|
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
401 g, h = mo.span(4) |
| 9105 | 402 label = line[a:b] |
| 403 nodename = line[c:d] | |
| 404 if nodename[0] == ':': nodename = label | |
| 405 else: nodename = line[e:f] | |
| 406 punct = line[g:h] | |
| 407 self.write(' <LI><A HREF="', | |
| 408 makefile(nodename), | |
| 409 '">', nodename, | |
| 410 '</A>', punct, '\n') | |
|
23895
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
411 self.htmlhelp.menuitem(nodename) |
| 9105 | 412 self.expand(line[end:]) |
| 413 else: | |
|
23896
ad1d862fb632
Mechanically translated string method calls to string methods.
Fred Drake <fdrake@acm.org>
parents:
23895
diff
changeset
|
414 text = ''.join(accu) |
| 9105 | 415 self.expand(text) |
| 2551 | 416 |
|
23895
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
417 # find 'menu' (we might be inside 'ifset' or 'ifclear') |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
418 def inmenu(self): |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
419 #if 'menu' in self.stack: |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
420 # print 'inmenu :', self.skip, self.stack, self.stackinfo |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
421 stack = self.stack |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
422 while stack and stack[-1] in ('ifset','ifclear'): |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
423 try: |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
424 if self.stackinfo[len(stack)]: |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
425 return 0 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
426 except KeyError: |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
427 pass |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
428 stack = stack[:-1] |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
429 return (stack and stack[-1] == 'menu') |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
430 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
431 # Write a string, expanding embedded @-commands |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
432 def expand(self, text): |
| 9105 | 433 stack = [] |
| 434 i = 0 | |
| 435 n = len(text) | |
| 436 while i < n: | |
| 437 start = i | |
|
8134
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
438 mo = spprog.search(text, i) |
|
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
439 if mo: |
|
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
440 i = mo.start() |
|
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
441 else: |
| 9105 | 442 self.write(text[start:]) |
| 443 break | |
| 444 self.write(text[start:i]) | |
| 445 c = text[i] | |
| 446 i = i+1 | |
| 447 if c == '\n': | |
| 448 self.write('\n') | |
| 449 continue | |
| 450 if c == '<': | |
| 451 self.write('<') | |
| 452 continue | |
| 453 if c == '>': | |
| 454 self.write('>') | |
| 455 continue | |
| 456 if c == '&': | |
| 457 self.write('&') | |
| 458 continue | |
| 459 if c == '{': | |
| 460 stack.append('') | |
| 461 continue | |
| 462 if c == '}': | |
| 463 if not stack: | |
| 464 print '*** Unmatched }' | |
| 465 self.write('}') | |
| 466 continue | |
| 467 cmd = stack[-1] | |
| 468 del stack[-1] | |
| 469 try: | |
| 470 method = getattr(self, 'close_' + cmd) | |
| 471 except AttributeError: | |
| 472 self.unknown_close(cmd) | |
| 473 continue | |
| 474 method() | |
| 475 continue | |
| 476 if c <> '@': | |
| 477 # Cannot happen unless spprog is changed | |
|
31515
71a294bd7950
Replace backticks with repr() or "%r"
Walter Dörwald <walter@livinglogic.de>
parents:
23896
diff
changeset
|
478 raise RuntimeError, 'unexpected funny %r' % c |
| 9105 | 479 start = i |
|
18781
01ae962df885
Use string.ascii_letters instead of string.letters (SF bug #226706).
Fred Drake <fdrake@acm.org>
parents:
15930
diff
changeset
|
480 while i < n and text[i] in string.ascii_letters: i = i+1 |
| 9105 | 481 if i == start: |
| 482 # @ plus non-letter: literal next character | |
| 483 i = i+1 | |
| 484 c = text[start:i] | |
| 485 if c == ':': | |
| 486 # `@:' means no extra space after | |
| 487 # preceding `.', `?', `!' or `:' | |
| 488 pass | |
| 489 else: | |
| 490 # `@.' means a sentence-ending period; | |
| 491 # `@@', `@{', `@}' quote `@', `{', `}' | |
| 492 self.write(c) | |
| 493 continue | |
| 494 cmd = text[start:i] | |
| 495 if i < n and text[i] == '{': | |
| 496 i = i+1 | |
| 497 stack.append(cmd) | |
| 498 try: | |
| 499 method = getattr(self, 'open_' + cmd) | |
| 500 except AttributeError: | |
| 501 self.unknown_open(cmd) | |
| 502 continue | |
| 503 method() | |
| 504 continue | |
| 505 try: | |
| 506 method = getattr(self, 'handle_' + cmd) | |
| 507 except AttributeError: | |
| 508 self.unknown_handle(cmd) | |
| 509 continue | |
| 510 method() | |
| 511 if stack: | |
| 512 print '*** Stack not empty at para:', stack | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
513 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
514 # --- Handle unknown embedded @-commands --- |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
515 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
516 def unknown_open(self, cmd): |
| 9105 | 517 print '*** No open func for @' + cmd + '{...}' |
| 518 cmd = cmd + '{' | |
| 519 self.write('@', cmd) | |
| 520 if not self.unknown.has_key(cmd): | |
| 521 self.unknown[cmd] = 1 | |
| 522 else: | |
| 523 self.unknown[cmd] = self.unknown[cmd] + 1 | |
|
2705
9ed45dbf2765
mods by Gregor Schmid -- very nice!
Guido van Rossum <guido@python.org>
parents:
2551
diff
changeset
|
524 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
525 def unknown_close(self, cmd): |
| 9105 | 526 print '*** No close func for @' + cmd + '{...}' |
| 527 cmd = '}' + cmd | |
| 528 self.write('}') | |
| 529 if not self.unknown.has_key(cmd): | |
| 530 self.unknown[cmd] = 1 | |
| 531 else: | |
| 532 self.unknown[cmd] = self.unknown[cmd] + 1 | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
533 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
534 def unknown_handle(self, cmd): |
| 9105 | 535 print '*** No handler for @' + cmd |
| 536 self.write('@', cmd) | |
| 537 if not self.unknown.has_key(cmd): | |
| 538 self.unknown[cmd] = 1 | |
| 539 else: | |
| 540 self.unknown[cmd] = self.unknown[cmd] + 1 | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
541 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
542 # XXX The following sections should be ordered as the texinfo docs |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
543 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
544 # --- Embedded @-commands without {} argument list -- |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
545 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
546 def handle_noindent(self): pass |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
547 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
548 def handle_refill(self): pass |
|
3016
7ae332472629
many fixes by anonymous contributor
Guido van Rossum <guido@python.org>
parents:
2705
diff
changeset
|
549 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
550 # --- Include file handling --- |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
551 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
552 def do_include(self, args): |
| 9105 | 553 file = args |
| 554 file = os.path.join(self.includedir, file) | |
| 555 try: | |
| 556 fp = open(file, 'r') | |
| 557 except IOError, msg: | |
|
31515
71a294bd7950
Replace backticks with repr() or "%r"
Walter Dörwald <walter@livinglogic.de>
parents:
23896
diff
changeset
|
558 print '*** Can\'t open include file', repr(file) |
| 9105 | 559 return |
|
31515
71a294bd7950
Replace backticks with repr() or "%r"
Walter Dörwald <walter@livinglogic.de>
parents:
23896
diff
changeset
|
560 print '!'*self.debugging, '--> file', repr(file) |
| 9105 | 561 save_done = self.done |
| 562 save_skip = self.skip | |
| 563 save_stack = self.stack | |
| 564 self.includedepth = self.includedepth + 1 | |
| 565 self.parserest(fp, 0) | |
| 566 self.includedepth = self.includedepth - 1 | |
| 567 fp.close() | |
| 568 self.done = save_done | |
| 569 self.skip = save_skip | |
| 570 self.stack = save_stack | |
|
31515
71a294bd7950
Replace backticks with repr() or "%r"
Walter Dörwald <walter@livinglogic.de>
parents:
23896
diff
changeset
|
571 print '!'*self.debugging, '<-- file', repr(file) |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
572 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
573 # --- Special Insertions --- |
|
3016
7ae332472629
many fixes by anonymous contributor
Guido van Rossum <guido@python.org>
parents:
2705
diff
changeset
|
574 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
575 def open_dmn(self): pass |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
576 def close_dmn(self): pass |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
577 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
578 def open_dots(self): self.write('...') |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
579 def close_dots(self): pass |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
580 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
581 def open_bullet(self): pass |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
582 def close_bullet(self): pass |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
583 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
584 def open_TeX(self): self.write('TeX') |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
585 def close_TeX(self): pass |
| 2551 | 586 |
|
4392
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
587 def handle_copyright(self): self.write(self.COPYRIGHT_SYMBOL) |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
588 def open_copyright(self): self.write(self.COPYRIGHT_SYMBOL) |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
589 def close_copyright(self): pass |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
590 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
591 def open_minus(self): self.write('-') |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
592 def close_minus(self): pass |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
593 |
|
23895
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
594 # --- Accents --- |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
595 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
596 # rpyron 2002-05-07 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
597 # I would like to do at least as well as makeinfo when |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
598 # it is producing HTML output: |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
599 # |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
600 # input output |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
601 # @"o @"o umlaut accent |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
602 # @'o 'o acute accent |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
603 # @,{c} @,{c} cedilla accent |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
604 # @=o @=o macron/overbar accent |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
605 # @^o @^o circumflex accent |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
606 # @`o `o grave accent |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
607 # @~o @~o tilde accent |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
608 # @dotaccent{o} @dotaccent{o} overdot accent |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
609 # @H{o} @H{o} long Hungarian umlaut |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
610 # @ringaccent{o} @ringaccent{o} ring accent |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
611 # @tieaccent{oo} @tieaccent{oo} tie-after accent |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
612 # @u{o} @u{o} breve accent |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
613 # @ubaraccent{o} @ubaraccent{o} underbar accent |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
614 # @udotaccent{o} @udotaccent{o} underdot accent |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
615 # @v{o} @v{o} hacek or check accent |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
616 # @exclamdown{} ¡ upside-down ! |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
617 # @questiondown{} ¿ upside-down ? |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
618 # @aa{},@AA{} å,Å a,A with circle |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
619 # @ae{},@AE{} æ,Æ ae,AE ligatures |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
620 # @dotless{i} @dotless{i} dotless i |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
621 # @dotless{j} @dotless{j} dotless j |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
622 # @l{},@L{} l/,L/ suppressed-L,l |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
623 # @o{},@O{} ø,Ø O,o with slash |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
624 # @oe{},@OE{} oe,OE oe,OE ligatures |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
625 # @ss{} ß es-zet or sharp S |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
626 # |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
627 # The following character codes and approximations have been |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
628 # copied from makeinfo's HTML output. |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
629 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
630 def open_exclamdown(self): self.write('¡') # upside-down ! |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
631 def close_exclamdown(self): pass |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
632 def open_questiondown(self): self.write('¿') # upside-down ? |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
633 def close_questiondown(self): pass |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
634 def open_aa(self): self.write('å') # a with circle |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
635 def close_aa(self): pass |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
636 def open_AA(self): self.write('Å') # A with circle |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
637 def close_AA(self): pass |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
638 def open_ae(self): self.write('æ') # ae ligatures |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
639 def close_ae(self): pass |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
640 def open_AE(self): self.write('Æ') # AE ligatures |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
641 def close_AE(self): pass |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
642 def open_o(self): self.write('ø') # o with slash |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
643 def close_o(self): pass |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
644 def open_O(self): self.write('Ø') # O with slash |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
645 def close_O(self): pass |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
646 def open_ss(self): self.write('ß') # es-zet or sharp S |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
647 def close_ss(self): pass |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
648 def open_oe(self): self.write('oe') # oe ligatures |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
649 def close_oe(self): pass |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
650 def open_OE(self): self.write('OE') # OE ligatures |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
651 def close_OE(self): pass |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
652 def open_l(self): self.write('l/') # suppressed-l |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
653 def close_l(self): pass |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
654 def open_L(self): self.write('L/') # suppressed-L |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
655 def close_L(self): pass |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
656 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
657 # --- Special Glyphs for Examples --- |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
658 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
659 def open_result(self): self.write('=>') |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
660 def close_result(self): pass |
| 2551 | 661 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
662 def open_expansion(self): self.write('==>') |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
663 def close_expansion(self): pass |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
664 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
665 def open_print(self): self.write('-|') |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
666 def close_print(self): pass |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
667 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
668 def open_error(self): self.write('error-->') |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
669 def close_error(self): pass |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
670 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
671 def open_equiv(self): self.write('==') |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
672 def close_equiv(self): pass |
| 2551 | 673 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
674 def open_point(self): self.write('-!-') |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
675 def close_point(self): pass |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
676 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
677 # --- Cross References --- |
| 2551 | 678 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
679 def open_pxref(self): |
| 9105 | 680 self.write('see ') |
| 681 self.startsaving() | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
682 def close_pxref(self): |
| 9105 | 683 self.makeref() |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
684 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
685 def open_xref(self): |
| 9105 | 686 self.write('See ') |
| 687 self.startsaving() | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
688 def close_xref(self): |
| 9105 | 689 self.makeref() |
| 2551 | 690 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
691 def open_ref(self): |
| 9105 | 692 self.startsaving() |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
693 def close_ref(self): |
| 9105 | 694 self.makeref() |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
695 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
696 def open_inforef(self): |
| 9105 | 697 self.write('See info file ') |
| 698 self.startsaving() | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
699 def close_inforef(self): |
| 9105 | 700 text = self.collectsavings() |
|
23896
ad1d862fb632
Mechanically translated string method calls to string methods.
Fred Drake <fdrake@acm.org>
parents:
23895
diff
changeset
|
701 args = [s.strip() for s in text.split(',')] |
| 9105 | 702 while len(args) < 3: args.append('') |
| 703 node = args[0] | |
| 704 file = args[2] | |
| 705 self.write('`', file, '\', node `', node, '\'') | |
| 2551 | 706 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
707 def makeref(self): |
| 9105 | 708 text = self.collectsavings() |
|
23896
ad1d862fb632
Mechanically translated string method calls to string methods.
Fred Drake <fdrake@acm.org>
parents:
23895
diff
changeset
|
709 args = [s.strip() for s in text.split(',')] |
| 9105 | 710 while len(args) < 5: args.append('') |
| 711 nodename = label = args[0] | |
| 712 if args[2]: label = args[2] | |
| 713 file = args[3] | |
| 714 title = args[4] | |
| 715 href = makefile(nodename) | |
| 716 if file: | |
| 717 href = '../' + file + '/' + href | |
| 718 self.write('<A HREF="', href, '">', label, '</A>') | |
| 2551 | 719 |
|
23895
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
720 # rpyron 2002-05-07 uref support |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
721 def open_uref(self): |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
722 self.startsaving() |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
723 def close_uref(self): |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
724 text = self.collectsavings() |
|
23896
ad1d862fb632
Mechanically translated string method calls to string methods.
Fred Drake <fdrake@acm.org>
parents:
23895
diff
changeset
|
725 args = [s.strip() for s in text.split(',')] |
|
23895
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
726 while len(args) < 2: args.append('') |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
727 href = args[0] |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
728 label = args[1] |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
729 if not label: label = href |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
730 self.write('<A HREF="', href, '">', label, '</A>') |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
731 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
732 # rpyron 2002-05-07 image support |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
733 # GNU makeinfo producing HTML output tries `filename.png'; if |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
734 # that does not exist, it tries `filename.jpg'. If that does |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
735 # not exist either, it complains. GNU makeinfo does not handle |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
736 # GIF files; however, I include GIF support here because |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
737 # MySQL documentation uses GIF files. |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
738 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
739 def open_image(self): |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
740 self.startsaving() |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
741 def close_image(self): |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
742 self.makeimage() |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
743 def makeimage(self): |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
744 text = self.collectsavings() |
|
23896
ad1d862fb632
Mechanically translated string method calls to string methods.
Fred Drake <fdrake@acm.org>
parents:
23895
diff
changeset
|
745 args = [s.strip() for s in text.split(',')] |
|
23895
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
746 while len(args) < 5: args.append('') |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
747 filename = args[0] |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
748 width = args[1] |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
749 height = args[2] |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
750 alt = args[3] |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
751 ext = args[4] |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
752 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
753 # The HTML output will have a reference to the image |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
754 # that is relative to the HTML output directory, |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
755 # which is what 'filename' gives us. However, we need |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
756 # to find it relative to our own current directory, |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
757 # so we construct 'imagename'. |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
758 imagelocation = self.dirname + '/' + filename |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
759 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
760 if os.path.exists(imagelocation+'.png'): |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
761 filename += '.png' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
762 elif os.path.exists(imagelocation+'.jpg'): |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
763 filename += '.jpg' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
764 elif os.path.exists(imagelocation+'.gif'): # MySQL uses GIF files |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
765 filename += '.gif' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
766 else: |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
767 print "*** Cannot find image " + imagelocation |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
768 #TODO: what is 'ext'? |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
769 self.write('<IMG SRC="', filename, '"', \ |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
770 width and (' WIDTH="' + width + '"') or "", \ |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
771 height and (' HEIGHT="' + height + '"') or "", \ |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
772 alt and (' ALT="' + alt + '"') or "", \ |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
773 '/>' ) |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
774 self.htmlhelp.addimage(imagelocation) |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
775 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
776 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
777 # --- Marking Words and Phrases --- |
| 2551 | 778 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
779 # --- Other @xxx{...} commands --- |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
780 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
781 def open_(self): pass # Used by {text enclosed in braces} |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
782 def close_(self): pass |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
783 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
784 open_asis = open_ |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
785 close_asis = close_ |
| 2551 | 786 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
787 def open_cite(self): self.write('<CITE>') |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
788 def close_cite(self): self.write('</CITE>') |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
789 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
790 def open_code(self): self.write('<CODE>') |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
791 def close_code(self): self.write('</CODE>') |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
792 |
|
4392
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
793 def open_t(self): self.write('<TT>') |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
794 def close_t(self): self.write('</TT>') |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
795 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
796 def open_dfn(self): self.write('<DFN>') |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
797 def close_dfn(self): self.write('</DFN>') |
| 2551 | 798 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
799 def open_emph(self): self.write('<EM>') |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
800 def close_emph(self): self.write('</EM>') |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
801 |
|
4392
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
802 def open_i(self): self.write('<I>') |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
803 def close_i(self): self.write('</I>') |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
804 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
805 def open_footnote(self): |
| 9105 | 806 # if self.savetext <> None: |
| 807 # print '*** Recursive footnote -- expect weirdness' | |
| 808 id = len(self.footnotes) + 1 | |
|
32734
b1d142d71482
WTF is with this script? It contained illegal syntax and illegal
Tim Peters <tim.peters@gmail.com>
parents:
31515
diff
changeset
|
809 self.write(self.FN_SOURCE_PATTERN % {'id': repr(id)}) |
| 9105 | 810 self.startsaving() |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
811 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
812 def close_footnote(self): |
| 9105 | 813 id = len(self.footnotes) + 1 |
|
9309
bd9d38d64369
Fix multi-arg list.append() calls.
Guido van Rossum <guido@python.org>
parents:
9105
diff
changeset
|
814 self.footnotes.append((id, self.collectsavings())) |
| 2551 | 815 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
816 def writefootnotes(self): |
| 9105 | 817 self.write(self.FN_HEADER) |
| 818 for id, text in self.footnotes: | |
| 819 self.write(self.FN_TARGET_PATTERN | |
|
31515
71a294bd7950
Replace backticks with repr() or "%r"
Walter Dörwald <walter@livinglogic.de>
parents:
23896
diff
changeset
|
820 % {'id': repr(id), 'text': text}) |
| 9105 | 821 self.footnotes = [] |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
822 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
823 def open_file(self): self.write('<CODE>') |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
824 def close_file(self): self.write('</CODE>') |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
825 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
826 def open_kbd(self): self.write('<KBD>') |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
827 def close_kbd(self): self.write('</KBD>') |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
828 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
829 def open_key(self): self.write('<KEY>') |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
830 def close_key(self): self.write('</KEY>') |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
831 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
832 def open_r(self): self.write('<R>') |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
833 def close_r(self): self.write('</R>') |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
834 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
835 def open_samp(self): self.write('`<SAMP>') |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
836 def close_samp(self): self.write('</SAMP>\'') |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
837 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
838 def open_sc(self): self.write('<SMALLCAPS>') |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
839 def close_sc(self): self.write('</SMALLCAPS>') |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
840 |
|
4392
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
841 def open_strong(self): self.write('<STRONG>') |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
842 def close_strong(self): self.write('</STRONG>') |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
843 |
|
4392
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
844 def open_b(self): self.write('<B>') |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
845 def close_b(self): self.write('</B>') |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
846 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
847 def open_var(self): self.write('<VAR>') |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
848 def close_var(self): self.write('</VAR>') |
| 2551 | 849 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
850 def open_w(self): self.write('<NOBREAK>') |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
851 def close_w(self): self.write('</NOBREAK>') |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
852 |
|
8134
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
853 def open_url(self): self.startsaving() |
|
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
854 def close_url(self): |
|
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
855 text = self.collectsavings() |
|
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
856 self.write('<A HREF="', text, '">', text, '</A>') |
|
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
857 |
|
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
858 def open_email(self): self.startsaving() |
|
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
859 def close_email(self): |
|
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
860 text = self.collectsavings() |
|
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
861 self.write('<A HREF="mailto:', text, '">', text, '</A>') |
|
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
862 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
863 open_titlefont = open_ |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
864 close_titlefont = close_ |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
865 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
866 def open_small(self): pass |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
867 def close_small(self): pass |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
868 |
|
8134
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
869 def command(self, line, mo): |
|
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
870 a, b = mo.span(1) |
| 9105 | 871 cmd = line[a:b] |
|
23896
ad1d862fb632
Mechanically translated string method calls to string methods.
Fred Drake <fdrake@acm.org>
parents:
23895
diff
changeset
|
872 args = line[b:].strip() |
| 9105 | 873 if self.debugging > 1: |
|
23895
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
874 print '!'*self.debugging, 'command:', self.skip, self.stack, \ |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
875 '@' + cmd, args |
| 9105 | 876 try: |
| 877 func = getattr(self, 'do_' + cmd) | |
| 878 except AttributeError: | |
| 879 try: | |
| 880 func = getattr(self, 'bgn_' + cmd) | |
| 881 except AttributeError: | |
| 882 # don't complain if we are skipping anyway | |
| 883 if not self.skip: | |
| 884 self.unknown_cmd(cmd, args) | |
| 885 return | |
| 886 self.stack.append(cmd) | |
| 887 func(args) | |
| 888 return | |
| 889 if not self.skip or cmd == 'end': | |
| 890 func(args) | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
891 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
892 def unknown_cmd(self, cmd, args): |
| 9105 | 893 print '*** unknown', '@' + cmd, args |
| 894 if not self.unknown.has_key(cmd): | |
| 895 self.unknown[cmd] = 1 | |
| 896 else: | |
| 897 self.unknown[cmd] = self.unknown[cmd] + 1 | |
|
3016
7ae332472629
many fixes by anonymous contributor
Guido van Rossum <guido@python.org>
parents:
2705
diff
changeset
|
898 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
899 def do_end(self, args): |
|
23896
ad1d862fb632
Mechanically translated string method calls to string methods.
Fred Drake <fdrake@acm.org>
parents:
23895
diff
changeset
|
900 words = args.split() |
| 9105 | 901 if not words: |
| 902 print '*** @end w/o args' | |
| 903 else: | |
| 904 cmd = words[0] | |
| 905 if not self.stack or self.stack[-1] <> cmd: | |
| 906 print '*** @end', cmd, 'unexpected' | |
| 907 else: | |
| 908 del self.stack[-1] | |
| 909 try: | |
| 910 func = getattr(self, 'end_' + cmd) | |
| 911 except AttributeError: | |
| 912 self.unknown_end(cmd) | |
| 913 return | |
| 914 func() | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
915 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
916 def unknown_end(self, cmd): |
| 9105 | 917 cmd = 'end ' + cmd |
| 918 print '*** unknown', '@' + cmd | |
| 919 if not self.unknown.has_key(cmd): | |
| 920 self.unknown[cmd] = 1 | |
| 921 else: | |
| 922 self.unknown[cmd] = self.unknown[cmd] + 1 | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
923 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
924 # --- Comments --- |
|
3016
7ae332472629
many fixes by anonymous contributor
Guido van Rossum <guido@python.org>
parents:
2705
diff
changeset
|
925 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
926 def do_comment(self, args): pass |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
927 do_c = do_comment |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
928 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
929 # --- Conditional processing --- |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
930 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
931 def bgn_ifinfo(self, args): pass |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
932 def end_ifinfo(self): pass |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
933 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
934 def bgn_iftex(self, args): self.skip = self.skip + 1 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
935 def end_iftex(self): self.skip = self.skip - 1 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
936 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
937 def bgn_ignore(self, args): self.skip = self.skip + 1 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
938 def end_ignore(self): self.skip = self.skip - 1 |
| 2551 | 939 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
940 def bgn_tex(self, args): self.skip = self.skip + 1 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
941 def end_tex(self): self.skip = self.skip - 1 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
942 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
943 def do_set(self, args): |
|
23896
ad1d862fb632
Mechanically translated string method calls to string methods.
Fred Drake <fdrake@acm.org>
parents:
23895
diff
changeset
|
944 fields = args.split(' ') |
| 9105 | 945 key = fields[0] |
| 946 if len(fields) == 1: | |
| 947 value = 1 | |
| 948 else: | |
|
23896
ad1d862fb632
Mechanically translated string method calls to string methods.
Fred Drake <fdrake@acm.org>
parents:
23895
diff
changeset
|
949 value = ' '.join(fields[1:]) |
| 9105 | 950 self.values[key] = value |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
951 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
952 def do_clear(self, args): |
| 9105 | 953 self.values[args] = None |
|
3016
7ae332472629
many fixes by anonymous contributor
Guido van Rossum <guido@python.org>
parents:
2705
diff
changeset
|
954 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
955 def bgn_ifset(self, args): |
| 9105 | 956 if args not in self.values.keys() \ |
| 957 or self.values[args] is None: | |
| 958 self.skip = self.skip + 1 | |
| 959 self.stackinfo[len(self.stack)] = 1 | |
| 960 else: | |
| 961 self.stackinfo[len(self.stack)] = 0 | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
962 def end_ifset(self): |
|
23895
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
963 try: |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
964 if self.stackinfo[len(self.stack) + 1]: |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
965 self.skip = self.skip - 1 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
966 del self.stackinfo[len(self.stack) + 1] |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
967 except KeyError: |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
968 print '*** end_ifset: KeyError :', len(self.stack) + 1 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
969 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
970 def bgn_ifclear(self, args): |
| 9105 | 971 if args in self.values.keys() \ |
| 972 and self.values[args] is not None: | |
| 973 self.skip = self.skip + 1 | |
| 974 self.stackinfo[len(self.stack)] = 1 | |
| 975 else: | |
| 976 self.stackinfo[len(self.stack)] = 0 | |
|
23895
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
977 def end_ifclear(self): |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
978 try: |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
979 if self.stackinfo[len(self.stack) + 1]: |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
980 self.skip = self.skip - 1 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
981 del self.stackinfo[len(self.stack) + 1] |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
982 except KeyError: |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
983 print '*** end_ifclear: KeyError :', len(self.stack) + 1 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
984 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
985 def open_value(self): |
| 9105 | 986 self.startsaving() |
| 2551 | 987 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
988 def close_value(self): |
| 9105 | 989 key = self.collectsavings() |
| 990 if key in self.values.keys(): | |
| 991 self.write(self.values[key]) | |
| 992 else: | |
| 993 print '*** Undefined value: ', key | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
994 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
995 # --- Beginning a file --- |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
996 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
997 do_finalout = do_comment |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
998 do_setchapternewpage = do_comment |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
999 do_setfilename = do_comment |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1000 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1001 def do_settitle(self, args): |
| 9105 | 1002 self.startsaving() |
| 1003 self.expand(args) | |
| 1004 self.title = self.collectsavings() | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1005 def do_parskip(self, args): pass |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1006 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1007 # --- Ending a file --- |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1008 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1009 def do_bye(self, args): |
| 9105 | 1010 self.endnode() |
| 1011 self.done = 1 | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1012 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1013 # --- Title page --- |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1014 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1015 def bgn_titlepage(self, args): self.skip = self.skip + 1 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1016 def end_titlepage(self): self.skip = self.skip - 1 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1017 def do_shorttitlepage(self, args): pass |
| 2551 | 1018 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1019 def do_center(self, args): |
| 9105 | 1020 # Actually not used outside title page... |
| 1021 self.write('<H1>') | |
| 1022 self.expand(args) | |
| 1023 self.write('</H1>\n') | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1024 do_title = do_center |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1025 do_subtitle = do_center |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1026 do_author = do_center |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1027 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1028 do_vskip = do_comment |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1029 do_vfill = do_comment |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1030 do_smallbook = do_comment |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1031 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1032 do_paragraphindent = do_comment |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1033 do_setchapternewpage = do_comment |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1034 do_headings = do_comment |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1035 do_footnotestyle = do_comment |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1036 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1037 do_evenheading = do_comment |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1038 do_evenfooting = do_comment |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1039 do_oddheading = do_comment |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1040 do_oddfooting = do_comment |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1041 do_everyheading = do_comment |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1042 do_everyfooting = do_comment |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1043 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1044 # --- Nodes --- |
| 2551 | 1045 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1046 def do_node(self, args): |
| 9105 | 1047 self.endnode() |
| 1048 self.nodelineno = 0 | |
|
23896
ad1d862fb632
Mechanically translated string method calls to string methods.
Fred Drake <fdrake@acm.org>
parents:
23895
diff
changeset
|
1049 parts = [s.strip() for s in args.split(',')] |
| 9105 | 1050 while len(parts) < 4: parts.append('') |
| 1051 self.nodelinks = parts | |
| 1052 [name, next, prev, up] = parts[:4] | |
| 1053 file = self.dirname + '/' + makefile(name) | |
| 1054 if self.filenames.has_key(file): | |
| 1055 print '*** Filename already in use: ', file | |
| 1056 else: | |
|
23895
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1057 if self.debugging: print '!'*self.debugging, '--- writing', file |
| 9105 | 1058 self.filenames[file] = 1 |
| 1059 # self.nodefp = open(file, 'w') | |
| 1060 self.nodename = name | |
| 1061 if self.cont and self.nodestack: | |
| 1062 self.nodestack[-1].cont = self.nodename | |
| 1063 if not self.topname: self.topname = name | |
| 1064 title = name | |
| 1065 if self.title: title = title + ' -- ' + self.title | |
| 1066 self.node = self.Node(self.dirname, self.nodename, self.topname, | |
| 1067 title, next, prev, up) | |
|
23895
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1068 self.htmlhelp.addnode(self.nodename,next,prev,up,file) |
| 2551 | 1069 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1070 def link(self, label, nodename): |
| 9105 | 1071 if nodename: |
|
23896
ad1d862fb632
Mechanically translated string method calls to string methods.
Fred Drake <fdrake@acm.org>
parents:
23895
diff
changeset
|
1072 if nodename.lower() == '(dir)': |
| 9105 | 1073 addr = '../dir.html' |
| 1074 else: | |
| 1075 addr = makefile(nodename) | |
| 1076 self.write(label, ': <A HREF="', addr, '" TYPE="', | |
| 1077 label, '">', nodename, '</A> \n') | |
| 2551 | 1078 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1079 # --- Sectioning commands --- |
| 2551 | 1080 |
|
4392
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
1081 def popstack(self, type): |
| 9105 | 1082 if (self.node): |
| 1083 self.node.type = type | |
| 1084 while self.nodestack: | |
| 1085 if self.nodestack[-1].type > type: | |
| 1086 self.nodestack[-1].finalize() | |
| 1087 self.nodestack[-1].flush() | |
| 1088 del self.nodestack[-1] | |
| 1089 elif self.nodestack[-1].type == type: | |
| 1090 if not self.nodestack[-1].next: | |
| 1091 self.nodestack[-1].next = self.node.name | |
| 1092 if not self.node.prev: | |
| 1093 self.node.prev = self.nodestack[-1].name | |
| 1094 self.nodestack[-1].finalize() | |
| 1095 self.nodestack[-1].flush() | |
| 1096 del self.nodestack[-1] | |
| 1097 else: | |
| 1098 if type > 1 and not self.node.up: | |
| 1099 self.node.up = self.nodestack[-1].name | |
| 1100 break | |
| 2551 | 1101 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1102 def do_chapter(self, args): |
| 9105 | 1103 self.heading('H1', args, 0) |
| 1104 self.popstack(1) | |
| 2551 | 1105 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1106 def do_unnumbered(self, args): |
| 9105 | 1107 self.heading('H1', args, -1) |
| 1108 self.popstack(1) | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1109 def do_appendix(self, args): |
| 9105 | 1110 self.heading('H1', args, -1) |
| 1111 self.popstack(1) | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1112 def do_top(self, args): |
| 9105 | 1113 self.heading('H1', args, -1) |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1114 def do_chapheading(self, args): |
| 9105 | 1115 self.heading('H1', args, -1) |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1116 def do_majorheading(self, args): |
| 9105 | 1117 self.heading('H1', args, -1) |
| 2551 | 1118 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1119 def do_section(self, args): |
| 9105 | 1120 self.heading('H1', args, 1) |
| 1121 self.popstack(2) | |
| 2551 | 1122 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1123 def do_unnumberedsec(self, args): |
| 9105 | 1124 self.heading('H1', args, -1) |
| 1125 self.popstack(2) | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1126 def do_appendixsec(self, args): |
| 9105 | 1127 self.heading('H1', args, -1) |
| 1128 self.popstack(2) | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1129 do_appendixsection = do_appendixsec |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1130 def do_heading(self, args): |
| 9105 | 1131 self.heading('H1', args, -1) |
| 2551 | 1132 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1133 def do_subsection(self, args): |
| 9105 | 1134 self.heading('H2', args, 2) |
| 1135 self.popstack(3) | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1136 def do_unnumberedsubsec(self, args): |
| 9105 | 1137 self.heading('H2', args, -1) |
| 1138 self.popstack(3) | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1139 def do_appendixsubsec(self, args): |
| 9105 | 1140 self.heading('H2', args, -1) |
| 1141 self.popstack(3) | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1142 def do_subheading(self, args): |
| 9105 | 1143 self.heading('H2', args, -1) |
| 2551 | 1144 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1145 def do_subsubsection(self, args): |
| 9105 | 1146 self.heading('H3', args, 3) |
| 1147 self.popstack(4) | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1148 def do_unnumberedsubsubsec(self, args): |
| 9105 | 1149 self.heading('H3', args, -1) |
| 1150 self.popstack(4) | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1151 def do_appendixsubsubsec(self, args): |
| 9105 | 1152 self.heading('H3', args, -1) |
| 1153 self.popstack(4) | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1154 def do_subsubheading(self, args): |
| 9105 | 1155 self.heading('H3', args, -1) |
| 2551 | 1156 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1157 def heading(self, type, args, level): |
| 9105 | 1158 if level >= 0: |
| 1159 while len(self.numbering) <= level: | |
| 1160 self.numbering.append(0) | |
| 1161 del self.numbering[level+1:] | |
| 1162 self.numbering[level] = self.numbering[level] + 1 | |
| 1163 x = '' | |
| 1164 for i in self.numbering: | |
|
31515
71a294bd7950
Replace backticks with repr() or "%r"
Walter Dörwald <walter@livinglogic.de>
parents:
23896
diff
changeset
|
1165 x = x + repr(i) + '.' |
| 9105 | 1166 args = x + ' ' + args |
|
9309
bd9d38d64369
Fix multi-arg list.append() calls.
Guido van Rossum <guido@python.org>
parents:
9105
diff
changeset
|
1167 self.contents.append((level, args, self.nodename)) |
| 9105 | 1168 self.write('<', type, '>') |
| 1169 self.expand(args) | |
| 1170 self.write('</', type, '>\n') | |
| 1171 if self.debugging or self.print_headers: | |
| 1172 print '---', args | |
| 2551 | 1173 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1174 def do_contents(self, args): |
| 9105 | 1175 # pass |
| 1176 self.listcontents('Table of Contents', 999) | |
| 2551 | 1177 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1178 def do_shortcontents(self, args): |
| 9105 | 1179 pass |
| 1180 # self.listcontents('Short Contents', 0) | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1181 do_summarycontents = do_shortcontents |
| 2551 | 1182 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1183 def listcontents(self, title, maxlevel): |
| 9105 | 1184 self.write('<H1>', title, '</H1>\n<UL COMPACT PLAIN>\n') |
| 1185 prevlevels = [0] | |
| 1186 for level, title, node in self.contents: | |
| 1187 if level > maxlevel: | |
| 1188 continue | |
| 1189 if level > prevlevels[-1]: | |
| 1190 # can only advance one level at a time | |
| 1191 self.write(' '*prevlevels[-1], '<UL PLAIN>\n') | |
| 1192 prevlevels.append(level) | |
| 1193 elif level < prevlevels[-1]: | |
| 1194 # might drop back multiple levels | |
| 1195 while level < prevlevels[-1]: | |
| 1196 del prevlevels[-1] | |
| 1197 self.write(' '*prevlevels[-1], | |
| 1198 '</UL>\n') | |
| 1199 self.write(' '*level, '<LI> <A HREF="', | |
| 1200 makefile(node), '">') | |
| 1201 self.expand(title) | |
| 1202 self.write('</A>\n') | |
| 1203 self.write('</UL>\n' * len(prevlevels)) | |
|
2705
9ed45dbf2765
mods by Gregor Schmid -- very nice!
Guido van Rossum <guido@python.org>
parents:
2551
diff
changeset
|
1204 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1205 # --- Page lay-out --- |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1206 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1207 # These commands are only meaningful in printed text |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1208 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1209 def do_page(self, args): pass |
| 2551 | 1210 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1211 def do_need(self, args): pass |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1212 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1213 def bgn_group(self, args): pass |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1214 def end_group(self): pass |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1215 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1216 # --- Line lay-out --- |
| 2551 | 1217 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1218 def do_sp(self, args): |
| 9105 | 1219 if self.nofill: |
| 1220 self.write('\n') | |
| 1221 else: | |
| 1222 self.write('<P>\n') | |
| 2551 | 1223 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1224 def do_hline(self, args): |
| 9105 | 1225 self.write('<HR>') |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1226 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1227 # --- Function and variable definitions --- |
|
3016
7ae332472629
many fixes by anonymous contributor
Guido van Rossum <guido@python.org>
parents:
2705
diff
changeset
|
1228 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1229 def bgn_deffn(self, args): |
| 9105 | 1230 self.write('<DL>') |
| 1231 self.do_deffnx(args) | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1232 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1233 def end_deffn(self): |
| 9105 | 1234 self.write('</DL>\n') |
|
3016
7ae332472629
many fixes by anonymous contributor
Guido van Rossum <guido@python.org>
parents:
2705
diff
changeset
|
1235 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1236 def do_deffnx(self, args): |
| 9105 | 1237 self.write('<DT>') |
| 1238 words = splitwords(args, 2) | |
| 1239 [category, name], rest = words[:2], words[2:] | |
| 1240 self.expand('@b{%s}' % name) | |
| 1241 for word in rest: self.expand(' ' + makevar(word)) | |
| 1242 #self.expand(' -- ' + category) | |
| 1243 self.write('\n<DD>') | |
| 1244 self.index('fn', name) | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1245 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1246 def bgn_defun(self, args): self.bgn_deffn('Function ' + args) |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1247 end_defun = end_deffn |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1248 def do_defunx(self, args): self.do_deffnx('Function ' + args) |
| 2551 | 1249 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1250 def bgn_defmac(self, args): self.bgn_deffn('Macro ' + args) |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1251 end_defmac = end_deffn |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1252 def do_defmacx(self, args): self.do_deffnx('Macro ' + args) |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1253 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1254 def bgn_defspec(self, args): self.bgn_deffn('{Special Form} ' + args) |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1255 end_defspec = end_deffn |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1256 def do_defspecx(self, args): self.do_deffnx('{Special Form} ' + args) |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1257 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1258 def bgn_defvr(self, args): |
| 9105 | 1259 self.write('<DL>') |
| 1260 self.do_defvrx(args) | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1261 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1262 end_defvr = end_deffn |
| 2551 | 1263 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1264 def do_defvrx(self, args): |
| 9105 | 1265 self.write('<DT>') |
| 1266 words = splitwords(args, 2) | |
| 1267 [category, name], rest = words[:2], words[2:] | |
| 1268 self.expand('@code{%s}' % name) | |
| 1269 # If there are too many arguments, show them | |
| 1270 for word in rest: self.expand(' ' + word) | |
| 1271 #self.expand(' -- ' + category) | |
| 1272 self.write('\n<DD>') | |
| 1273 self.index('vr', name) | |
| 2551 | 1274 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1275 def bgn_defvar(self, args): self.bgn_defvr('Variable ' + args) |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1276 end_defvar = end_defvr |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1277 def do_defvarx(self, args): self.do_defvrx('Variable ' + args) |
| 2551 | 1278 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1279 def bgn_defopt(self, args): self.bgn_defvr('{User Option} ' + args) |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1280 end_defopt = end_defvr |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1281 def do_defoptx(self, args): self.do_defvrx('{User Option} ' + args) |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1282 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1283 # --- Ditto for typed languages --- |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1284 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1285 def bgn_deftypefn(self, args): |
| 9105 | 1286 self.write('<DL>') |
| 1287 self.do_deftypefnx(args) | |
|
3016
7ae332472629
many fixes by anonymous contributor
Guido van Rossum <guido@python.org>
parents:
2705
diff
changeset
|
1288 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1289 end_deftypefn = end_deffn |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1290 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1291 def do_deftypefnx(self, args): |
| 9105 | 1292 self.write('<DT>') |
| 1293 words = splitwords(args, 3) | |
| 1294 [category, datatype, name], rest = words[:3], words[3:] | |
| 1295 self.expand('@code{%s} @b{%s}' % (datatype, name)) | |
| 1296 for word in rest: self.expand(' ' + makevar(word)) | |
| 1297 #self.expand(' -- ' + category) | |
| 1298 self.write('\n<DD>') | |
| 1299 self.index('fn', name) | |
| 2551 | 1300 |
| 1301 | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1302 def bgn_deftypefun(self, args): self.bgn_deftypefn('Function ' + args) |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1303 end_deftypefun = end_deftypefn |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1304 def do_deftypefunx(self, args): self.do_deftypefnx('Function ' + args) |
| 2551 | 1305 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1306 def bgn_deftypevr(self, args): |
| 9105 | 1307 self.write('<DL>') |
| 1308 self.do_deftypevrx(args) | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1309 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1310 end_deftypevr = end_deftypefn |
|
3016
7ae332472629
many fixes by anonymous contributor
Guido van Rossum <guido@python.org>
parents:
2705
diff
changeset
|
1311 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1312 def do_deftypevrx(self, args): |
| 9105 | 1313 self.write('<DT>') |
| 1314 words = splitwords(args, 3) | |
| 1315 [category, datatype, name], rest = words[:3], words[3:] | |
| 1316 self.expand('@code{%s} @b{%s}' % (datatype, name)) | |
| 1317 # If there are too many arguments, show them | |
| 1318 for word in rest: self.expand(' ' + word) | |
| 1319 #self.expand(' -- ' + category) | |
| 1320 self.write('\n<DD>') | |
| 1321 self.index('fn', name) | |
| 2551 | 1322 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1323 def bgn_deftypevar(self, args): |
| 9105 | 1324 self.bgn_deftypevr('Variable ' + args) |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1325 end_deftypevar = end_deftypevr |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1326 def do_deftypevarx(self, args): |
| 9105 | 1327 self.do_deftypevrx('Variable ' + args) |
| 2551 | 1328 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1329 # --- Ditto for object-oriented languages --- |
| 2551 | 1330 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1331 def bgn_defcv(self, args): |
| 9105 | 1332 self.write('<DL>') |
| 1333 self.do_defcvx(args) | |
|
3016
7ae332472629
many fixes by anonymous contributor
Guido van Rossum <guido@python.org>
parents:
2705
diff
changeset
|
1334 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1335 end_defcv = end_deftypevr |
|
3016
7ae332472629
many fixes by anonymous contributor
Guido van Rossum <guido@python.org>
parents:
2705
diff
changeset
|
1336 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1337 def do_defcvx(self, args): |
| 9105 | 1338 self.write('<DT>') |
| 1339 words = splitwords(args, 3) | |
| 1340 [category, classname, name], rest = words[:3], words[3:] | |
| 1341 self.expand('@b{%s}' % name) | |
| 1342 # If there are too many arguments, show them | |
| 1343 for word in rest: self.expand(' ' + word) | |
| 1344 #self.expand(' -- %s of @code{%s}' % (category, classname)) | |
| 1345 self.write('\n<DD>') | |
| 1346 self.index('vr', '%s @r{on %s}' % (name, classname)) | |
| 2551 | 1347 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1348 def bgn_defivar(self, args): |
| 9105 | 1349 self.bgn_defcv('{Instance Variable} ' + args) |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1350 end_defivar = end_defcv |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1351 def do_defivarx(self, args): |
| 9105 | 1352 self.do_defcvx('{Instance Variable} ' + args) |
| 2551 | 1353 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1354 def bgn_defop(self, args): |
| 9105 | 1355 self.write('<DL>') |
| 1356 self.do_defopx(args) | |
|
3016
7ae332472629
many fixes by anonymous contributor
Guido van Rossum <guido@python.org>
parents:
2705
diff
changeset
|
1357 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1358 end_defop = end_defcv |
|
3016
7ae332472629
many fixes by anonymous contributor
Guido van Rossum <guido@python.org>
parents:
2705
diff
changeset
|
1359 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1360 def do_defopx(self, args): |
| 9105 | 1361 self.write('<DT>') |
| 1362 words = splitwords(args, 3) | |
| 1363 [category, classname, name], rest = words[:3], words[3:] | |
| 1364 self.expand('@b{%s}' % name) | |
| 1365 for word in rest: self.expand(' ' + makevar(word)) | |
| 1366 #self.expand(' -- %s of @code{%s}' % (category, classname)) | |
| 1367 self.write('\n<DD>') | |
| 1368 self.index('fn', '%s @r{on %s}' % (name, classname)) | |
| 2551 | 1369 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1370 def bgn_defmethod(self, args): |
| 9105 | 1371 self.bgn_defop('Method ' + args) |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1372 end_defmethod = end_defop |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1373 def do_defmethodx(self, args): |
| 9105 | 1374 self.do_defopx('Method ' + args) |
| 2551 | 1375 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1376 # --- Ditto for data types --- |
| 2551 | 1377 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1378 def bgn_deftp(self, args): |
| 9105 | 1379 self.write('<DL>') |
| 1380 self.do_deftpx(args) | |
|
3016
7ae332472629
many fixes by anonymous contributor
Guido van Rossum <guido@python.org>
parents:
2705
diff
changeset
|
1381 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1382 end_deftp = end_defcv |
|
3016
7ae332472629
many fixes by anonymous contributor
Guido van Rossum <guido@python.org>
parents:
2705
diff
changeset
|
1383 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1384 def do_deftpx(self, args): |
| 9105 | 1385 self.write('<DT>') |
| 1386 words = splitwords(args, 2) | |
| 1387 [category, name], rest = words[:2], words[2:] | |
| 1388 self.expand('@b{%s}' % name) | |
| 1389 for word in rest: self.expand(' ' + word) | |
| 1390 #self.expand(' -- ' + category) | |
| 1391 self.write('\n<DD>') | |
| 1392 self.index('tp', name) | |
| 2551 | 1393 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1394 # --- Making Lists and Tables |
| 2551 | 1395 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1396 def bgn_enumerate(self, args): |
| 9105 | 1397 if not args: |
| 1398 self.write('<OL>\n') | |
| 1399 self.stackinfo[len(self.stack)] = '</OL>\n' | |
| 1400 else: | |
| 1401 self.itemnumber = args | |
| 1402 self.write('<UL>\n') | |
| 1403 self.stackinfo[len(self.stack)] = '</UL>\n' | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1404 def end_enumerate(self): |
| 9105 | 1405 self.itemnumber = None |
| 1406 self.write(self.stackinfo[len(self.stack) + 1]) | |
| 1407 del self.stackinfo[len(self.stack) + 1] | |
| 2551 | 1408 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1409 def bgn_itemize(self, args): |
| 9105 | 1410 self.itemarg = args |
| 1411 self.write('<UL>\n') | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1412 def end_itemize(self): |
| 9105 | 1413 self.itemarg = None |
| 1414 self.write('</UL>\n') | |
| 2551 | 1415 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1416 def bgn_table(self, args): |
| 9105 | 1417 self.itemarg = args |
| 1418 self.write('<DL>\n') | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1419 def end_table(self): |
| 9105 | 1420 self.itemarg = None |
| 1421 self.write('</DL>\n') | |
| 2551 | 1422 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1423 def bgn_ftable(self, args): |
| 9105 | 1424 self.itemindex = 'fn' |
| 1425 self.bgn_table(args) | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1426 def end_ftable(self): |
| 9105 | 1427 self.itemindex = None |
| 1428 self.end_table() | |
| 2551 | 1429 |
|
23895
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1430 def bgn_vtable(self, args): |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1431 self.itemindex = 'vr' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1432 self.bgn_table(args) |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1433 def end_vtable(self): |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1434 self.itemindex = None |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1435 self.end_table() |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1436 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1437 def do_item(self, args): |
| 9105 | 1438 if self.itemindex: self.index(self.itemindex, args) |
| 1439 if self.itemarg: | |
|
23895
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1440 if self.itemarg[0] == '@' and self.itemarg[1] and \ |
|
18781
01ae962df885
Use string.ascii_letters instead of string.letters (SF bug #226706).
Fred Drake <fdrake@acm.org>
parents:
15930
diff
changeset
|
1441 self.itemarg[1] in string.ascii_letters: |
| 9105 | 1442 args = self.itemarg + '{' + args + '}' |
| 1443 else: | |
| 1444 # some other character, e.g. '-' | |
| 1445 args = self.itemarg + ' ' + args | |
| 1446 if self.itemnumber <> None: | |
| 1447 args = self.itemnumber + '. ' + args | |
| 1448 self.itemnumber = increment(self.itemnumber) | |
| 1449 if self.stack and self.stack[-1] == 'table': | |
| 1450 self.write('<DT>') | |
| 1451 self.expand(args) | |
| 1452 self.write('\n<DD>') | |
|
23895
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1453 elif self.stack and self.stack[-1] == 'multitable': |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1454 self.write('<TR><TD>') |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1455 self.expand(args) |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1456 self.write('</TD>\n</TR>\n') |
| 9105 | 1457 else: |
| 1458 self.write('<LI>') | |
| 1459 self.expand(args) | |
| 1460 self.write(' ') | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1461 do_itemx = do_item # XXX Should suppress leading blank line |
| 2551 | 1462 |
|
23895
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1463 # rpyron 2002-05-07 multitable support |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1464 def bgn_multitable(self, args): |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1465 self.itemarg = None # should be handled by columnfractions |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1466 self.write('<TABLE BORDER="">\n') |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1467 def end_multitable(self): |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1468 self.itemarg = None |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1469 self.write('</TABLE>\n<BR>\n') |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1470 def handle_columnfractions(self): |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1471 # It would be better to handle this, but for now it's in the way... |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1472 self.itemarg = None |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1473 def handle_tab(self): |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1474 self.write('</TD>\n <TD>') |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1475 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1476 # --- Enumerations, displays, quotations --- |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1477 # XXX Most of these should increase the indentation somehow |
| 2551 | 1478 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1479 def bgn_quotation(self, args): self.write('<BLOCKQUOTE>') |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1480 def end_quotation(self): self.write('</BLOCKQUOTE>\n') |
| 2551 | 1481 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1482 def bgn_example(self, args): |
| 9105 | 1483 self.nofill = self.nofill + 1 |
| 1484 self.write('<PRE>') | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1485 def end_example(self): |
| 9105 | 1486 self.write('</PRE>\n') |
| 1487 self.nofill = self.nofill - 1 | |
| 2551 | 1488 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1489 bgn_lisp = bgn_example # Synonym when contents are executable lisp code |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1490 end_lisp = end_example |
| 2551 | 1491 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1492 bgn_smallexample = bgn_example # XXX Should use smaller font |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1493 end_smallexample = end_example |
| 2551 | 1494 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1495 bgn_smalllisp = bgn_lisp # Ditto |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1496 end_smalllisp = end_lisp |
| 2551 | 1497 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1498 bgn_display = bgn_example |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1499 end_display = end_example |
| 2551 | 1500 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1501 bgn_format = bgn_display |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1502 end_format = end_display |
| 2551 | 1503 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1504 def do_exdent(self, args): self.expand(args + '\n') |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1505 # XXX Should really mess with indentation |
| 2551 | 1506 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1507 def bgn_flushleft(self, args): |
| 9105 | 1508 self.nofill = self.nofill + 1 |
| 1509 self.write('<PRE>\n') | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1510 def end_flushleft(self): |
| 9105 | 1511 self.write('</PRE>\n') |
| 1512 self.nofill = self.nofill - 1 | |
| 2551 | 1513 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1514 def bgn_flushright(self, args): |
| 9105 | 1515 self.nofill = self.nofill + 1 |
| 1516 self.write('<ADDRESS COMPACT>\n') | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1517 def end_flushright(self): |
| 9105 | 1518 self.write('</ADDRESS>\n') |
| 1519 self.nofill = self.nofill - 1 | |
| 2551 | 1520 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1521 def bgn_menu(self, args): |
| 9105 | 1522 self.write('<DIR>\n') |
| 1523 self.write(' <STRONG><EM>Menu</EM></STRONG><P>\n') | |
|
23895
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1524 self.htmlhelp.beginmenu() |
|
4392
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
1525 def end_menu(self): |
| 9105 | 1526 self.write('</DIR>\n') |
|
23895
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1527 self.htmlhelp.endmenu() |
| 2551 | 1528 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1529 def bgn_cartouche(self, args): pass |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1530 def end_cartouche(self): pass |
| 2551 | 1531 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1532 # --- Indices --- |
| 2551 | 1533 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1534 def resetindex(self): |
| 9105 | 1535 self.noncodeindices = ['cp'] |
| 1536 self.indextitle = {} | |
| 1537 self.indextitle['cp'] = 'Concept' | |
| 1538 self.indextitle['fn'] = 'Function' | |
| 1539 self.indextitle['ky'] = 'Keyword' | |
| 1540 self.indextitle['pg'] = 'Program' | |
| 1541 self.indextitle['tp'] = 'Type' | |
| 1542 self.indextitle['vr'] = 'Variable' | |
| 1543 # | |
| 1544 self.whichindex = {} | |
| 1545 for name in self.indextitle.keys(): | |
| 1546 self.whichindex[name] = [] | |
| 2551 | 1547 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1548 def user_index(self, name, args): |
| 9105 | 1549 if self.whichindex.has_key(name): |
| 1550 self.index(name, args) | |
| 1551 else: | |
|
31515
71a294bd7950
Replace backticks with repr() or "%r"
Walter Dörwald <walter@livinglogic.de>
parents:
23896
diff
changeset
|
1552 print '*** No index named', repr(name) |
| 2551 | 1553 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1554 def do_cindex(self, args): self.index('cp', args) |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1555 def do_findex(self, args): self.index('fn', args) |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1556 def do_kindex(self, args): self.index('ky', args) |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1557 def do_pindex(self, args): self.index('pg', args) |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1558 def do_tindex(self, args): self.index('tp', args) |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1559 def do_vindex(self, args): self.index('vr', args) |
| 2551 | 1560 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1561 def index(self, name, args): |
|
9309
bd9d38d64369
Fix multi-arg list.append() calls.
Guido van Rossum <guido@python.org>
parents:
9105
diff
changeset
|
1562 self.whichindex[name].append((args, self.nodename)) |
|
23895
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1563 self.htmlhelp.index(args, self.nodename) |
| 2551 | 1564 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1565 def do_synindex(self, args): |
|
23896
ad1d862fb632
Mechanically translated string method calls to string methods.
Fred Drake <fdrake@acm.org>
parents:
23895
diff
changeset
|
1566 words = args.split() |
| 9105 | 1567 if len(words) <> 2: |
| 1568 print '*** bad @synindex', args | |
| 1569 return | |
| 1570 [old, new] = words | |
| 1571 if not self.whichindex.has_key(old) or \ | |
| 1572 not self.whichindex.has_key(new): | |
| 1573 print '*** bad key(s) in @synindex', args | |
| 1574 return | |
| 1575 if old <> new and \ | |
| 1576 self.whichindex[old] is not self.whichindex[new]: | |
| 1577 inew = self.whichindex[new] | |
| 1578 inew[len(inew):] = self.whichindex[old] | |
| 1579 self.whichindex[old] = inew | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1580 do_syncodeindex = do_synindex # XXX Should use code font |
| 2551 | 1581 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1582 def do_printindex(self, args): |
|
23896
ad1d862fb632
Mechanically translated string method calls to string methods.
Fred Drake <fdrake@acm.org>
parents:
23895
diff
changeset
|
1583 words = args.split() |
| 9105 | 1584 for name in words: |
| 1585 if self.whichindex.has_key(name): | |
| 1586 self.prindex(name) | |
| 1587 else: | |
|
31515
71a294bd7950
Replace backticks with repr() or "%r"
Walter Dörwald <walter@livinglogic.de>
parents:
23896
diff
changeset
|
1588 print '*** No index named', repr(name) |
| 2551 | 1589 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1590 def prindex(self, name): |
| 9105 | 1591 iscodeindex = (name not in self.noncodeindices) |
| 1592 index = self.whichindex[name] | |
| 1593 if not index: return | |
| 1594 if self.debugging: | |
|
23895
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1595 print '!'*self.debugging, '--- Generating', \ |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1596 self.indextitle[name], 'index' |
| 9105 | 1597 # The node already provides a title |
| 1598 index1 = [] | |
|
8134
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
1599 junkprog = re.compile('^(@[a-z]+)?{') |
| 9105 | 1600 for key, node in index: |
|
23896
ad1d862fb632
Mechanically translated string method calls to string methods.
Fred Drake <fdrake@acm.org>
parents:
23895
diff
changeset
|
1601 sortkey = key.lower() |
| 9105 | 1602 # Remove leading `@cmd{' from sort key |
| 1603 # -- don't bother about the matching `}' | |
| 1604 oldsortkey = sortkey | |
| 1605 while 1: | |
|
8134
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
1606 mo = junkprog.match(sortkey) |
|
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
1607 if not mo: |
|
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
1608 break |
|
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
1609 i = mo.end() |
| 9105 | 1610 sortkey = sortkey[i:] |
|
9309
bd9d38d64369
Fix multi-arg list.append() calls.
Guido van Rossum <guido@python.org>
parents:
9105
diff
changeset
|
1611 index1.append((sortkey, key, node)) |
| 9105 | 1612 del index[:] |
| 1613 index1.sort() | |
| 1614 self.write('<DL COMPACT>\n') | |
| 1615 prevkey = prevnode = None | |
| 1616 for sortkey, key, node in index1: | |
| 1617 if (key, node) == (prevkey, prevnode): | |
| 1618 continue | |
|
23895
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1619 if self.debugging > 1: print '!'*self.debugging, key, ':', node |
| 9105 | 1620 self.write('<DT>') |
| 1621 if iscodeindex: key = '@code{' + key + '}' | |
| 1622 if key != prevkey: | |
| 1623 self.expand(key) | |
| 1624 self.write('\n<DD><A HREF="%s">%s</A>\n' % (makefile(node), node)) | |
| 1625 prevkey, prevnode = key, node | |
| 1626 self.write('</DL>\n') | |
| 2551 | 1627 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1628 # --- Final error reports --- |
| 2551 | 1629 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1630 def report(self): |
| 9105 | 1631 if self.unknown: |
| 1632 print '--- Unrecognized commands ---' | |
| 1633 cmds = self.unknown.keys() | |
| 1634 cmds.sort() | |
| 1635 for cmd in cmds: | |
|
23896
ad1d862fb632
Mechanically translated string method calls to string methods.
Fred Drake <fdrake@acm.org>
parents:
23895
diff
changeset
|
1636 print cmd.ljust(20), self.unknown[cmd] |
| 2551 | 1637 |
| 1638 | |
|
4392
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
1639 class TexinfoParserHTML3(TexinfoParser): |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
1640 |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
1641 COPYRIGHT_SYMBOL = "©" |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
1642 FN_ID_PATTERN = "[%(id)s]" |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
1643 FN_SOURCE_PATTERN = '<A ID=footnoteref%(id)s ' \ |
| 9105 | 1644 'HREF="#footnotetext%(id)s">' + FN_ID_PATTERN + '</A>' |
|
4392
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
1645 FN_TARGET_PATTERN = '<FN ID=footnotetext%(id)s>\n' \ |
| 9105 | 1646 '<P><A HREF="#footnoteref%(id)s">' + FN_ID_PATTERN \ |
| 1647 + '</A>\n%(text)s</P></FN>\n' | |
|
4392
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
1648 FN_HEADER = '<DIV CLASS=footnotes>\n <HR NOSHADE WIDTH=200>\n' \ |
| 9105 | 1649 ' <STRONG><EM>Footnotes</EM></STRONG>\n <P>\n' |
|
4392
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
1650 |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
1651 Node = HTML3Node |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
1652 |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
1653 def bgn_quotation(self, args): self.write('<BQ>') |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
1654 def end_quotation(self): self.write('</BQ>\n') |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
1655 |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
1656 def bgn_example(self, args): |
| 9105 | 1657 # this use of <CODE> would not be legal in HTML 2.0, |
| 1658 # but is in more recent DTDs. | |
| 1659 self.nofill = self.nofill + 1 | |
| 1660 self.write('<PRE CLASS=example><CODE>') | |
|
4507
18927abdc262
(texi2html.py): Minor improvement to HTML 3.0 output for code examples.
Fred Drake <fdrake@acm.org>
parents:
4405
diff
changeset
|
1661 def end_example(self): |
| 9105 | 1662 self.write("</CODE></PRE>\n") |
| 1663 self.nofill = self.nofill - 1 | |
|
4392
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
1664 |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
1665 def bgn_flushleft(self, args): |
| 9105 | 1666 self.nofill = self.nofill + 1 |
| 1667 self.write('<PRE CLASS=flushleft>\n') | |
|
4392
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
1668 |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
1669 def bgn_flushright(self, args): |
| 9105 | 1670 self.nofill = self.nofill + 1 |
| 1671 self.write('<DIV ALIGN=right CLASS=flushright><ADDRESS COMPACT>\n') | |
|
4392
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
1672 def end_flushright(self): |
| 9105 | 1673 self.write('</ADDRESS></DIV>\n') |
| 1674 self.nofill = self.nofill - 1 | |
|
4392
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
1675 |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
1676 def bgn_menu(self, args): |
| 9105 | 1677 self.write('<UL PLAIN CLASS=menu>\n') |
| 1678 self.write(' <LH>Menu</LH>\n') | |
|
4392
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
1679 def end_menu(self): |
| 9105 | 1680 self.write('</UL>\n') |
|
4392
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
1681 |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
1682 |
|
23895
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1683 # rpyron 2002-05-07 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1684 class HTMLHelp: |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1685 """ |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1686 This class encapsulates support for HTML Help. Node names, |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1687 file names, menu items, index items, and image file names are |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1688 accumulated until a call to finalize(). At that time, three |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1689 output files are created in the current directory: |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1690 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1691 `helpbase`.hhp is a HTML Help Workshop project file. |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1692 It contains various information, some of |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1693 which I do not understand; I just copied |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1694 the default project info from a fresh |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1695 installation. |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1696 `helpbase`.hhc is the Contents file for the project. |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1697 `helpbase`.hhk is the Index file for the project. |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1698 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1699 When these files are used as input to HTML Help Workshop, |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1700 the resulting file will be named: |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1701 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1702 `helpbase`.chm |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1703 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1704 If none of the defaults in `helpbase`.hhp are changed, |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1705 the .CHM file will have Contents, Index, Search, and |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1706 Favorites tabs. |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1707 """ |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1708 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1709 codeprog = re.compile('@code{(.*?)}') |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1710 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1711 def __init__(self,helpbase,dirname): |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1712 self.helpbase = helpbase |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1713 self.dirname = dirname |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1714 self.projectfile = None |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1715 self.contentfile = None |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1716 self.indexfile = None |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1717 self.nodelist = [] |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1718 self.nodenames = {} # nodename : index |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1719 self.nodeindex = {} |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1720 self.filenames = {} # filename : filename |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1721 self.indexlist = [] # (args,nodename) == (key,location) |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1722 self.current = '' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1723 self.menudict = {} |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1724 self.dumped = {} |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1725 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1726 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1727 def addnode(self,name,next,prev,up,filename): |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1728 node = (name,next,prev,up,filename) |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1729 # add this file to dict |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1730 # retrieve list with self.filenames.values() |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1731 self.filenames[filename] = filename |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1732 # add this node to nodelist |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1733 self.nodeindex[name] = len(self.nodelist) |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1734 self.nodelist.append(node) |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1735 # set 'current' for menu items |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1736 self.current = name |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1737 self.menudict[self.current] = [] |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1738 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1739 def menuitem(self,nodename): |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1740 menu = self.menudict[self.current] |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1741 menu.append(nodename) |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1742 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1743 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1744 def addimage(self,imagename): |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1745 self.filenames[imagename] = imagename |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1746 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1747 def index(self, args, nodename): |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1748 self.indexlist.append((args,nodename)) |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1749 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1750 def beginmenu(self): |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1751 pass |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1752 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1753 def endmenu(self): |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1754 pass |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1755 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1756 def finalize(self): |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1757 if not self.helpbase: |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1758 return |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1759 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1760 # generate interesting filenames |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1761 resultfile = self.helpbase + '.chm' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1762 projectfile = self.helpbase + '.hhp' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1763 contentfile = self.helpbase + '.hhc' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1764 indexfile = self.helpbase + '.hhk' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1765 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1766 # generate a reasonable title |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1767 title = self.helpbase |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1768 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1769 # get the default topic file |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1770 (topname,topnext,topprev,topup,topfile) = self.nodelist[0] |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1771 defaulttopic = topfile |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1772 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1773 # PROJECT FILE |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1774 try: |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1775 fp = open(projectfile,'w') |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1776 print>>fp, '[OPTIONS]' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1777 print>>fp, 'Auto Index=Yes' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1778 print>>fp, 'Binary TOC=No' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1779 print>>fp, 'Binary Index=Yes' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1780 print>>fp, 'Compatibility=1.1' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1781 print>>fp, 'Compiled file=' + resultfile + '' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1782 print>>fp, 'Contents file=' + contentfile + '' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1783 print>>fp, 'Default topic=' + defaulttopic + '' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1784 print>>fp, 'Error log file=ErrorLog.log' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1785 print>>fp, 'Index file=' + indexfile + '' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1786 print>>fp, 'Title=' + title + '' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1787 print>>fp, 'Display compile progress=Yes' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1788 print>>fp, 'Full-text search=Yes' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1789 print>>fp, 'Default window=main' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1790 print>>fp, '' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1791 print>>fp, '[WINDOWS]' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1792 print>>fp, ('main=,"' + contentfile + '","' + indexfile |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1793 + '","","",,,,,0x23520,222,0x1046,[10,10,780,560],' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1794 '0xB0000,,,,,,0') |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1795 print>>fp, '' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1796 print>>fp, '[FILES]' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1797 print>>fp, '' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1798 self.dumpfiles(fp) |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1799 fp.close() |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1800 except IOError, msg: |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1801 print projectfile, ':', msg |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1802 sys.exit(1) |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1803 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1804 # CONTENT FILE |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1805 try: |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1806 fp = open(contentfile,'w') |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1807 print>>fp, '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1808 print>>fp, '<!-- This file defines the table of contents -->' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1809 print>>fp, '<HTML>' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1810 print>>fp, '<HEAD>' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1811 print>>fp, ('<meta name="GENERATOR"' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1812 'content="Microsoft® HTML Help Workshop 4.1">') |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1813 print>>fp, '<!-- Sitemap 1.0 -->' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1814 print>>fp, '</HEAD>' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1815 print>>fp, '<BODY>' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1816 print>>fp, ' <OBJECT type="text/site properties">' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1817 print>>fp, ' <param name="Window Styles" value="0x800025">' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1818 print>>fp, ' <param name="comment" value="title:">' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1819 print>>fp, ' <param name="comment" value="base:">' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1820 print>>fp, ' </OBJECT>' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1821 self.dumpnodes(fp) |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1822 print>>fp, '</BODY>' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1823 print>>fp, '</HTML>' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1824 fp.close() |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1825 except IOError, msg: |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1826 print contentfile, ':', msg |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1827 sys.exit(1) |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1828 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1829 # INDEX FILE |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1830 try: |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1831 fp = open(indexfile ,'w') |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1832 print>>fp, '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1833 print>>fp, '<!-- This file defines the index -->' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1834 print>>fp, '<HTML>' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1835 print>>fp, '<HEAD>' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1836 print>>fp, ('<meta name="GENERATOR"' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1837 'content="Microsoft® HTML Help Workshop 4.1">') |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1838 print>>fp, '<!-- Sitemap 1.0 -->' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1839 print>>fp, '</HEAD>' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1840 print>>fp, '<BODY>' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1841 print>>fp, '<OBJECT type="text/site properties">' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1842 print>>fp, '</OBJECT>' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1843 self.dumpindex(fp) |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1844 print>>fp, '</BODY>' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1845 print>>fp, '</HTML>' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1846 fp.close() |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1847 except IOError, msg: |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1848 print indexfile , ':', msg |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1849 sys.exit(1) |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1850 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1851 def dumpfiles(self, outfile=sys.stdout): |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1852 filelist = self.filenames.values() |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1853 filelist.sort() |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1854 for filename in filelist: |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1855 print>>outfile, filename |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1856 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1857 def dumpnodes(self, outfile=sys.stdout): |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1858 self.dumped = {} |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1859 if self.nodelist: |
|
32734
b1d142d71482
WTF is with this script? It contained illegal syntax and illegal
Tim Peters <tim.peters@gmail.com>
parents:
31515
diff
changeset
|
1860 nodename, dummy, dummy, dummy, dummy = self.nodelist[0] |
|
23895
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1861 self.topnode = nodename |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1862 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1863 print>>outfile, '<UL>' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1864 for node in self.nodelist: |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1865 self.dumpnode(node,0,outfile) |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1866 print>>outfile, '</UL>' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1867 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1868 def dumpnode(self, node, indent=0, outfile=sys.stdout): |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1869 if node: |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1870 # Retrieve info for this node |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1871 (nodename,next,prev,up,filename) = node |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1872 self.current = nodename |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1873 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1874 # Have we been dumped already? |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1875 if self.dumped.has_key(nodename): |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1876 return |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1877 self.dumped[nodename] = 1 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1878 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1879 # Print info for this node |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1880 print>>outfile, ' '*indent, |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1881 print>>outfile, '<LI><OBJECT type="text/sitemap">', |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1882 print>>outfile, '<param name="Name" value="' + nodename +'">', |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1883 print>>outfile, '<param name="Local" value="'+ filename +'">', |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1884 print>>outfile, '</OBJECT>' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1885 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1886 # Does this node have menu items? |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1887 try: |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1888 menu = self.menudict[nodename] |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1889 self.dumpmenu(menu,indent+2,outfile) |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1890 except KeyError: |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1891 pass |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1892 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1893 def dumpmenu(self, menu, indent=0, outfile=sys.stdout): |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1894 if menu: |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1895 currentnode = self.current |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1896 if currentnode != self.topnode: # XXX this is a hack |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1897 print>>outfile, ' '*indent + '<UL>' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1898 indent += 2 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1899 for item in menu: |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1900 menunode = self.getnode(item) |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1901 self.dumpnode(menunode,indent,outfile) |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1902 if currentnode != self.topnode: # XXX this is a hack |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1903 print>>outfile, ' '*indent + '</UL>' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1904 indent -= 2 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1905 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1906 def getnode(self, nodename): |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1907 try: |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1908 index = self.nodeindex[nodename] |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1909 return self.nodelist[index] |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1910 except KeyError: |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1911 return None |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1912 except IndexError: |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1913 return None |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1914 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1915 # (args,nodename) == (key,location) |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1916 def dumpindex(self, outfile=sys.stdout): |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1917 print>>outfile, '<UL>' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1918 for (key,location) in self.indexlist: |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1919 key = self.codeexpand(key) |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1920 location = makefile(location) |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1921 location = self.dirname + '/' + location |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1922 print>>outfile, '<LI><OBJECT type="text/sitemap">', |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1923 print>>outfile, '<param name="Name" value="' + key + '">', |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1924 print>>outfile, '<param name="Local" value="' + location + '">', |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1925 print>>outfile, '</OBJECT>' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1926 print>>outfile, '</UL>' |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1927 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1928 def codeexpand(self, line): |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1929 co = self.codeprog.match(line) |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1930 if not co: |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1931 return line |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1932 bgn, end = co.span(0) |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1933 a, b = co.span(1) |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1934 line = line[:bgn] + line[a:b] + line[end:] |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1935 return line |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1936 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
1937 |
| 2551 | 1938 # Put @var{} around alphabetic substrings |
| 1939 def makevar(str): | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1940 return '@var{'+str+'}' |
| 2551 | 1941 |
| 1942 | |
| 1943 # Split a string in "words" according to findwordend | |
| 1944 def splitwords(str, minlength): | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1945 words = [] |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1946 i = 0 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1947 n = len(str) |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1948 while i < n: |
| 9105 | 1949 while i < n and str[i] in ' \t\n': i = i+1 |
| 1950 if i >= n: break | |
| 1951 start = i | |
| 1952 i = findwordend(str, i, n) | |
| 1953 words.append(str[start:i]) | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1954 while len(words) < minlength: words.append('') |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1955 return words |
| 2551 | 1956 |
| 1957 | |
| 1958 # Find the end of a "word", matching braces and interpreting @@ @{ @} | |
|
8134
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
1959 fwprog = re.compile('[@{} ]') |
| 2551 | 1960 def findwordend(str, i, n): |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1961 level = 0 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1962 while i < n: |
|
8134
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
1963 mo = fwprog.search(str, i) |
|
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
1964 if not mo: |
|
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
1965 break |
|
c7d99f6d2e2f
Use the (new) standard script #! line
Barry Warsaw <barry@python.org>
parents:
4507
diff
changeset
|
1966 i = mo.start() |
| 9105 | 1967 c = str[i]; i = i+1 |
| 1968 if c == '@': i = i+1 # Next character is not special | |
| 1969 elif c == '{': level = level+1 | |
| 1970 elif c == '}': level = level-1 | |
| 1971 elif c == ' ' and level <= 0: return i-1 | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1972 return n |
| 2551 | 1973 |
| 1974 | |
| 1975 # Convert a node name into a file name | |
| 1976 def makefile(nodename): | |
|
23896
ad1d862fb632
Mechanically translated string method calls to string methods.
Fred Drake <fdrake@acm.org>
parents:
23895
diff
changeset
|
1977 nodename = nodename.strip() |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1978 return fixfunnychars(nodename) + '.html' |
| 2551 | 1979 |
| 1980 | |
| 1981 # Characters that are perfectly safe in filenames and hyperlinks | |
|
18781
01ae962df885
Use string.ascii_letters instead of string.letters (SF bug #226706).
Fred Drake <fdrake@acm.org>
parents:
15930
diff
changeset
|
1982 goodchars = string.ascii_letters + string.digits + '!@-=+.' |
| 2551 | 1983 |
|
3016
7ae332472629
many fixes by anonymous contributor
Guido van Rossum <guido@python.org>
parents:
2705
diff
changeset
|
1984 # Replace characters that aren't perfectly safe by dashes |
|
7ae332472629
many fixes by anonymous contributor
Guido van Rossum <guido@python.org>
parents:
2705
diff
changeset
|
1985 # Underscores are bad since Cern HTTPD treats them as delimiters for |
|
7ae332472629
many fixes by anonymous contributor
Guido van Rossum <guido@python.org>
parents:
2705
diff
changeset
|
1986 # encoding times, so you get mismatches if you compress your files: |
|
7ae332472629
many fixes by anonymous contributor
Guido van Rossum <guido@python.org>
parents:
2705
diff
changeset
|
1987 # a.html.gz will map to a_b.html.gz |
| 2551 | 1988 def fixfunnychars(addr): |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1989 i = 0 |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1990 while i < len(addr): |
| 9105 | 1991 c = addr[i] |
| 1992 if c not in goodchars: | |
| 1993 c = '-' | |
| 1994 addr = addr[:i] + c + addr[i+1:] | |
| 1995 i = i + len(c) | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
1996 return addr |
| 2551 | 1997 |
| 1998 | |
| 1999 # Increment a string used as an enumeration | |
| 2000 def increment(s): | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
2001 if not s: |
| 9105 | 2002 return '1' |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
2003 for sequence in string.digits, string.lowercase, string.uppercase: |
| 9105 | 2004 lastc = s[-1] |
| 2005 if lastc in sequence: | |
|
23896
ad1d862fb632
Mechanically translated string method calls to string methods.
Fred Drake <fdrake@acm.org>
parents:
23895
diff
changeset
|
2006 i = sequence.index(lastc) + 1 |
| 9105 | 2007 if i >= len(sequence): |
| 2008 if len(s) == 1: | |
| 2009 s = sequence[0]*2 | |
| 2010 if s == '00': | |
| 2011 s = '10' | |
| 2012 else: | |
| 2013 s = increment(s[:-1]) + sequence[0] | |
| 2014 else: | |
| 2015 s = s[:-1] + sequence[i] | |
| 2016 return s | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
2017 return s # Don't increment |
| 2551 | 2018 |
| 2019 | |
| 2020 def test(): | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
2021 import sys |
|
4392
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
2022 debugging = 0 |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
2023 print_headers = 0 |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
2024 cont = 0 |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
2025 html3 = 0 |
|
23895
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
2026 htmlhelp = '' |
|
15930
14a27acc755a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
9309
diff
changeset
|
2027 |
|
23895
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
2028 while sys.argv[1] == ['-d']: |
| 9105 | 2029 debugging = debugging + 1 |
|
23895
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
2030 del sys.argv[1] |
|
4392
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
2031 if sys.argv[1] == '-p': |
| 9105 | 2032 print_headers = 1 |
| 2033 del sys.argv[1] | |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
2034 if sys.argv[1] == '-c': |
| 9105 | 2035 cont = 1 |
| 2036 del sys.argv[1] | |
|
4392
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
2037 if sys.argv[1] == '-3': |
| 9105 | 2038 html3 = 1 |
| 2039 del sys.argv[1] | |
|
23895
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
2040 if sys.argv[1] == '-H': |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
2041 helpbase = sys.argv[2] |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
2042 del sys.argv[1:3] |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
2043 if len(sys.argv) <> 3: |
|
23895
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
2044 print 'usage: texi2hh [-d [-d]] [-p] [-c] [-3] [-H htmlhelp]', \ |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
2045 'inputfile outputdirectory' |
| 9105 | 2046 sys.exit(2) |
|
4392
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
2047 |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
2048 if html3: |
| 9105 | 2049 parser = TexinfoParserHTML3() |
|
4392
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
2050 else: |
| 9105 | 2051 parser = TexinfoParser() |
|
4392
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
2052 parser.cont = cont |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
2053 parser.debugging = debugging |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
2054 parser.print_headers = print_headers |
|
72a0cfda2004
(texi2html.py): Tightened the generated HTML slightly. Added -p option to
Fred Drake <fdrake@acm.org>
parents:
4307
diff
changeset
|
2055 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
2056 file = sys.argv[1] |
|
23895
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
2057 dirname = sys.argv[2] |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
2058 parser.setdirname(dirname) |
|
32734
b1d142d71482
WTF is with this script? It contained illegal syntax and illegal
Tim Peters <tim.peters@gmail.com>
parents:
31515
diff
changeset
|
2059 parser.setincludedir(os.path.dirname(file)) |
|
23895
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
2060 |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
2061 htmlhelp = HTMLHelp(helpbase, dirname) |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
2062 parser.sethtmlhelp(htmlhelp) |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
2063 |
|
32734
b1d142d71482
WTF is with this script? It contained illegal syntax and illegal
Tim Peters <tim.peters@gmail.com>
parents:
31515
diff
changeset
|
2064 try: |
|
b1d142d71482
WTF is with this script? It contained illegal syntax and illegal
Tim Peters <tim.peters@gmail.com>
parents:
31515
diff
changeset
|
2065 fp = open(file, 'r') |
|
b1d142d71482
WTF is with this script? It contained illegal syntax and illegal
Tim Peters <tim.peters@gmail.com>
parents:
31515
diff
changeset
|
2066 except IOError, msg: |
|
b1d142d71482
WTF is with this script? It contained illegal syntax and illegal
Tim Peters <tim.peters@gmail.com>
parents:
31515
diff
changeset
|
2067 print file, ':', msg |
|
b1d142d71482
WTF is with this script? It contained illegal syntax and illegal
Tim Peters <tim.peters@gmail.com>
parents:
31515
diff
changeset
|
2068 sys.exit(1) |
|
23895
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
2069 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
2070 parser.parse(fp) |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
2071 fp.close() |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
2072 parser.report() |
| 2551 | 2073 |
|
23895
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
2074 htmlhelp.finalize() |
|
02c5045d5b4e
SF patch #552837, submitted by Robert Pyron:
Fred Drake <fdrake@acm.org>
parents:
18781
diff
changeset
|
2075 |
| 2551 | 2076 |
|
4307
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
2077 if __name__ == "__main__": |
|
2eec35e2afff
(texi2html.py): Use "if __name__ == '__main__':" test. Adjust indentation
Fred Drake <fdrake@acm.org>
parents:
3998
diff
changeset
|
2078 test() |
