Example #1
0
        public FluidTemplateEngine(IEnumerable <IFluidExtension> extensions)
        {
            this.extensions = extensions;

            SquidexTemplate.Setup(extensions);
            SquidexTemplate.SetupTypes(extensions);
        }
Example #2
0
        public async Task <string> RenderAsync(string template, TemplateVars variables)
        {
            Guard.NotNull(variables, nameof(variables));

            if (SquidexTemplate.TryParse(template, out var parsed, out var errors))
            {
                var context = new TemplateContext();

                foreach (var extension in extensions)
                {
                    extension.BeforeRun(context);
                }

                foreach (var(key, value) in variables)
                {
                    context.MemberAccessStrategy.Register(value.GetType());

                    context.SetValue(key, value);
                }

                var result = await parsed.RenderAsync(context);

                return(result);
            }

            throw new TemplateParseException(template, errors);
        }
Example #3
0
        public FluidTemplateEngine(IEnumerable <IFluidExtension> extensions)
        {
            Guard.NotNull(extensions, nameof(extensions));

            this.extensions = extensions;

            SquidexTemplate.Setup(extensions);
            SquidexTemplate.SetupTypes(extensions);
        }