242: #line 253 "xml_weaver.ipk" 243: def new_heading(self,level): 244: while level>len(self.hcount): self.hcount.append(0) 245: while level<len(self.hcount): del self.hcount[-1] 246: counter = self.hcount[level-1]+1 247: self.hcount[level-1] = counter 248: return counter 249: 250: def get_formatted_heading_number(self, sep): 251: hnumber = '' 252: for i in range(0,len(self.hcount)-1): 253: hnumber = hnumber + str(self.hcount[i])+sep 254: hnumber = hnumber + str(self.hcount[-1]) 255: return hnumber 256: 257: 258: def head(self,level, text, **kwds): 259: atext=kwds.get('short_text') 260: anchor=kwds.get('key','') 261: self._endmode() 262: myanchor = anchor 263: if myanchor == '': myanchor = atext 264: if myanchor == '': 265: myanchor = 'h'+str(self.acount) 266: self.acount = self.acount + 1 267: 268: self.new_heading(level) 269: hnumber = self.get_formatted_heading_number('.')+'. ' 270: hprefix = '' 271: if self.keywords.has_key('heading_prefix'): 272: hprefix = self.keywords['heading_prefix'] 273: ahref = '<A HREF=#'+anchor+'>'+hprefix+hnumber+str(text)+'</A>' 274: 275: xml_level = level + self.heading_level_offset 276: if xml_level > 6: xml_level = 6 277: if anchor: atag = ' ID="'+anchor+'" TITLE="'+anchor+'"' 278: else: atag = ' ID="'+myanchor+'"' 279: self._writeline( '<H'+str(xml_level)+atag+'>'+ 280: hprefix+hnumber+str(text)+\ 281: '</H'+str(xml_level)+'>') 282: 283: counter = self.hcount[level-1] 284: self.toc.append((level,ahref)) 285: