private string FormatCodeBlock(CmsContext context, MarkdownDeep.Markdown markdown, string source) { try { var match = _LanguageExpression.Match(source.Split('\n')[0].Trim()); if (match.Success) { var language = match.Result("${language}"); var contentType = "code/" + language; var codeRenderer = context.GetRenderService(contentType); if (codeRenderer != null) { return codeRenderer.Render(context, new CmsPart(contentType, String.Join("\n", source.Split('\n').Skip(1)))).ToHtml().ToHtmlString(); } } } catch { } return markdown.Transform(source); }