When I composing the Headline News Control topic last week, and I keep suffering from formatting the sample code with the 'Code Formatter Extension' developed by manoli. After spent some time digging in and out from Google, and finally I found a posting about the missing CodeFormatterExtension.cs was actually put into a wrong folder (App_Code\Extensions\CodeFormatter) with a wrong filename (CodeFormatter.cs) too.
Next, I encounter another new problem... that is the code snippet does not formatted at all. So, I continue to digging through Google again. Last, I found this posting! Again... it does not solve my problem! Therefore, I took a visit manoli website and try out the version in his website and compare the formatted code with the output from the 'Code Formatter Extension' I have, and I notice there are differents! Hence, I step into the code and fixed it up and proceed to added the code, so that it will automatic include the missing CSS (csharp.css that I download from manoli website) link tag in the output HTML.
After a long struggling with this 'Code Formatter Extension', finally I get everything up and running with a minor touch up the csharp.css to have a better code snippet window being render in the blog. But, there is one problem I failed to resolve it! that is the alternative line background color does not cover the full code snippet when the code is too long as show in sample below.
1: /// <summary>
2: /// An event that handles ServingEventArgs
3: /// </summary>
4: /// <param name="sender"></param>
5: /// <param name="e"></param>
6: void ServingContent(object sender, ServingEventArgs e)
7: { 8: if (e.Body.Contains("XYZ")) 9: { 10: HtmlLink cssLink = new HtmlLink();
11: cssLink.Attributes["rel"] = "stylesheet";
12: cssLink.Attributes["type"] = "text/css";
13: cssLink.Attributes["href"] = String.Concat(Utils.RelativeWebRoot, "CodeFormatter/csharp.css");
14: System.Web.UI.Page page = (System.Web.UI.Page)HttpContext.Current.CurrentHandler;
15: page.Header.Controls.Add(cssLink);
16:
17: e.Body = codeRegex.Replace(e.Body, new MatchEvaluator(CodeEvaluator));
18: e.Body = codeBeginTagRegex.Replace(e.Body, @"<div class=""code"">");
19: e.Body = codeEndTagRegex.Replace(e.Body, @"</div>");
20: }
21: }
To Do...
- Unzip the CodeFormatterExtensions.zip
- Copy the respective files into your blog root directory.
Syntaxs...
Here are those syntax supported by this 'Code Formatter Extensions'
[code:c#|vb|js|html|xml|tsql|msh;ln=on|off;alt=on|off]
Put your code snippet here
[⁄code]
Since I have spent the time to fixed most the problem in this 'Code Formatter Extension', and wish to save those BlogEngine.NET newbies time to fixed this problem... I am upload the updated copy of 'Code Formatter Extensions' for those wish to download and use it. Do enjoy this extension origin from manoli.
CodeFormatterExtensions.zip (19.13 kb) [Downloads: 144]
184eed66-321b-41bc-ada6-09e54513ecb4|1|5.0
BlogEngine.NET
extensions