class_docstr: Override `HTMLExtractor` and create `etree` `Elements` for any elements which should have content parsed as
  Markdown.
code: def handle_startendtag(self, tag, attrs):
      if tag in self.empty_tags:
          attrs = {
              key: value if value is not None else key
              for key, value in attrs
          }
          if "markdown" in attrs:
              attrs.pop("markdown")
              element = etree.Element(tag, attrs)
              data = etree.tostring(
                  element, encoding="unicode", method="html"
              )
          else:
              data = self.get_starttag_text()
      else:
          data = self.get_starttag_text()
      self.handle_empty_tag(data, is_block=self.md.is_block_level(tag))
  
imports: from __future__ import annotations
  from .None import Extension
  from ..blockprocessors import BlockProcessor
  from ..preprocessors import Preprocessor
  from ..postprocessors import RawHtmlPostprocessor
  from ..None import util
  from ..htmlparser import HTMLExtractor, blank_line_re
  import xml.etree.ElementTree
  from typing import TYPE_CHECKING, Literal, Mapping
label_desc: Use image node_id 8 for calling the HTMLExtractorExtra obj's underlying member method code with example usage: obj.handle_startendtag(tag, attrs) without return types