⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tohtml.py

📁 linux控件xml 搭建apache支持php openssl
💻 PY
📖 第 1 页 / 共 2 页
字号:
            # convert tilde into non-breakable space            line = string.replace( line, "~", "&nbsp;" )        return para_header + line + para_footer    def  make_html_code( self, lines ):        """ convert a code sequence to HTML """        line = code_header + '\n'        for l in lines:            line = line + html_quote( l ) + '\n'        return line + code_footer    def  make_html_items( self, items ):        """ convert a field's content into some valid HTML """        lines = []        for item in items:            if item.lines:                lines.append( self.make_html_code( item.lines ) )            else:                lines.append( self.make_html_para( item.words ) )        return string.join( lines, '\n' )    def  print_html_items( self, items ):        print self.make_html_items( items )    def  print_html_field( self, field ):        if field.name:            print "<table><tr valign=top><td><b>" + field.name + "</b></td><td>"        print self.make_html_items( field.items )        if field.name:            print "</td></tr></table>"    def  html_source_quote( self, line, block_name = None ):        result = ""        while line:            m = re_source_crossref.match( line )            if m:                name   = m.group( 2 )                prefix = html_quote( m.group( 1 ) )                length = len( m.group( 0 ) )                if name == block_name:                    # this is the current block name, if any                    result = result + prefix + '<b>' + name + '</b>'                elif re_source_keywords.match( name ):                    # this is a C keyword                    result = result + prefix + keyword_prefix + name + keyword_suffix                elif self.identifiers.has_key( name ):                    # this is a known identifier                    block = self.identifiers[name]                    result = result + prefix + '<a href="' + \                             self.make_block_url( block ) + '">' + name + '</a>'                else:                    result = result + html_quote( line[:length] )                line = line[length:]            else:                result = result + html_quote( line )                line   = []        return result    def  print_html_field_list( self, fields ):        print "<p></p>"        print "<table cellpadding=3 border=0>"        for field in fields:            if len( field.name ) > 22:              print "<tr valign=top><td colspan=0><b>" + field.name + "</b></td></tr>"              print "<tr valign=top><td></td><td>"            else:              print "<tr valign=top><td><b>" + field.name + "</b></td><td>"            self.print_html_items( field.items )            print "</td></tr>"        print "</table>"    def  print_html_markup( self, markup ):        table_fields = []        for field in markup.fields:            if field.name:                # we begin a new series of field or value definitions, we                # will record them in the 'table_fields' list before outputting                # all of them as a single table                #                table_fields.append( field )            else:                if table_fields:                    self.print_html_field_list( table_fields )                    table_fields = []                self.print_html_items( field.items )        if table_fields:            self.print_html_field_list( table_fields )    #    #  Formatting the index    #    def  index_enter( self ):        print self.html_index_header        self.index_items = {}    def  index_name_enter( self, name ):        block = self.identifiers[name]        url   = self.make_block_url( block )        self.index_items[name] = url    def  index_exit( self ):        # block_index already contains the sorted list of index names        count = len( self.block_index )        rows  = ( count + self.columns - 1 ) / self.columns        print "<table align=center border=0 cellpadding=0 cellspacing=0>"        for r in range( rows ):            line = "<tr>"            for c in range( self.columns ):                i = r + c * rows                if i < count:                    bname = self.block_index[r + c * rows]                    url   = self.index_items[bname]                    line = line + '<td><a href="' + url + '">' + bname + '</a></td>'                else:                    line = line + '<td></td>'            line = line + "</tr>"            print line        print "</table>"        print index_footer_start +            \              self.file_prefix + "toc.html" + \              index_footer_end        print self.html_footer        self.index_items = {}    def  index_dump( self, index_filename = None ):        if index_filename == None:            index_filename = self.file_prefix + "index.html"        Formatter.index_dump( self, index_filename )    #    #  Formatting the table of content    #    def  toc_enter( self ):        print self.html_toc_header        print "<center><h1>Table of Contents</h1></center>"    def  toc_chapter_enter( self, chapter ):        print  chapter_header + string.join( chapter.title ) + chapter_inter        print "<table cellpadding=5>"    def  toc_section_enter( self, section ):        print '<tr valign=top><td class="left">'        print '<a href="' + self.make_section_url( section ) + '">' + \               section.title + '</a></td><td>'        print self.make_html_para( section.abstract )    def  toc_section_exit( self, section ):        print "</td></tr>"    def  toc_chapter_exit( self, chapter ):        print "</table>"        print chapter_footer    def  toc_index( self, index_filename ):        print chapter_header +                                      \              '<a href="' + index_filename + '">Global Index</a>' + \              chapter_inter + chapter_footer    def  toc_exit( self ):        print toc_footer_start +                \              self.file_prefix + "index.html" + \              toc_footer_end        print self.html_footer    def  toc_dump( self, toc_filename = None, index_filename = None ):        if toc_filename == None:            toc_filename = self.file_prefix + "toc.html"        if index_filename == None:            index_filename = self.file_prefix + "index.html"        Formatter.toc_dump( self, toc_filename, index_filename )    #    #  Formatting sections    #    def  section_enter( self, section ):        print self.html_header        print section_title_header        print section.title        print section_title_footer        maxwidth = 0        for b in section.blocks.values():            if len( b.name ) > maxwidth:                maxwidth = len( b.name )        width = 70  # XXX magic number        if maxwidth <> 0:            # print section synopsis            print section_synopsis_header            print "<table align=center cellspacing=5 cellpadding=0 border=0>"            columns = width / maxwidth            if columns < 1:                columns = 1            count = len( section.block_names )            rows  = ( count + columns - 1 ) / columns            for r in range( rows ):                line = "<tr>"                for c in range( columns ):                    i = r + c * rows                    line = line + '<td></td><td>'                    if i < count:                        name = section.block_names[i]                        line = line + '<a href="#' + name + '">' + name + '</a>'                    line = line + '</td>'                line = line + "</tr>"                print line            print "</table><br><br>"            print section_synopsis_footer        print description_header        print self.make_html_items( section.description )        print description_footer    def  block_enter( self, block ):        print block_header        # place html anchor if needed        if block.name:            print '<h4><a name="' + block.name + '">' + block.name + '</a></h4>'        # dump the block C source lines now        if block.code:            header = ''            for f in self.headers.keys():                if block.source.filename.find( f ) >= 0:                    header = self.headers[f] + ' (' + f + ')'                    break;                #           if not header:#               sys.stderr.write( \#                 'WARNING: No header macro for ' + block.source.filename + '.\n' )            if header:                print header_location_header                print 'Defined in ' + header + '.'                print header_location_footer            print source_header            for l in block.code:                print self.html_source_quote( l, block.name )            print source_footer    def  markup_enter( self, markup, block ):        if markup.tag == "description":            print description_header        else:            print marker_header + markup.tag + marker_inter        self.print_html_markup( markup )    def  markup_exit( self, markup, block ):        if markup.tag == "description":            print description_footer        else:            print marker_footer    def  block_exit( self, block ):        print block_footer_start + self.file_prefix + "index.html" + \              block_footer_middle + self.file_prefix + "toc.html" +  \              block_footer_end    def  section_exit( self, section ):        print html_footer    def  section_dump_all( self ):        for section in self.sections:            self.section_dump( section, self.file_prefix + section.name + '.html' )# eof

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -