public String Render(ITemplateContext ctx) { var result = ""; var renderingVisitor = new RenderingVisitor(ctx); renderingVisitor.StartWalking(_liquidAst.RootNode, str => result += str); if (renderingVisitor.HasErrors) { throw new LiquidRendererException(renderingVisitor.Errors); } return result; }
/// <summary> /// /// </summary> /// <param name="ctx"></param> /// <param name="onRenderingError">A handler for rendering errors (e.g divide by zero)</param> /// <param name="onParsingError">A handler for parsing errors (e.g. an include with a syntax error)</param> /// <returns></returns> public String Render(ITemplateContext ctx, Action <LiquidError> onRenderingError = null, Action <LiquidError> onParsingError = null) { onRenderingError = onRenderingError ?? (err => { }); onParsingError = onParsingError ?? (err => { }); var result = ""; var renderingVisitor = new RenderingVisitor(ctx); renderingVisitor.RenderingErrorEventHandler += (sender, err) => onRenderingError(err); renderingVisitor.ParsingErrorEventHandler += err => onParsingError(err); renderingVisitor.StartWalking( _liquidAst.RootNode, str => result += str); return(result); }