From 5356ff4c7dff9b22164cbe695a97f4308f398429 Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Fri, 08 Apr 2011 17:31:46 +0000 Subject: fixed problems with quotes around tags that caused malformed HTML to be generated --- diff --git a/TurtleArt/taexporthtml.py b/TurtleArt/taexporthtml.py index 2dac7e6..314e604 100644 --- a/TurtleArt/taexporthtml.py +++ b/TurtleArt/taexporthtml.py @@ -26,63 +26,63 @@ from tautils import data_to_string, save_picture, image_to_base64, get_path from gettext import gettext as _ from cgi import escape - -def save_html(self, tw, embed_flag=True): - """ Either: Save canvas and code or pictures to HTML """ - self.embed_images = embed_flag - - # A dictionary to define the HTML wrappers around template elements - self.html_glue = { - 'doctype': '\n', - 'html': ('\n", "\n'), - 'html_svg': ('\n', - '\n'), - 'head': ('\n\n', '\n'), - 'meta': '\n', - 'title': ('', '\n'), - 'style': ('\n'), - 'body': ('\n', '\n\n'), - 'div': ('
\n', '
\n'), - 'slide': ('\n\n'), - 'h1': ('

', '

\n'), - 'table': ('\n', - '\n\n'), - 'img': ('Image\n', + 'html': ('\n', '\n'), + 'html_svg': ('\n', + '\n'), + 'head': ('\n\n', '\n'), + 'meta': '\n', + 'title': ('', '\n'), + 'style': ('\n'), + 'body': ('\n', '\n\n'), + 'div': ('
\n', '
\n'), + 'slide': ('\n\n'), + 'h1': ('

', '

\n'), + 'table': ('
\n', + '\n\n'), + 'img': ('Image\n'), - 'img2': ('Image\n'), - 'img3': ('Image\n'), - 'ul': ('
\n', '
\n'), - 'li': ('', '\n')} + 'img2': ('Image\n'), + 'img3': ('Image\n'), + 'ul': ('\n', '
\n'), + 'li': ('', '\n')} - comment = '\n' - if self.embed_images == True: - self.html_glue['img'] = (' + \
-                                 \n') - self.html_glue['img2'] = ('Image\n') + + +def save_html(self, tw, embed_flag=True): + """ Either save the canvas and code or pictures to HTML """ + + if embed_flag: + HTML_GLUE['img'] = (' + \
+                                 \n') + HTML_GLUE['img2'] = ('Image\n') """ - If there are saved_pictures, put them into a .html; otherwise, save a - screendump and the turtle project code. + If there are saved_pictures, put them into a .html; otherwise, + save a screendump and the turtle project code. """ - code = '' + htmlcode = '' if len(tw.saved_pictures) > 0: for i, p in enumerate(tw.saved_pictures): - code += self.html_glue['slide'][0] + str(i) - code += self.html_glue['slide'][1] + \ - self.html_glue['div'][0] + \ - self.html_glue['h1'][0] - if self.embed_images == True: + htmlcode += HTML_GLUE['slide'][0] + str(i) + htmlcode += HTML_GLUE['slide'][1] + \ + HTML_GLUE['div'][0] + \ + HTML_GLUE['h1'][0] + if embed_flag: f = open(p, 'r') imgdata = f.read() f.close() @@ -92,9 +92,9 @@ def save_html(self, tw, embed_flag=True): pixbuf = gtk.gdk.pixbuf_new_from_file(p) imgdata = image_to_base64(pixbuf, get_path(tw.activity, 'instance')) - tmp = self.html_glue['img2'][0] + tmp = HTML_GLUE['img2'][0] tmp += imgdata - tmp += self.html_glue['img2'][1] + tmp += HTML_GLUE['img2'][1] else: if p.endswith(('.svg')): f = open(p, 'r') @@ -102,49 +102,49 @@ def save_html(self, tw, embed_flag=True): f.close() tmp = imgdata else: - tmp = self.html_glue['img3'][0] + tmp = HTML_GLUE['img3'][0] tmp += p - tmp += self.html_glue['img3'][1] - code += tmp + \ - self.html_glue['h1'][1] + \ - self.html_glue['div'][1] + tmp += HTML_GLUE['img3'][1] + htmlcode += tmp + \ + HTML_GLUE['h1'][1] + \ + HTML_GLUE['div'][1] else: - if self.embed_images == True: + if embed_flag: imgdata = image_to_base64(save_picture(self.tw.canvas), get_path(tw.activity, 'instance')) else: imgdata = os.path.join(self.tw.load_save_folder, 'image') self.tw.save_as_image(imgdata) - code += (self.html_glue['img'][0] + imgdata + \ - self.html_glue['img'][1]) - code += self.html_glue['div'][0] - code += escape(data_to_string(tw.assemble_data_to_save(False, True))) - code += self.html_glue['div'][1] + htmlcode += (HTML_GLUE['img'][0] + imgdata + \ + HTML_GLUE['img'][1]) + htmlcode += HTML_GLUE['div'][0] + htmlcode += escape(data_to_string( + tw.assemble_data_to_save(False, True))) + htmlcode += HTML_GLUE['div'][1] if tw.running_sugar: title = _('Turtle Art') + ' ' + tw.activity.metadata['title'] else: title = _('Turtle Art') - header = self.html_glue['doctype'] + \ - self.html_glue['html'][0] - style = self.html_glue['style'][0] + \ - self.html_glue['style'][1] + header = HTML_GLUE['doctype'] + \ + HTML_GLUE['html'][0] + style = HTML_GLUE['style'][0] + \ + HTML_GLUE['style'][1] if len(tw.saved_pictures) > 0: if tw.saved_pictures[0].endswith(('.svg')): - header = self.html_glue['html_svg'][0] - style = comment + header = HTML_GLUE['html_svg'][0] + style = COMMENT - code = header + \ - self.html_glue['head'][0] + \ - self.html_glue['meta'] + \ - self.html_glue['title'][0] + \ + return header + \ + HTML_GLUE['head'][0] + \ + HTML_GLUE['meta'] + \ + HTML_GLUE['title'][0] + \ title + \ - self.html_glue['title'][1] + \ + HTML_GLUE['title'][1] + \ style + \ - self.html_glue['head'][1] + \ - self.html_glue['body'][0] + \ - code + \ - self.html_glue['body'][1] + \ - self.html_glue['html'][1] - return code + HTML_GLUE['head'][1] + \ + HTML_GLUE['body'][0] + \ + htmlcode + \ + HTML_GLUE['body'][1] + \ + HTML_GLUE['html'][1] -- cgit v0.9.1