public override async Task GenerateOutputs(EvaluationContext ctx) { _compiled ??= TemplateTree.Parse(Template); _outputs ??= new List <string>(); string output; if (_compiled != null) { var builder = new StringBuilder(); Func <string, string> encodeFunc = Language switch { TemplateLanguage.Html => HtmlEncoder.Default.Encode, TemplateLanguage.Text => s => s, // No need to encode anything for a text output _ => s => s, }; await _compiled.GenerateOutput(builder, ctx, encodeFunc); output = builder.ToString(); } else { output = null; } _outputs.Add(output); }
public override async IAsyncEnumerable <Path> ComputeSelect(EvaluationContext ctx) { _compiled ??= TemplateTree.Parse(Template); if (_compiled != null) { await foreach (var path in _compiled.ComputeSelect(ctx)) { yield return(path); } } }