py/gadialog_html.py
changeset 1319 679972640f47
parent 1224 23dc533e3dd3
equal deleted inserted replaced
1318:24f8a621bfdd 1319:679972640f47
     2 """HTML format writer"""
     2 """HTML format writer"""
     3 
     3 
     4 import io
     4 import io
     5 import sys
     5 import sys
     6 import codecs
     6 import codecs
     7 import html
     7 from xml.sax.saxutils import escape
     8 
     8 
     9 import gadialog
     9 import gadialog
    10 
    10 
    11 FINAME = None
    11 FINAME = None
    12 FONAME = None
    12 FONAME = None
    41 else:
    41 else:
    42     FOUT = codecs.open(FONAME, "w", "utf-8")
    42     FOUT = codecs.open(FONAME, "w", "utf-8")
    43 
    43 
    44 ################################################################
    44 ################################################################
    45 
    45 
    46 HTML_HEADER = """<!DOCTYPE html>
    46 HTML_HEADER = u"""<!DOCTYPE html>
    47 <html>
    47 <html>
    48 <head>
    48 <head>
    49   <meta charset="utf-8">
    49   <meta charset="utf-8">
    50   <title>{title}</title>
    50   <title>{title}</title>
    51 <style>
    51 <style>
    62 
    62 
    63 HTML_FOOTER = """</body>
    63 HTML_FOOTER = """</body>
    64 </html>
    64 </html>
    65 """
    65 """
    66 
    66 
    67 NAME = html.escape("Dialogs")
    67 NAME = escape("Dialogs")
    68 
    68 
    69 FOUT.write(HTML_HEADER.format(title=NAME))
    69 FOUT.write(HTML_HEADER.format(title=NAME))
    70 FOUT.write("<h1>{} dictionary</h1>\n".format(NAME))
    70 FOUT.write("<h1>{} dictionary</h1>\n".format(NAME))
    71 
    71 
    72 for num, lines in DOM.items():
    72 for num, lines in DOM.items():
    73     FOUT.write("<hr>")
    73     FOUT.write("<hr>")
    74     FOUT.write("<ul>\n")
    74     FOUT.write("<ul>\n")
    75     odd = True
    75     odd = True
    76     for line in lines:
    76     for line in lines:
    77         FOUT.write('<li class="{:s}">{:s}</li>\n'.format("odd" if odd else "even", html.escape(line)))
    77         FOUT.write(u'<li class="{:s}">{:s}</li>\n'.format("odd" if odd else "even", escape(line)))
    78         odd = not odd
    78         odd = not odd
    79     FOUT.write("</ul>")
    79     FOUT.write("</ul>")
    80 
    80 
    81 FOUT.write(HTML_FOOTER)
    81 FOUT.write(HTML_FOOTER)
    82 FOUT.close()
    82 FOUT.close()