visitElementBefore method

  1. @override
void visitElementBefore(
  1. Element element
)
override

Called when an Element has been reached, before its children have been visited.

Implementation

@override
void visitElementBefore(md.Element element) {
  _language = null;
  _codeText = null;
  // Fenced code blocks produce <pre><code class="language-xxx">...</code></pre>.
  // Extract the language from the nested code element's class attribute.
  if (element.children != null) {
    for (final child in element.children!) {
      if (child is md.Element && child.tag == 'code') {
        final cls = child.attributes['class'] ?? '';
        if (cls.startsWith('language-')) {
          _language = cls.substring('language-'.length);
        }
        _codeText = child.textContent;
        break;
      }
    }
  }
}