From: Fredrik Tolf Date: Mon, 21 Apr 2025 17:48:19 +0000 (+0200) Subject: Add support for DOM comments in SP. X-Git-Url: http://git.dolda2000.com/gitweb/?a=commitdiff_plain;h=b8d66c1b7564f5bc27a1a3ccaf24eefdfe7de3bf;p=wrw.git Add support for DOM comments in SP. --- diff --git a/wrw/sp/cons.py b/wrw/sp/cons.py index b9437bf..af53c7b 100644 --- a/wrw/sp/cons.py +++ b/wrw/sp/cons.py @@ -12,6 +12,10 @@ class raw(node, str): def __todom__(self, doc): raise Exception("Cannot convert raw code to DOM objects") +class comment(node, str): + def __todom__(self, doc): + return doc.createComment(self) + class element(node): def __init__(self, ns, name, ctx): self.ns = ns diff --git a/wrw/sp/util.py b/wrw/sp/util.py index 931cbdb..09e18b0 100644 --- a/wrw/sp/util.py +++ b/wrw/sp/util.py @@ -40,6 +40,8 @@ def flatiter(root, short=True): yield "", ch elif isinstance(ch, cons.raw): yield "!", ch + elif isinstance(ch, cons.comment): + yield "-", ch else: raise Exception("Unknown object in element tree: " + el) @@ -123,6 +125,9 @@ class formatter(object): def rawcode(self, el): self.write(el) + def comment(self, el): + self.write("") + def start(self, el): self.write('\n') if isinstance(el, cons.doctype): @@ -145,6 +150,8 @@ class formatter(object): self.text(el) elif ev == "!": self.rawcode(el) + elif ev == "-": + self.comment(el) elif ev == "^": self.start(el) elif ev == "$":