| import datetime | |
| import dominate | |
| from dominate.tags import * | |
| import os | |
| class HTML: | |
| def __init__(self, web_dir, title, refresh=0): | |
| if web_dir.endswith('.html'): | |
| web_dir, html_name = os.path.split(web_dir) | |
| else: | |
| web_dir, html_name = web_dir, 'index.html' | |
| self.title = title | |
| self.web_dir = web_dir | |
| self.html_name = html_name | |
| self.img_dir = os.path.join(self.web_dir, 'images') | |
| if len(self.web_dir) > 0 and not os.path.exists(self.web_dir): | |
| os.makedirs(self.web_dir) | |
| if len(self.web_dir) > 0 and not os.path.exists(self.img_dir): | |
| os.makedirs(self.img_dir) | |
| self.doc = dominate.document(title=title) | |
| with self.doc: | |
| h1(datetime.datetime.now().strftime("%I:%M%p on %B %d, %Y")) | |
| if refresh > 0: | |
| with self.doc.head: | |
| meta(http_equiv="refresh", content=str(refresh)) | |
| def get_image_dir(self): | |
| return self.img_dir | |
| def add_header(self, str): | |
| with self.doc: | |
| h3(str) | |
| def add_table(self, border=1): | |
| self.t = table(border=border, style="table-layout: fixed;") | |
| self.doc.add(self.t) | |
| def add_images(self, ims, txts, links, width=512): | |
| self.add_table() | |
| with self.t: | |
| with tr(): | |
| for im, txt, link in zip(ims, txts, links): | |
| with td(style="word-wrap: break-word;", halign="center", valign="top"): | |
| with p(): | |
| with a(href=os.path.join('images', link)): | |
| img(style="width:%dpx" % (width), src=os.path.join('images', im)) | |
| br() | |
| p(txt.encode('utf-8')) | |
| def save(self): | |
| html_file = os.path.join(self.web_dir, self.html_name) | |
| f = open(html_file, 'wt') | |
| f.write(self.doc.render()) | |
| f.close() | |
| if __name__ == '__main__': | |
| html = HTML('web/', 'test_html') | |
| html.add_header('hello world') | |
| ims = [] | |
| txts = [] | |
| links = [] | |
| for n in range(4): | |
| ims.append('image_%d.jpg' % n) | |
| txts.append('text_%d' % n) | |
| links.append('image_%d.jpg' % n) | |
| html.add_images(ims, txts, links) | |
| html.save() | |