buildHTML method

  1. @override
String buildHTML({
  1. bool withIndent = false,
  2. String parentIndent = '',
  3. String indent = ' ',
  4. bool disableIndent = false,
  5. bool xhtml = false,
  6. DSXResolution dsxResolution = DSXResolution.skipDSX,
  7. bool buildTemplates = false,
  8. DOMNode? parentNode,
  9. DOMNode? previousNode,
  10. DOMContext<Object>? domContext,
})
override

Generates a HTML from this node tree.

withIndent If true will generate a indented HTML.

Implementation

@override
String buildHTML({
  bool withIndent = false,
  String parentIndent = '',
  String indent = '  ',
  bool disableIndent = false,
  bool xhtml = false,
  DSXResolution dsxResolution = DSXResolution.skipDSX,
  bool buildTemplates = false,
  DOMNode? parentNode,
  DOMNode? previousNode,
  DOMContext? domContext,
}) {
  String? html;

  if (dsxResolution.resolve) {
    if (template.isDSX) {
      html = template.buildAsString(
        domContext,
        dsxResolution: dsxResolution,
        intlMessageResolver: domContext?.intlMessageResolver,
      );
    } else if (template.hasDSX) {
      var template2 = template.copy(dsxResolution: dsxResolution);

      if (buildTemplates) {
        var built = template2.build(
          domContext,
          asElement: false,
          dsxResolution: dsxResolution,
          intlMessageResolver: domContext?.intlMessageResolver,
        );
        html = DOMTemplate.objectToString(built);
      } else {
        html = template2.toString();
      }
    }
  }

  if (html == null) {
    if (buildTemplates) {
      html = template.buildAsString(
        domContext,
        dsxResolution: dsxResolution,
        intlMessageResolver: domContext?.intlMessageResolver,
      );
    } else {
      html = text;
    }
  }

  var nbsp = xhtml ? '&#160;' : '&nbsp;';

  return html.replaceAll('\xa0', nbsp);
}