Workaround for nasty literal HTML inserting issue.
authorRadek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>
Thu, 20 Jun 2013 11:23:02 +0000 (13:23 +0200)
committerRadek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>
Thu, 20 Jun 2013 11:23:02 +0000 (13:23 +0200)
librarian/xmlutils.py

index 9e921a2..8890f4e 100644 (file)
@@ -22,14 +22,15 @@ class Xmill(object):
         self.text_filters.append(fun)
 
     def filter_text(self, text):
-        for flt in self.text_filters:
-            if text is None:
-                return None
-            text = flt(text)
         # TODO: just work on the tree and let lxml handle escaping.
         e = etree.Element("x")
         e.text = text
-        return etree.tostring(e, encoding=unicode)[3:-4]
+        # This whole mixing text with ML is so wrong.
+        output = etree.tostring(e, encoding=unicode)[3:-4]
+        for flt in self.text_filters:
+            output = flt(output)
+        return output
+
 
     def generate(self, document):
         """Generate text from node using handlers defined in class."""