summaryrefslogtreecommitdiff
path: root/htmtl/parsers
diff options
context:
space:
mode:
Diffstat (limited to 'htmtl/parsers')
-rw-r--r--htmtl/parsers/__init__.py2
-rw-r--r--htmtl/parsers/inner_text.py13
-rw-r--r--htmtl/parsers/outer_text.py12
3 files changed, 27 insertions, 0 deletions
diff --git a/htmtl/parsers/__init__.py b/htmtl/parsers/__init__.py
new file mode 100644
index 0000000..4ad8185
--- /dev/null
+++ b/htmtl/parsers/__init__.py
@@ -0,0 +1,2 @@
+from .inner_text import InnerText
+from .outer_text import OuterText \ No newline at end of file
diff --git a/htmtl/parsers/inner_text.py b/htmtl/parsers/inner_text.py
new file mode 100644
index 0000000..52fc0b4
--- /dev/null
+++ b/htmtl/parsers/inner_text.py
@@ -0,0 +1,13 @@
+from typing import Optional
+
+from dompa.nodes import Node, TextNode
+from ..parser import Parser
+
+
+class InnerText(Parser):
+ def traverse(self, node: Node) -> Optional[Node]:
+ if "inner-text" in node.attributes:
+ node.children = [TextNode(value=self.expression(node.attributes["inner-text"]))]
+ node.attributes.pop("inner-text")
+
+ return node \ No newline at end of file
diff --git a/htmtl/parsers/outer_text.py b/htmtl/parsers/outer_text.py
new file mode 100644
index 0000000..78b0fce
--- /dev/null
+++ b/htmtl/parsers/outer_text.py
@@ -0,0 +1,12 @@
+from typing import Optional
+
+from dompa.nodes import Node, TextNode
+from ..parser import Parser
+
+
+class OuterText(Parser):
+ def traverse(self, node: Node) -> Optional[Node]:
+ if "outer-text" in node.attributes:
+ return TextNode(value=self.expression(node.attributes["outer-text"]))
+
+ return node