Iterator wrapper to get allowed parent and child all at once.
(self, node: etree.Element)
| 265 | self.toc_bottom = int(config["toc_depth"]) |
| 266 | |
| 267 | def iterparent(self, node: etree.Element) -> Iterator[tuple[etree.Element, etree.Element]]: |
| 268 | """ Iterator wrapper to get allowed parent and child all at once. """ |
| 269 | |
| 270 | # We do not allow the marker inside a header as that |
| 271 | # would causes an endless loop of placing a new TOC |
| 272 | # inside previously generated TOC. |
| 273 | for child in node: |
| 274 | if not self.header_rgx.match(child.tag) and child.tag not in ['pre', 'code']: |
| 275 | yield node, child |
| 276 | yield from self.iterparent(child) |
| 277 | |
| 278 | def replace_marker(self, root: etree.Element, elem: etree.Element) -> None: |
| 279 | """ Replace marker with elem. """ |