protected override object FindParameterValue(Match match, ICmsRenderer cmsRenderer, ICmsContext context, ITheme theme, Func <string, string> recurse) { var templateNameGroup = match.Groups["templateName"]; if (templateNameGroup == null) { return(""); } var templateName = templateNameGroup.Value; var template = _templateStorage.Load(templateName, theme); if (template == null) { return(""); } var settings = new Dictionary <string, object>(); var settingsGroup = match.Groups["settings"]; if (settingsGroup != null && !string.IsNullOrEmpty(settingsGroup.Value)) { var settingsJson = settingsGroup.Value; if (!string.IsNullOrEmpty(settingsJson)) { var parsedSettings = JsonConvert.DeserializeObject <IDictionary <string, object> >(settingsJson); foreach (var item in parsedSettings) { settings[item.Key] = item.Value; } } } var renderResult = cmsRenderer.RenderTemplate(template, settings, context, theme); return(renderResult.Read()); }