Edgewall Software

Ticket #3347: 3347_TableHeaders.diff

File 3347_TableHeaders.diff, 2.7 KB (added by nado18@…, 3 months ago)

Diff file for table headers against 0.11.1

  • trac/htdocs/css/trac.css

     
    346346 border-collapse: collapse; 
    347347 border-spacing: 0; 
    348348} 
    349 table.wiki td { border: 1px solid #ccc;  padding: .1em .25em; } 
     349table.wiki th { color: #fff; background-color: #000 } 
     350table.wiki td, table.wiki th { border: 1px solid #ccc;  padding: .1em .25em; } 
    350351 
    351352.wikitoolbar { 
    352353 border: solid #d7d7d7; 
  • trac/wiki/parser.py

     
    105105        r"(?P<indent>^(?P<idepth>\s+)(?=\S))", 
    106106        # || table || 
    107107        r"(?P<last_table_cell>\|\|\s*$)", 
     108        r"(?P<table_header>\|\|\|)", 
    108109        r"(?P<table_cell>\|\|)"] 
    109110 
    110111    _processor_re = re.compile('#\!([\w+-][\w+-/]*)') 
  • trac/wiki/formatter.py

     
    689689    def _last_table_cell_formatter(self, match, fullmatch): 
    690690        return '' 
    691691 
     692    def close_table_cell_or_header(self): 
     693        if self.in_table_header: self.out.write('</th>') 
     694        elif self.in_table_cell: self.out.write('</td>') 
     695        self.in_table_cell = self.in_table_header = 0 
     696 
     697    def open_table_cell_or_header(self): 
     698         self.close_table_cell_or_header() 
     699         self.open_table() 
     700         self.open_table_row() 
     701 
     702    def _table_header_formatter(self, match, fullmatch): 
     703         self.open_table_cell_or_header() 
     704         self.in_table_header = 1 
     705         return '<th>' 
     706 
    692707    def _table_cell_formatter(self, match, fullmatch): 
    693         self.open_table() 
    694         self.open_table_row() 
    695         if self.in_table_cell: 
    696             return '</td><td>' 
    697         else: 
    698             self.in_table_cell = 1 
    699             return '<td>' 
     708         self.open_table_cell_or_header() 
     709         self.in_table_cell = 1 
     710         return '<td>' 
    700711 
    701712    def open_table(self): 
    702713        if not self.in_table: 
     
    715726    def close_table_row(self): 
    716727        if self.in_table_row: 
    717728            self.in_table_row = 0 
    718             if self.in_table_cell: 
    719                 self.in_table_cell = 0 
    720                 self.out.write('</td>') 
    721  
     729            self.close_table_cell_or_header() 
    722730            self.out.write('</tr>') 
    723731 
    724732    def close_table(self): 
     
    823831        self.in_def_list = 0 
    824832        self.in_table_row = 0 
    825833        self.in_table_cell = 0 
     834        self.in_table_header = 0 
    826835        self.paragraph_open = 0 
    827836 
    828837    def format(self, text, out=None, escape_newlines=False):