Call formatter.node as should be proper from formatter.fragement.
[wrw.git] / wrw / sp / util.py
index f387f1c..795bf57 100644 (file)
@@ -44,6 +44,9 @@ class formatter(object):
     def text(self, el):
         self.quotewrite(el)
 
+    def rawcode(self, el):
+        self.write(el)
+
     def attrval(self, buf):
         qc, qt = (u"'", u"'") if u'"' in buf else (u'"', u""")
         self.write(qc)
@@ -112,6 +115,8 @@ class formatter(object):
             self.element(el)
         elif isinstance(el, cons.text):
             self.text(el)
+        elif isinstance(el, cons.raw):
+            self.rawcode(el)
         else:
             raise Exception("Unknown object in element tree: " + el)
 
@@ -135,6 +140,10 @@ class formatter(object):
     def output(cls, out, el, *args, **kw):
         cls(out=out, root=el, *args, **kw).start()
 
+    @classmethod
+    def fragment(cls, out, el, *args, **kw):
+        cls(out=out, root=el, *args, **kw).node(el)
+
     def update(self, **ch):
         ret = type(self).__new__(type(self))
         ret.__dict__.update(self.__dict__)