public LiquidViewParser(IOptions <LiquidViewOptions> liquidViewOptions) { RegisterEmptyTag("render_body", RenderBodyTag.WriteToAsync); RegisterParserTag("render_section", ArgumentsList, RenderSectionTag.WriteToAsync); RegisterParserTag("page_title", ArgumentsList, RenderTitleSegmentsTag.WriteToAsync); RegisterEmptyTag("antiforgerytoken", AntiForgeryTokenTag.WriteToAsync); RegisterExpressionTag("layout", LayoutTag.WriteToAsync); RegisterExpressionTag("shape_clear_alternates", ClearAlternatesTag.WriteToAsync); RegisterParserTag("shape_add_alternates", Primary.And(Primary), AddAlternatesTag.WriteToAsync); RegisterExpressionTag("shape_clear_wrappers", ClearWrappers.WriteToAsync); RegisterParserTag("shape_add_wrappers", Primary.And(Primary), AddWrappersTag.WriteToAsync); RegisterExpressionTag("shape_clear_classes", ClearClassesTag.WriteToAsync); RegisterParserTag("shape_add_classes", Primary.And(Primary), AddClassesTag.WriteToAsync); RegisterExpressionTag("shape_clear_attributes", ClearAttributesTag.WriteToAsync); RegisterParserTag("shape_add_attributes", Primary.And(ArgumentsList), AddAttributesTag.WriteToAsync); RegisterParserTag("shape_type", Primary.And(Primary), ShapeTypeTag.WriteToAsync); RegisterParserTag("shape_display_type", Primary.And(Primary), ShapeDisplayTypeTag.WriteToAsync); RegisterParserTag("shape_position", Primary.And(Primary), ShapePositionTag.WriteToAsync); RegisterParserTag("shape_cache", Primary.And(ArgumentsList), ShapeCacheTag.WriteToAsync); RegisterParserTag("shape_tab", Primary.And(Primary), ShapeTabTag.WriteToAsync); RegisterParserTag("shape_remove_item", Primary.And(Primary), ShapeRemoveItemTag.WriteToAsync); RegisterParserTag("shape_add_properties", Primary.And(ArgumentsList), ShapeAddPropertyTag.WriteToAsync); RegisterParserTag("shape_remove_property", Primary.And(Primary), ShapeRemovePropertyTag.WriteToAsync); RegisterParserTag("shape_pager", Primary.And(ArgumentsList), ShapePagerTag.WriteToAsync); RegisterParserTag("httpcontext_add_items", ArgumentsList, HttpContextAddItemTag.WriteToAsync); RegisterParserTag("httpcontext_remove_items", Primary, HttpContextRemoveItemTag.WriteToAsync); RegisterParserTag("helper", ArgumentsList, FluidTagHelper.WriteArgumentsTagHelperAsync); RegisterParserBlock("block", ArgumentsList, FluidTagHelper.WriteArgumentsBlockHelperAsync); RegisterParserTag("shape", ArgumentsList, ShapeTag.WriteToAsync); RegisterParserBlock("zone", ArgumentsList, ZoneTag.WriteToAsync); RegisteredTags["a"] = ArgumentsList.AndSkip(TagEnd).And(Parsers.ZeroOrOne(AnyTagsList.AndSkip(CreateTag("enda")))).Then <Statement>(x => new ParserBlockStatement <List <FilterArgument> >(x.Item1, x.Item2, DefaultAnchorTag.WriteToAsync)); RegisterParserBlock("form", ArgumentsList, (list, statements, writer, encoder, context) => FluidTagHelper.WriteToAsync("form", list, statements, writer, encoder, context)); // Dynamic caching RegisterParserBlock("cache", ArgumentsList, CacheTag.WriteToAsync); RegisterParserTag("cache_dependency", Primary, CacheDependencyTag.WriteToAsync); RegisterParserTag("cache_expires_on", Primary, CacheExpiresOnTag.WriteToAsync); RegisterParserTag("cache_expires_after", Primary, CacheExpiresAfterTag.WriteToAsync); RegisterParserTag("cache_expires_sliding", Primary, CacheExpiresSlidingTag.WriteToAsync); foreach (var configuration in liquidViewOptions.Value.LiquidViewParserConfiguration) { configuration(this); } }