render method
Render the parser tree to a string (and write it as files when needed)
Implementation
Future<RenderResult> render(
ParseResult parseResults, [
VariableMap? variables,
]) async {
var results = TemplatesRenderResult([]);
for (var parseResult in [...parseResults.children]) {
var template = parseResult.template;
var renderContext = RenderContext(
engine: this,
templateBeingRendered: template,
variables: variables,
parsedTemplates: parseResults.children,
);
var renderResult = await parseResult.render(renderContext);
var result = TemplateRenderResult(
template: template,
text: renderResult.text,
errors: [...parseResult.errors, ...renderResult.errors],
);
results = results.add(result);
for (var parseResult in renderContext.parsedTemplates.where(
(parseResult) => parseResult.template is ImportedTemplate,
)) {
var result = ImportedTemplateParseErrors(
parseResult.template,
parseResult.errorMessage,
);
results = results.add(result);
}
}
return results;
}