Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/TurtleArt
diff options
context:
space:
mode:
authorWalter Bender <walter.bender@gmail.com>2011-04-08 17:31:46 (GMT)
committer Walter Bender <walter.bender@gmail.com>2011-04-08 17:31:46 (GMT)
commit5356ff4c7dff9b22164cbe695a97f4308f398429 (patch)
tree07d8af3685a52fd882ef0140929d380b4f9731f7 /TurtleArt
parent6af63b82066eaa3026815ea22b41db4bb6f7ae5b (diff)
fixed problems with quotes around tags that caused malformed HTML to be generated
Diffstat (limited to 'TurtleArt')
-rw-r--r--TurtleArt/taexporthtml.py152
1 files changed, 76 insertions, 76 deletions
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': '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 ' + \
- 'Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\n',
- 'html': ('<html>\n", "</html>\n'),
- 'html_svg': ('<html xmlns="http://www.w3.org/1999/xhtml">\n',
- '</html>\n'),
- 'head': ('<head>\n<!-- Created by Turtle Art -->\n', '</head>\n'),
- 'meta': '<meta http-equiv="content-type" content="text/html; ' + \
- 'charset=UTF-8"/>\n',
- 'title': ('<title>', '</title>\n'),
- 'style': ('<style type="text/css">\n<!--\n', '-->\n</style>\n'),
- 'body': ('<body>\n', '\n</body>\n'),
- 'div': ('<div>\n', '</div>\n'),
- 'slide': ('\n<a name="slide', '"></a>\n'),
- 'h1': ('<h1>', '</h1>\n'),
- 'table': ('<table cellpadding="10\'>\n', '</table>\n'),
- 'tr': ('<tr>\n', '</tr>\n'),
- 'td': ('<td valign="top" width="400" height="300">\n',
- '\n</td>\n'),
- 'img': ('<img width="400" height="300" alt="Image" ' + \
+# A dictionary to define the HTML wrappers around template elements
+HTML_GLUE = {
+ 'doctype': '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 ' + \
+ 'Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\n',
+ 'html': ('<html>\n', '</html>\n'),
+ 'html_svg': ('<html xmlns="http://www.w3.org/1999/xhtml">\n',
+ '</html>\n'),
+ 'head': ('<head>\n<!-- Created by Turtle Art -->\n', '</head>\n'),
+ 'meta': '<meta http-equiv="content-type" content="text/html; ' + \
+ 'charset=UTF-8"/>\n',
+ 'title': ('<title>', '</title>\n'),
+ 'style': ('<style type="text/css">\n<!--\n', '-->\n</style>\n'),
+ 'body': ('<body>\n', '\n</body>\n'),
+ 'div': ('<div>\n', '</div>\n'),
+ 'slide': ('\n<a name="slide', '"></a>\n'),
+ 'h1': ('<h1>', '</h1>\n'),
+ 'table': ('<table cellpadding="10\'>\n', '</table>\n'),
+ 'tr': ('<tr>\n', '</tr>\n'),
+ 'td': ('<td valign="top" width="400" height="300">\n',
+ '\n</td>\n'),
+ 'img': ('<img width="400" height="300" alt="Image" ' + \
'src="file://"', '".png" />\n'),
- 'img2': ('<img alt="Image" src="image"', '".png" />\n'),
- 'img3': ('<img alt="Image" src="file://"', '"" />\n'),
- 'ul': ('<table>\n', '</table>\n'),
- 'li': ('<tr><td>', '</td></tr>\n')}
+ 'img2': ('<img alt="Image" src="image"', '".png" />\n'),
+ 'img3': ('<img alt="Image" src="file://"', '"" />\n'),
+ 'ul': ('<table>\n', '</table>\n'),
+ 'li': ('<tr><td>', '</td></tr>\n')}
- comment = '<!--\n\<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"' + \
- ' "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [\n\
+COMMENT = '<!--\n\<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"' + \
+ ' "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [\n\
<!ENTITY ns_svg "http://www.w3.org/2000/svg">\n\
<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">\n\
]>\n\
-->\n'
- if self.embed_images == True:
- self.html_glue['img'] = ('<img width="400" height="300" alt=" + \
- ""Image" src="data:image/png;base64,\n"',
- '" "/>\n')
- self.html_glue['img2'] = ('<img alt="Image" src="data:image/png;" + \
- "base64,\n"', '" "/>\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'] = ('<img width="400" height="300" alt=' + \
+ '"Image" src="data:image/png;base64,\n',
+ '"/>\n')
+ HTML_GLUE['img2'] = ('<img alt="Image" src="data:image/png;"' + \
+ '"base64,\n"', '"/>\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]