コード例 #1
0
ファイル: CodeFormatHelper.cs プロジェクト: emrahshn/Provent
        private static string Highlight(HighlightOptions options, string text)
        {
            switch (options.Language)
            {
            case "c#":
                var csf = new CSharpFormat();
                csf.LineNumbers = options.DisplayLineNumbers;
                csf.Alternate   = options.AlternateLineNumbers;
                return(HttpUtility.HtmlDecode(csf.FormatCode(text)));

            case "vb":
                var vbf = new VisualBasicFormat();
                vbf.LineNumbers = options.DisplayLineNumbers;
                vbf.Alternate   = options.AlternateLineNumbers;
                return(vbf.FormatCode(text));

            case "js":
                var jsf = new JavaScriptFormat();
                jsf.LineNumbers = options.DisplayLineNumbers;
                jsf.Alternate   = options.AlternateLineNumbers;
                return(HttpUtility.HtmlDecode(jsf.FormatCode(text)));

            case "html":
                var htmlf = new HtmlFormat();
                htmlf.LineNumbers = options.DisplayLineNumbers;
                htmlf.Alternate   = options.AlternateLineNumbers;
                text = StripHtml(text).Trim();
                string code = htmlf.FormatCode(HttpUtility.HtmlDecode(text)).Trim();
                return(code.Replace("\r\n", "<br />").Replace("\n", "<br />"));

            case "xml":
                var xmlf = new HtmlFormat();
                xmlf.LineNumbers = options.DisplayLineNumbers;
                xmlf.Alternate   = options.AlternateLineNumbers;
                text             = text.Replace("<br />", "\r\n");
                text             = StripHtml(text).Trim();
                string xml = xmlf.FormatCode(HttpUtility.HtmlDecode(text)).Trim();
                return(xml.Replace("\r\n", "<br />").Replace("\n", "<br />"));

            case "tsql":
                var tsqlf = new TsqlFormat();
                tsqlf.LineNumbers = options.DisplayLineNumbers;
                tsqlf.Alternate   = options.AlternateLineNumbers;
                return(HttpUtility.HtmlDecode(tsqlf.FormatCode(text)));

            case "msh":
                var mshf = new MshFormat();
                mshf.LineNumbers = options.DisplayLineNumbers;
                mshf.Alternate   = options.AlternateLineNumbers;
                return(HttpUtility.HtmlDecode(mshf.FormatCode(text)));
            }

            return(string.Empty);
        }
コード例 #2
0
ファイル: CodeFormatHelper.cs プロジェクト: emrahshn/Provent
        private static string CodeEvaluatorSimple(Match match)
        {
            if (!match.Success)
            {
                return(match.Value);
            }

            var options = new HighlightOptions();

            options.Language             = "c#";
            options.Code                 = match.Groups["inner"].Value;
            options.DisplayLineNumbers   = false;
            options.Title                = string.Empty;
            options.AlternateLineNumbers = false;

            string result = match.Value;

            result = Highlight(options, result);
            return(result);
        }
コード例 #3
0
ファイル: CodeFormatHelper.cs プロジェクト: emrahshn/Provent
        private static string CodeEvaluator(Match match)
        {
            if (!match.Success)
            {
                return(match.Value);
            }

            var options = new HighlightOptions();

            options.Language             = match.Groups["lang"].Value;
            options.Code                 = match.Groups["code"].Value;
            options.DisplayLineNumbers   = match.Groups["linenumbers"].Value == "on";
            options.Title                = match.Groups["title"].Value;
            options.AlternateLineNumbers = match.Groups["altlinenumbers"].Value == "on";

            string result = match.Value.Replace(match.Groups["begin"].Value, "");

            result = result.Replace(match.Groups["end"].Value, "");
            result = Highlight(options, result);
            return(result);
        }