refactor unicode changes and merge with master with refactored email
diff --git a/erpnext/website/utils.py b/erpnext/website/utils.py
index 10ec88e..5393a3d 100644
--- a/erpnext/website/utils.py
+++ b/erpnext/website/utils.py
@@ -42,3 +42,37 @@
 	name = title.lower()
 	name = re.sub('[~!@#$%^&*()<>,."\']', '', name)
 	return '-'.join(name.split()[:4])
+
+def render(page_name):
+	"""render html page"""
+	import webnotes
+	try:
+		if page_name:
+			html = get_html(page_name)
+		else:
+			html = get_html('index')
+	except Exception, e:
+		html = get_html('404')
+
+	from webnotes.handler import eprint, print_zip
+	eprint("Content-Type: text/html")
+	print_zip(html)
+	
+def get_html(page_name):
+	"""get page html"""
+	page_name = scrub_page_name(page_name)
+	comments = get_comments(page_name)
+	
+	import website.web_cache
+	html = website.web_cache.get_html(page_name, comments)
+	return html
+
+def get_comments(page_name):
+	import webnotes
+	
+	if page_name == '404':
+		comments = """error: %s""" % webnotes.getTraceback()
+	else:
+		comments = """page: %s""" % page_name
+		
+	return comments