summaryrefslogtreecommitdiff
path: root/htmtl/parsers/outer_partial.py
blob: 69866ad4c9d771c8377c3e95d34dec6658c6e8f2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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.to_html()).get_nodes()

            return FragmentNode(children=replacement_nodes)

        return node