Changeset 7539


Ignore:
Timestamp:
28/09/10 14:14:33 (9 years ago)
Author:
astephen
Message:

WOrking with pygments to markup XML.

Location:
cows_wps/trunk/cows_wps
Files:
2 added
1 edited

Legend:

Unmodified
Added
Removed
  • cows_wps/trunk/cows_wps/controllers/jobviewer.py

    r7538 r7539  
    228228        "Returns html string that will make XML look ok on HTML page." 
    229229 
    230         return highlight(xml, XmlLexer(), HtmlFormatter()) 
    231         xml1 = xml.replace("<", "&lt;").replace(">", "&gt;").replace("\n", "<br>") 
    232  
    233         def retag(x): return x.replace("<", "&lt;").replace(">", "&gt;") 
    234  
    235         open_and_close = re.compile(r"^<([^/]+?)>(.*?)</\1>$") 
    236         open_and_open = re.compile(r"^<([^/]+?)>\s*<([^/]+?)>$") 
    237         close_and_close = re.compile(r"^<(/.+?)>\s*<(/.+?)>$") 
    238         open = re.compile(r"^<([^/]+)>$") 
    239         close = re.compile(r"^</(.+?)>$") 
    240         empty = re.compile(r"^<(.+?)/>$") 
    241         bad = re.compile(r"^</(.+?)>\s*<([^/]+)>$") 
    242  
    243         lines = [i.strip() for i in xml.split("\n")] 
    244  
    245         spant = '%s<span style="color: #%s;">%s</span><br>' 
    246         span2 = '%s<span style="color: #%s;">&lt;%s&gt;</span><span style="color: #%s;">%s</span><span style="color: #%s;">&lt;/%s&gt;</span><br>' 
    247  
    248         x = "" 
    249         pad = 0 
    250         pc = "&nbsp;" * 4 
    251  
    252         for line in lines: 
    253  
    254             colour = pad * 50000  
    255             col = ("000000" + hex(colour).split("x")[-1])[-6:] 
    256             line2 = retag(line) 
    257  
    258             open_and_close_m = open_and_close.match(line) 
    259             open_and_open_m = False#open_and_open.match(line) 
    260             close_and_close_m = False#close_and_close.match(line) 
    261             open_m = open.match(line)  
    262             close_m = close.match(line) 
    263             empty_m = empty.match(line) 
    264             bad_m = bad.match(line) 
    265  
    266             if line == lines[0]: 
    267                 line = spant % (pc * pad, "0000ff", line2) 
    268                 pad += 1 
    269             elif open_and_close_m: 
    270                 groups = open_and_close_m.groups() 
    271                 (tag, content) = groups[:2] 
    272                 line = span2 % (pc * pad, "%s" % col, tag, "000000", content, "%s" % col, tag) 
    273             elif open_and_open_m: 
    274                 groups = open_and_open_m.groups() 
    275                 (tag1, tag2) = groups[:2] 
    276                 pad += 1 
    277                 line1 = spant % (pc * pad, "%s" % col, "&lt;%s&gt;" % tag1) 
    278                 pad += 1 
    279                 line2 = spant % (pc * pad, "%s" % col, "&lt;%s&gt;" % tag2) 
    280                 line = line1 + line2 
    281             elif close_and_close_m: 
    282                 groups = close_and_close_m.groups() 
    283                 (tag1, tag2) = groups[:2] 
    284                 pad -= 1 
    285                 line1 = spant % (pc * pad, "%s" % col, "&lt;%s&gt;" % tag1) 
    286                 pad -= 1 
    287                 line2 = spant % (pc * pad, "%s" % col, "&lt;%s&gt;" % tag2) 
    288                 line = line1 + line2 
    289             elif bad_m: 
    290                 (first, second) = bad_m.groups()[:2] 
    291                 pad -= 1 
    292                 line1 = spant % (pc * pad, "%s" % col, "&lt;/%s&gt;" % first) 
    293                 line2 = spant % (pc * pad, "%s" % col, "&lt;%s&gt;" % second) 
    294                 line = line1 + line2 
    295                 pad += 1 
    296             elif open_m: 
    297                 line = spant % (pc * pad, "%s" % col, line2)  
    298                 pad += 1 
    299             elif close_m: 
    300                 pad -= 1 
    301                 line = spant % (pc * pad, "%s" % col, line2) 
    302             elif empty_m: 
    303                 line = spant % (pc * pad, "%s" % col, line2) 
     230        html_xml = highlight(xml, XmlLexer(), HtmlFormatter()) 
     231        return html_xml 
     232        xml_lines = html_xml.split("\n") 
     233        new_xml = [] 
     234 
     235        for line in xml_lines: 
     236            if len(line) > 80: 
     237                while len(line) > 0: 
     238                    this_line = line[:80] 
     239                    line = line[80:] 
     240                    new_xml.append(line + "<br/>") 
    304241            else: 
    305                 line = spant % (pc * pad, "0000ff", line2) 
    306  
    307             x += line 
    308  
    309         return x 
    310  
    311  
     242                new_xml.append(line) 
     243 
     244        clean_xml_string = "\n".join(new_xml) 
     245        return clean_xml_string 
     246                    
     247 
     248 
Note: See TracChangeset for help on using the changeset viewer.