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);
 }