render method

Future<String> render({
  1. bool standalone = false,
})

Implementation

Future<String> render({bool standalone = false}) async {
  if (rootElement == null) return '';

  if (rootElement!.owner.isFirstBuild) {
    final completer = Completer.sync();
    rootElement!.binding.addPostFrameCallback(completer.complete);
    await completer.future;
  }

  var root = rootElement!.renderObject as MarkupRenderObject;
  var adapters = [
    ..._adapters.reversed,
    GlobalStylesAdapter(this),
    if (!standalone) DocumentAdapter(),
  ];

  for (var adapter in adapters.reversed) {
    var r = adapter.prepare();
    if (r is Future) {
      await r;
    }
  }

  for (var adapter in adapters) {
    adapter.apply(root);
  }

  return root.renderToHtml();
}