public static IHtmlString CompiledContent(this IDynamicContent contentItem, bool trustContent = false) { if (contentItem == null) { return(NonEncodedHtmlString.Empty); } switch (contentItem.ContentType) { case DynamicContentType.Markdown: var md = new Markdown { AutoHeadingIDs = true, ExtraMode = true, NoFollowLinks = !trustContent, SafeMode = false, NewWindowForExternalLinks = true, }; var contents = contentItem.Content; // TODO contents = CodeBlockFinder.Replace(contents, match => GenerateCodeBlock(match.Groups[1].Value.Trim(), match.Groups[2].Value)); contents = md.Transform(contents); return(new NonEncodedHtmlString(contents)); case DynamicContentType.Html: return(trustContent ? new NonEncodedHtmlString(contentItem.Content) : NonEncodedHtmlString.Empty); } return(NonEncodedHtmlString.Empty); }
public static IHtmlString CompiledContent(this IDynamicContent contentItem, bool trustContent = false) { if (contentItem == null) { return(NonEncodedHtmlString.Empty); } return(CompiledStringContent(contentItem.Content, contentItem.ContentType, trustContent)); }
public static MvcHtmlString CompiledContent(this IDynamicContent contentItem, bool trustContent) { if (contentItem == null) { return(MvcHtmlString.Empty); } switch (contentItem.ContentType) { case DynamicContentType.Markdown: var md = new Markdown { AutoHeadingIDs = true, ExtraMode = true, NoFollowLinks = !trustContent, SafeMode = false, NewWindowForExternalLinks = true, }; var contents = contentItem.Body; contents = CodeBlockFinder.Replace(contents, match => GenerateCodeBlock(match.Groups[1].Value.Trim(), match.Groups[2].Value)); try { contents = md.Transform(contents); } catch (Exception) { contents = string.Format("<pre>{0}</pre>", HttpUtility.HtmlEncode(contents)); } return(MvcHtmlString.Create(contents)); case DynamicContentType.Html: return(trustContent ? MvcHtmlString.Create(contentItem.Body) : MvcHtmlString.Empty); } return(MvcHtmlString.Empty); }
public string GetMarkup(IDynamicContent dynamicContent) { return string.Format(@"<span class=""nonEditable""><dynamiccontent state=""{0}"">{{DynamicContent:{1}}}</dynamiccontent></span>", dynamicContent.State, TypeToNameMap[dynamicContent.GetType()]); }