diff --git a/dynastie/generators/generator.py b/dynastie/generators/generator.py
index 72ff349..fc2fc6f 100755
--- a/dynastie/generators/generator.py
+++ b/dynastie/generators/generator.py
@@ -22,6 +22,7 @@ import hashlib
import gzip
import math
import codecs
+import re
from xml.dom import *
from xml.dom.minidom import parse
from xml.parsers.expat import *
@@ -64,7 +65,8 @@ class DynastieGenerator:
self.hash_posts = hash_posts
self.hash_posts_content = hash_posts_content
self.user = request and request.user or None
-
+ self.iframe_re = re.compile(r'(')
+
def addReport(self, string, color=''):
if string in self.report: return
if color:
@@ -94,8 +96,10 @@ class DynastieGenerator:
writer = StrictUTF8Writer()
node.writexml(writer)
- content = writer.getvalue()
-
+ content = writer.getvalue().decode('utf-8')
+ # iframe tag must be like , not optimized
+ content = self.iframe_re.sub('\\1>', content).encode('utf-8')
+
dst_md5 = hashlib.md5()
dst_md5.update(content)
@@ -164,8 +168,8 @@ class DynastieGenerator:
for node in subtree.childNodes:
div.appendChild(node.cloneNode(True))
- def createElement(self, dom, name='', content='', subtree=None):
- div = dom.createElement('div')
+ def createElement(self, dom, name='', content='', subtree=None, _type='div'):
+ div = dom.createElement(_type)
if name:
div.setAttribute('class', name)
if content:
diff --git a/dynastie/generators/post.py b/dynastie/generators/post.py
index d0cbb78..766cfa6 100755
--- a/dynastie/generators/post.py
+++ b/dynastie/generators/post.py
@@ -20,6 +20,7 @@
import datetime
import os
import xml
+import re
from xml.dom.minidom import parse, parseString
from dynastie.generators.generator import DynastieGenerator, StrictUTF8Writer
from dynastie.generators.index import Index
@@ -257,6 +258,7 @@ class Post(Index):
def preview(self, request, src, values):
from dynastie.models import Blog
+ iframe_re = re.compile(r'(')
self.user = request.user
@@ -286,4 +288,8 @@ class Post(Index):
writer = StrictUTF8Writer()
nodes[0].writexml(writer)
- return writer.getvalue().decode('utf-8')
+ content = writer.getvalue().decode('utf-8')
+ # iframe tag must be like , not optimized
+ content = self.iframe_re.sub('\\1>', content)
+
+ return content