Adjust to understand use of either single- or double-quotes to quote

attribute values, and make the logic surrounding the platform
annotations just a little easier to read.  Also make the platform
notes appear in the generated page; they were supposed to, but did not.
This commit is contained in:
Fred Drake 2001-06-22 17:11:30 +00:00
parent aff8837740
commit 9ca78ac57f
1 changed files with 23 additions and 20 deletions

View File

@ -49,26 +49,30 @@ class IndexOptions(support.Options):
class Node(buildindex.Node):
annotation = ""
def __init__(self, link, str, seqno):
parts = string.split(str, None, 1)
if parts[0][-5:] == "</tt>":
self.modname = parts[0][:-5]
else:
self.modname = parts[0]
if len(parts) == 2:
self.annotation = parts[1]
def __init__(self, link, str, seqno, platinfo):
self.annotation = platinfo or None
if str[0][-5:] == "</tt>":
str = str[:-5]
self.modname = str
buildindex.Node.__init__(self, link, self.modname, seqno)
if platinfo:
s = '<tt class="module">%s</tt> %s' \
% (self.modname, self.annotation)
else:
s = '<tt class="module">%s</tt>' % str
self.text = [s]
def __str__(self):
return '<tt class="module">%s</tt> %s' \
% (self.modname, self.annotation)
if self.annotation:
return '<tt class="module">%s</tt> %s' \
% (self.modname, self.annotation)
else:
return '<tt class="module">%s</tt>' % self.modname
_rx = re.compile(
"<dt><a href='(module-.*\.html)#l2h-\d+'><tt class='module'>"
"([a-zA-Z_][a-zA-Z0-9_.]*</tt>(\s*<em>"
"\(<span class='platform'>.*</span>\)</em>)?)</a>")
"<dt><a href=['\"](module-.*\.html)(?:#l2h-\d+)?['\"]>"
"<tt class=['\"]module['\"]>([a-zA-Z_][a-zA-Z0-9_.]*)</tt>\s*(<em>"
"\(<span class=['\"]platform['\"]>.*</span>\)</em>)?</a>")
def main():
options = IndexOptions()
@ -81,7 +85,6 @@ def main():
# Collect the input data:
#
nodes = []
seqno = 0
has_plat_flag = 0
for ifn in args:
if ifn == "-":
@ -97,11 +100,11 @@ def main():
m = _rx.match(line)
if m:
# This line specifies a module!
basename, modname = m.group(1, 2)
has_plat_flag = has_plat_flag or m.group(3)
basename, modname, platinfo = m.group(1, 2, 3)
has_plat_flag = has_plat_flag or platinfo
linkfile = os.path.join(dirname, basename)
nodes.append(Node('<a href="%s">' % linkfile, modname, seqno))
seqno = seqno + 1
nodes.append(Node('<a href="%s">' % linkfile, modname,
len(nodes), platinfo))
ifp.close()
#
# Generate all output: