git.fiddlerwoaroof.com
template.py
be9b2e82
 import xmlgen
 
 class HTMLTemplate(object):
 	def __init__(self):
 		with xmlgen.Tag('html') as self.doc:
 			with self.doc.child('head') as self.head:
 				self.title = self.head.child('title')
 			self.body = self.doc.child('body')
 
 	def set_title(self, title):
 		self.title.text(title)
 
 	def add_script(self, src, type='text/javascript', async=False, defer=False):
 		script = self.head.child('script', src=src, type=type)
 		if async: script.attr('async', 'async')
 		if defer: script.attr('defer', 'defer')
 		return script
 
 	def add_stylesheet(self, src, type='text/css', media=None):
 		stylesheet = self.head.child('link', rel='stylesheet', type=type, href=src)
 		if media is not None:
 			stylesheet.attr('media', media)
 
 
 	def __enter__(self, *_, **__):
 		return self.body
 	def __exit__(self, *_, **__):
 		pass
 
 	def __str__(self):
 		return unicode(self.doc).encode('utf-8')