class_docstr: Override `HTMLExtractor` and create `etree` `Elements` for any elements which should have content parsed as
  Markdown.
code: def __init__(self, md: Markdown, *args, **kwargs):
      # All block-level tags.
      self.block_level_tags = set(md.block_level_elements.copy())
      # Block-level tags in which the content only gets span level parsing
      self.span_tags = set(
          [
              "address",
              "dd",
              "dt",
              "h1",
              "h2",
              "h3",
              "h4",
              "h5",
              "h6",
              "legend",
              "li",
              "p",
              "summary",
              "td",
              "th",
          ]
      )
      # Block-level tags which never get their content parsed.
      self.raw_tags = set(
          [
              "canvas",
              "math",
              "option",
              "pre",
              "script",
              "style",
              "textarea",
          ]
      )
  
      super().__init__(md, *args, **kwargs)
  
      # Block-level tags in which the content gets parsed as blocks
      self.block_tags = set(self.block_level_tags) - (
          self.span_tags | self.raw_tags | self.empty_tags
      )
      self.span_and_blocks_tags = self.block_tags | self.span_tags
  
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 1 to create a new HTMLExtractorExtra object from inherited base classes: HTMLExtractor with example: obj = HTMLExtractorExtra(md)