Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
                }
            }
        }