/// <summary> /// Code evaluator method /// </summary> /// <param name="match">Match</param> /// <returns>Formatted text</returns> private static string CodeEvaluatorSimple(Match match) { if (!match.Success) { return(match.Value); } var options = new HighlightOptions { Language = "c#", Code = match.Groups["inner"].Value, DisplayLineNumbers = false, Title = string.Empty, AlternateLineNumbers = false }; var result = match.Value; result = Highlight(options, result); return(result); }
/// <summary> /// Returns the formatted text. /// </summary> /// <param name="options">Whatever options were set in the regex groups.</param> /// <param name="text">Send the e.body so it can get formatted.</param> /// <returns>The formatted string of the match.</returns> private static string Highlight(HighlightOptions options, string text) { switch (options.Language) { case "c#": var csf = new CSharpFormat { LineNumbers = options.DisplayLineNumbers, Alternate = options.AlternateLineNumbers }; return(WebUtility.HtmlDecode(csf.FormatCode(text))); case "vb": var vbf = new VisualBasicFormat { LineNumbers = options.DisplayLineNumbers, Alternate = options.AlternateLineNumbers }; return(vbf.FormatCode(text)); case "js": var jsf = new JavaScriptFormat { LineNumbers = options.DisplayLineNumbers, Alternate = options.AlternateLineNumbers }; return(WebUtility.HtmlDecode(jsf.FormatCode(text))); case "html": var htmlf = new HtmlFormat { LineNumbers = options.DisplayLineNumbers, Alternate = options.AlternateLineNumbers }; text = StripHtml(text).Trim(); var code = htmlf.FormatCode(WebUtility.HtmlDecode(text)).Trim(); return(code.Replace("\r\n", "<br />").Replace("\n", "<br />")); case "xml": var xmlf = new HtmlFormat { LineNumbers = options.DisplayLineNumbers, Alternate = options.AlternateLineNumbers }; text = text.Replace("<br />", "\r\n"); text = StripHtml(text).Trim(); var xml = xmlf.FormatCode(WebUtility.HtmlDecode(text)).Trim(); return(xml.Replace("\r\n", "<br />").Replace("\n", "<br />")); case "tsql": var tsqlf = new TsqlFormat { LineNumbers = options.DisplayLineNumbers, Alternate = options.AlternateLineNumbers }; return(WebUtility.HtmlDecode(tsqlf.FormatCode(text))); case "msh": var mshf = new MshFormat { LineNumbers = options.DisplayLineNumbers, Alternate = options.AlternateLineNumbers }; return(WebUtility.HtmlDecode(mshf.FormatCode(text))); } return(string.Empty); }