6.4.6.2.5.2. Table of contents generator

Make the table of contents.
Start python section to interscript/weavers/web.py[7 /8 ] Next Prev Last
   450: #line 557 "web_weaver.ipk"
   451:   def mk_contents(self,toc_filename,target):
   452:     self.toc_sink = named_file_sink(
   453:       self.pass_frame,
   454:       self.basedir+toc_filename,
   455:       self.master.weaver_prefix,
   456:       eol=self.eol)
   457:     self.mk_head(self.toc_sink)
   458:     w = self.toc_sink.writeline
   459:     w( '<BODY onload="loadHandler()">')
   460:     if not target:
   461:       nav = '<DIV CLASS="NAVIGATION">'+self.home_anchor+' '+self.frames_anchor+'<BR><HR></DIV>'
   462:       self.toc_sink.writeline(nav)
   463:     w('<H1>Table of Contents</H1>')
   464:     w(stacking_weaver.MSIE_treehandler)
   465:     last_level = -1
   466:     if self.toc:
   467:       i = 0
   468:       level, hnum, href, text = self.toc[i]
   469:       next_level = 0
   470:       if len(self.toc) > i+1: next_level = self.toc[i+1][0]
   471:       self.emit_contents_line(level, hnum, href, text, level<next_level, target)
   472:       divid = 'h'+hnum+'d'
   473:       w('<DIV ID='+divid+' style="display:">')
   474:       last_level = level
   475:     for i in range(1, len(self.toc)):
   476:       level, hnum, href, text = self.toc[i]
   477:       next_level = 0
   478:       if len(self.toc) > i+1: next_level = self.toc[i+1][0]
   479:       while level <= last_level:
   480:         self.toc_sink.writeline('</DIV>')
   481:         last_level = last_level - 1
   482:       self.emit_contents_line(level, hnum, href, text, level<next_level, target)
   483:       divid = 'h'+hnum+'d'
   484:       w('<DIV ID='+divid+' style="display:">')
   485:       last_level = level
   486:     while 1 <= last_level:
   487:       w('</DIV>')
   488:       last_level = last_level - 1
   489:     w( '</BODY>')
   490:     w( '</HTML>')
   491:     del self.toc_sink
   492: 
   493:   def emit_contents_line(self, level, hnum, href, text, enabled, target):
   494:     self.toc_sink.writeline(' '*(3*level))
   495:     headid ='h'+hnum
   496:     flag = 'disabled'
   497:     if enabled: flag = ''
   498:     self.toc_sink.writeline('<INPUT ID='+headid+' CLASS="Button" TYPE="Radio" '+flag+'>')
   499:     if target:
   500:       self.toc_sink.writeline('<A HREF="'+href+'" TARGET="'+target+'">'+text+'</A>')
   501:     else:
   502:       self.toc_sink.writeline('<A HREF="'+href+'">'+text+'</A>')
   503: 
End python section to interscript/weavers/web.py[7]