summaryrefslogtreecommitdiff
path: root/htmtl/parsers
diff options
context:
space:
mode:
Diffstat (limited to 'htmtl/parsers')
-rw-r--r--htmtl/parsers/inner_partial.py17
-rw-r--r--htmtl/parsers/outer_partial.py17
2 files changed, 34 insertions, 0 deletions
diff --git a/htmtl/parsers/inner_partial.py b/htmtl/parsers/inner_partial.py
new file mode 100644
index 0000000..a2cd7f0
--- /dev/null
+++ b/htmtl/parsers/inner_partial.py
@@ -0,0 +1,17 @@
+from typing import Optional
+
+from dompa import Dompa
+from dompa.nodes import Node
+
+from ..parser import Parser
+import htmtl
+
+class InnerPartial(Parser):
+ def traverse(self, node: Node) -> Optional[Node]:
+ if "inner-partial" in node.attributes:
+ template = htmtl.Htmtl(self.expression(node.attributes["inner-partial"]), self.data())
+ child_nodes = Dompa(template.html()).nodes()
+ node.children = child_nodes
+ node.attributes.pop("inner-partial")
+
+ return node \ No newline at end of file
diff --git a/htmtl/parsers/outer_partial.py b/htmtl/parsers/outer_partial.py
new file mode 100644
index 0000000..de96771
--- /dev/null
+++ b/htmtl/parsers/outer_partial.py
@@ -0,0 +1,17 @@
+from typing import Optional
+
+from dompa import Dompa
+from dompa.nodes import Node, FragmentNode
+
+from ..parser import Parser
+import htmtl
+
+class OuterPartial(Parser):
+ def traverse(self, node: Node) -> Optional[Node]:
+ if "outer-partial" in node.attributes:
+ template = htmtl.Htmtl(self.expression(node.attributes["outer-partial"]), self.data())
+ replacement_nodes = Dompa(template.html()).nodes()
+
+ return FragmentNode(children=replacement_nodes)
+
+ return node \ No newline at end of file