Exemplo n.º 1
0
    /// <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 string Highlight(HighlightOptions options, string text)
    {
        switch (options.Language)
        {
        case "c#":
            CSharpFormat csf = new CSharpFormat();
            csf.LineNumbers = options.DisplayLineNumbers;
            csf.Alternate   = options.AlternateLineNumbers;
            return(HttpContext.Current.Server.HtmlDecode(csf.FormatCode(text)));

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

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

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

        case "xml":
            HtmlFormat 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(HttpContext.Current.Server.HtmlDecode(text)).Trim();
            return(xml.Replace("\r\n", "<br />").Replace("\n", "<br />"));

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

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

        return(string.Empty);
    }
Exemplo n.º 2
0
        public static string HighlightToHTML(string source, LangType type, bool customProtectionTags)
        {
            SourceFormat sf = null;

            switch (type)
            {
            case LangType.C:
            case LangType.CPP:
                sf = new CppFormat();
                break;

            case LangType.CS:
                sf = new CSharpFormat();
                break;

            case LangType.Html:
            case LangType.Xml:
            case LangType.Asp:
                sf = new HtmlFormat();
                break;

            case LangType.JS:
                sf = new JavaScriptFormat();
                break;

            case LangType.Msh:
                sf = new MshFormat();
                break;

            case LangType.TSql:
                sf = new TsqlFormat();
                break;

            case LangType.VB:
                sf = new VisualBasicFormat();
                break;
            }

            if (sf == null)
            {
                return(source);
            }

            sf.CustomProtectedTags = customProtectionTags;
            return(sf.FormatCode(source));
        }
Exemplo n.º 3
0
        /// <summary>
        /// Handles the Click event of the btnCopy control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
        private void btnCopy_Click(object sender, EventArgs e)
        {
            SourceFormat sf = null;

            if (rbCSharp.Checked)
            {
                sf = new CSharpFormat();
            }
            else if (rbVB.Checked)
            {
                sf = new VisualBasicFormat();
            }
            else if (rbtsql.Checked)
            {
                sf = new TsqlFormat();
            }
            else if (rbHtml.Checked)
            {
                sf = new HtmlFormat();
            }
            else if (rbJS.Checked)
            {
                sf = new JavaScriptFormat();
            }
            else if (rbMsh.Checked)
            {
                sf = new MshFormat();
            }
            else
            {
                return;
            }

            sf.TabSpaces       = 4;
            sf.LineNumbers     = cbLineNumbers.Checked;
            sf.EmbedStyleSheet = cbEmbedCss.Checked;
            sf.Alternate       = cbAlternate.Checked;
            string formatedCode = sf.FormatCode(CodeToFormat);

            //Clipboard.SetText(formatedCode, TextDataFormat.Html);
            Clipboard.SetText(formatedCode);
        }
Exemplo n.º 4
0
        public override string GetReplaceResult(Match match)
        {
            string       lang      = match.Result("$1");
            string       body      = match.Result("$2");
            SourceFormat srcFormat = new HtmlFormat();

            if (lang.Equals("c#", StringComparison.OrdinalIgnoreCase) || lang.Equals("cs", StringComparison.OrdinalIgnoreCase) ||
                lang.Equals("csharp", StringComparison.OrdinalIgnoreCase))
            {
                srcFormat = new CSharpFormat();
            }

            if (lang.Equals("vb", StringComparison.OrdinalIgnoreCase) || lang.Equals("visualbasic", StringComparison.OrdinalIgnoreCase) ||
                lang.Equals("vbscript", StringComparison.OrdinalIgnoreCase))
            {
                srcFormat = new VisualBasicFormat();
            }

            if (lang.Equals("javascript", StringComparison.OrdinalIgnoreCase) || lang.Equals("js", StringComparison.OrdinalIgnoreCase) ||
                lang.Equals("jscript", StringComparison.OrdinalIgnoreCase))
            {
                srcFormat = new JavaScriptFormat();
            }

            if (lang.Equals("sql", StringComparison.OrdinalIgnoreCase))
            {
                srcFormat = new TsqlFormat();
            }

            if (lang.Equals("msh", StringComparison.OrdinalIgnoreCase))
            {
                srcFormat = new MshFormat();
            }

            srcFormat.Alternate       = Alternate;
            srcFormat.EmbedStyleSheet = EmbedStyleSheet;
            srcFormat.LineNumbers     = LineNumbers;
            return(srcFormat.FormatCode(body));
        }
Exemplo n.º 5
0
        private static SourceFormat _GetSourceCodeFormat(string language, bool alternate, bool embedStyleSheet, bool lineNumbers)
        {
            SourceFormat srcFormat = new HtmlFormat();

            if (language.Equals("c#", StringComparison.OrdinalIgnoreCase) || language.Equals("cs", StringComparison.OrdinalIgnoreCase) ||
                language.Equals("csharp", StringComparison.OrdinalIgnoreCase))
            {
                srcFormat = new CSharpFormat();
            }

            if (language.Equals("vb", StringComparison.OrdinalIgnoreCase) || language.Equals("visualbasic", StringComparison.OrdinalIgnoreCase) ||
                language.Equals("vbscript", StringComparison.OrdinalIgnoreCase))
            {
                srcFormat = new VisualBasicFormat();
            }

            if (language.Equals("javascript", StringComparison.OrdinalIgnoreCase) || language.Equals("js", StringComparison.OrdinalIgnoreCase) ||
                language.Equals("jscript", StringComparison.OrdinalIgnoreCase))
            {
                srcFormat = new JavaScriptFormat();
            }

            if (language.Equals("sql", StringComparison.OrdinalIgnoreCase))
            {
                srcFormat = new TsqlFormat();
            }

            if (language.Equals("msh", StringComparison.OrdinalIgnoreCase))
            {
                srcFormat = new MshFormat();
            }

            srcFormat.Alternate       = alternate;
            srcFormat.EmbedStyleSheet = embedStyleSheet;
            srcFormat.LineNumbers     = lineNumbers;
            return(srcFormat);
        }
        public static string FormatCode(string lang, string code)
        {
            SourceFormat sf = null;

            switch (lang)
            {
            case "csharp":
            case "cs":
                sf = new Manoli.Utils.CSharpFormat.CSharpFormat();
                break;

            case "c++":
            case "cpp":
                sf = new CPlusPlusFormat();
                break;

            case "js":
            case "javascript":
                sf = new JavaScriptFormat();
                break;

            case "vb":
            case "basic":
                sf = new VisualBasicFormat();
                break;

            case "sql":
                sf = new TsqlFormat();
                break;

            case "msh":
                sf = new MshFormat();
                break;

            case "haskell":
                sf = new HaskellFormat();
                break;

            case "php":
                sf = new PhpFormat();
                break;

            case "fsharp":
            case "fs":
                sf = new FSharpFormat();
                break;

            case "html":
            case "xml":
            case "aspx":
                sf = new HtmlFormat();
                break;
            }
            if (sf == null)
            {
                return(code);
            }
            else
            {
                string c = code.Replace("&amp;", "&").Replace("&lt;", "<").Replace("&gt;", ">").Replace("&quot;", "\"");
                c = c.Replace("<em>", "verynastythingthatnoonewillusebeginem")
                    .Replace("</em>", "verynastythingthatnoonewilluseendem");
                sf.TabSpaces = 2;
                return(sf.FormatCode(c)
                       .Replace("verynastythingthatnoonewilluseendem", "</em>")
                       .Replace("verynastythingthatnoonewillusebeginem", "<em>"));
            }
        }
Exemplo n.º 7
0
        public static string FormatCode(string lang, string code)
        {
            SourceFormat sf = null;

            switch (lang)
            {
            case "csharp":
            case "cs":
                sf = new Manoli.Utils.CSharpFormat.CSharpFormat();
                break;

            case "c++":
            case "cpp":
                sf = new CPlusPlusFormat();
                break;

            case "js":
            case "javascript":
                sf = new JavaScriptFormat();
                break;

            case "vb":
            case "basic":
                sf = new VisualBasicFormat();
                break;

            case "sql":
                sf = new TsqlFormat();
                break;

            case "msh":
                sf = new MshFormat();
                break;

            case "haskell":
                sf = new HaskellFormat();
                break;

            case "php":
                sf = new PhpFormat();
                break;

            case "fsharp":
            case "fs":
                sf = new FSharpFormat();
                break;

            case "html":
            case "xml":
            case "aspx":
                sf = new HtmlFormat();
                break;
            }
            if (sf == null)
            {
                return(code);
            }
            else
            {
                sf.TabSpaces = 2;
                return(sf.FormatCode(code));
            }
        }
        public static Tuple <bool, string> FormatCode(string lang, string code)
        {
            SourceFormat sf = null;

            switch (lang)
            {
            case "csharp":
            case "cs":
                sf = new Manoli.Utils.CSharpFormat.CSharpFormat();
                break;

            case "c++":
            case "cpp":
                sf = new CPlusPlusFormat();
                break;

            case "js":
            case "javascript":
                sf = new JavaScriptFormat();
                break;

            case "ts":
            case "typescript":
                sf = new TypeScriptFormat();
                break;

            case "vb":
            case "basic":
                sf = new VisualBasicFormat();
                break;

            case "sql":
                sf = new TsqlFormat();
                break;

            case "msh":
                sf = new MshFormat();
                break;

            case "haskell":
                sf = new HaskellFormat();
                break;

            case "php":
                sf = new PhpFormat();
                break;

            case "fsharp":
            case "fs":
                sf = new FSharpFormat();
                break;

            case "html":
            case "xml":
            case "aspx":
                sf = new HtmlFormat();
                break;

            case "paket":
                sf = new PaketFormat();
                break;
            }
            if (sf == null)
            {
                return(Tuple.Create(false, SourceFormat.EscapeHtml(code, tabSpaces: 2)));
            }
            else
            {
                sf.TabSpaces = 2;
                return(Tuple.Create(true, sf.FormatCode(code)));
            }
        }
Exemplo n.º 9
0
    /// <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(HttpContext.Current.Server.HtmlDecode(csf.FormatCode(text)));

        case "vb":
            var vbf = new VisualBasicFormat
            {
                LineNumbers = options.DisplayLineNumbers,
                Alternate   = options.AlternateLineNumbers
            };
            return(HttpContext.Current.Server.HtmlDecode(vbf.FormatCode(text)));

        case "js":
            var jsf = new JavaScriptFormat
            {
                LineNumbers = options.DisplayLineNumbers,
                Alternate   = options.AlternateLineNumbers
            };
            return(HttpContext.Current.Server.HtmlDecode(jsf.FormatCode(text)));

        case "html":
            var htmlf = new HtmlFormat
            {
                LineNumbers = options.DisplayLineNumbers,
                Alternate   = options.AlternateLineNumbers
            };
            text = Utils.StripHtml(text);
            var code = htmlf.FormatCode(HttpContext.Current.Server.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 = Utils.StripHtml(text);
            var xml = xmlf.FormatCode(HttpContext.Current.Server.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(HttpContext.Current.Server.HtmlDecode(tsqlf.FormatCode(text)));

        case "msh":
            var mshf = new MshFormat
            {
                LineNumbers = options.DisplayLineNumbers,
                Alternate   = options.AlternateLineNumbers
            };
            return(HttpContext.Current.Server.HtmlDecode(mshf.FormatCode(text)));
        }

        return(string.Empty);
    }
Exemplo n.º 10
0
        /// <summary>
        /// 產生Html報表
        /// </summary>
        /// <param name="aDT">呈現資料內容</param>
        /// <param name="aRule">檢查規則</param>
        /// <returns>傳回產生後的字串(StringBuilder)</returns>
        public static StringBuilder GenerateBody(DataTable aDT, ICheckRule aRule)
        {
            DataTable dt = aDT;

            StringBuilder strB = new StringBuilder();

            //create html & table
            strB.AppendLine("<html><head>");
            strB.AppendLine("<style type=\"text/css\">");
            strB.AppendLine("@charset \"utf-8\";");
            strB.AppendLine("body {background-color: #CCFFFF;}");
            strB.AppendLine("body, td, th {color: #333333;}");
            strB.AppendLine("h1, h2 {color: #000033;}");
            strB.AppendLine("h3, h4, h5, h6 {color: #006699;}");
            strB.AppendLine("a {color: #003366;}");
            strB.AppendLine(".csharpcode, .csharpcode pre");
            strB.AppendLine("{	font-size: small;");
            strB.AppendLine("	color: black;");
            strB.AppendLine("	font-family: Consolas, \"Courier New\", Courier, Monospace;");
            strB.AppendLine("	background-color: #ffffff;}");
            strB.AppendLine(".csharpcode pre { margin: 0em; }");
            strB.AppendLine(".csharpcode .rem { color: #008000; }");
            strB.AppendLine(".csharpcode .kwrd { color: #0000ff; }");
            strB.AppendLine(".csharpcode .str { color: #006080; }");
            strB.AppendLine(".csharpcode .op { color: #0000c0; }");
            strB.AppendLine(".csharpcode .preproc { color: #cc6633; }");
            strB.AppendLine(".csharpcode .asp { background-color: #ffff00; }");
            strB.AppendLine(".csharpcode .html { color: #800000; }");
            strB.AppendLine(".csharpcode .attr { color: #ff0000; }");
            strB.AppendLine(".csharpcode .alt ");
            strB.AppendLine("{	background-color: #f4f4f4;");
            strB.AppendLine("	width: 100%;");
            strB.AppendLine("	margin: 0em;}");
            strB.AppendLine(".csharpcode .lnum { color: #606060; }");
            strB.AppendLine("</style>");
            strB.AppendLine("<body><head>");
            strB.AppendFormat("<h1><strong>{0} 查核報告表</strong></h1>", DateTime.Now.ToString("yyyy/MM/dd"));
            strB.AppendLine("<h2>問題:</h2><p>");
            strB.AppendFormat("<strong>{0}</strong>", aRule.TITL);
            strB.AppendLine("<P>");
            strB.AppendLine("<h2>問題說明:</h2><p>");
            strB.AppendLine(TextToHtml(aRule.REMARK));
            strB.AppendLine("<P>");
            strB.AppendFormat("資料庫:{0}", aRule.DBID);
            strB.AppendLine("<h2>錯誤資料列表:</h2>");
            strB.AppendLine("<center>");
            strB.Append("<table border='2px' cellpadding='5' cellspacing='0' ");
            strB.Append("style='border: solid 1px Silver; font-size: x-small;'>");
            strB.AppendLine("<tr align='left' valign='top'>");
            //cteate table header
            foreach (DataColumn dc in dt.Columns)
            {
                strB.AppendFormat("<td valign='middle'><strong>{0}</strong></td>", dc.ColumnName);
            }
            strB.AppendLine("</tr>");
            //create table body
            foreach (DataRow dr in dt.Rows)
            {
                strB.AppendLine("<tr align='left' valign='top'>");
                foreach (DataColumn dc in dt.Columns)
                {
                    string cellValue = dr[dc] != null ? dr[dc].ToString() : "";
                    strB.AppendFormat("<td align='center' valign='middle'>{0}</td>", cellValue);
                }
                strB.AppendLine("</tr>");
            }
            strB.AppendLine("</table></center>");  //table footer

            strB.AppendLine("<P>");
            strB.AppendLine("<h2>查詢SQL :</h2>");
            strB.AppendLine("<P>");
            TsqlFormat sf = new TsqlFormat();

            strB.AppendLine(sf.FormatCode(aRule.LSSQL));
            // end of html file
            strB.AppendLine("</body></html>");  // end line
            return(strB);
        }
Exemplo n.º 11
0
        static BbCodeProcessor()
        {
            _formatters.Add(new RegexFormatter("<(.|\\n)*?>", string.Empty));
            _formatters.Add(new LineBreaksFormatter(new string[7]
            {
                "html",
                "csharp",
                "code",
                "jscript",
                "sql",
                "vb",
                "php"
            }));
            _formatters.Add(new RegexFormatter("\\[b(?:\\s*)\\]((.|\\n)*?)\\[/b(?:\\s*)\\]", "<strong>$1</strong>"));
            _formatters.Add(new RegexFormatter("\\[chart(?:\\s*)\\]((.|\\n)*?)\\[/chart(?:\\s*)\\]", "<iframe src=\"/ShowChart/Charts/$1\"  border=\"0\" class=\"chartFrame\" > </iframe>"));

            _formatters.Add(new RegexFormatter("\\[tr(?:\\s*)\\]((.|\\n)*?)\\[/tr(?:\\s*)\\]", "<tr>$1</tr>"));
            _formatters.Add(new RegexFormatter("\\[td(?:\\s*)\\]((.|\\n)*?)\\[/td(?:\\s*)\\]", "<td>$1</td>"));
            _formatters.Add(new RegexFormatter("\\[table(?:\\s*)\\]((.|\\n)*?)\\[/table(?:\\s*)\\]", "<table>$1</table>"));
            _formatters.Add(new RegexFormatter("\\[chart(?:\\s*)\\]((.|\\n)*?)\\[/chart(?:\\s*)\\]", "<iframe src=\"/ShowChart/Charts/$1\" style=\"border:0 none;\" class=\"chartFrame\" > </iframe>"));

            _formatters.Add(new RegexFormatter("\\[i(?:\\s*)\\]((.|\\n)*?)\\[/i(?:\\s*)\\]", "<em>$1</em>"));
            _formatters.Add(new RegexFormatter("\\[s(?:\\s*)\\]((.|\\n)*?)\\[/s(?:\\s*)\\]", "<strike>$1</strike>"));
            _formatters.Add(new RegexFormatter("\\[u(?:\\s*)\\]((.|\\n)*?)\\[/u(?:\\s*)\\]", "<u>$1</u>"));
            _formatters.Add(new RegexFormatter("\\[left(?:\\s*)\\]((.|\\n)*?)\\[/left(?:\\s*)]", "<div style=\"text-align:left\">$1</div>"));
            _formatters.Add(new RegexFormatter("\\[center(?:\\s*)\\]((.|\\n)*?)\\[/center(?:\\s*)]", "<div style=\"text-align:center\">$1</div>"));
            _formatters.Add(new RegexFormatter("\\[right(?:\\s*)\\]((.|\\n)*?)\\[/right(?:\\s*)]", "<div style=\"text-align:right\">$1</div>"));
            _formatters.Add(new RegexFormatter("\\[rtl(?:\\s*)\\]((.|\\n)*?)\\[/rtl(?:\\s*)]", "<div style=\"text-align:right;direction:rtl\">$1</div>"));
            _formatters.Add(new RegexFormatter("\\[ltr(?:\\s*)\\]((.|\\n)*?)\\[/ltr(?:\\s*)]", "<div style=\"text-align:left;direction:ltr\">$1</div>"));
            _formatters.Add(new RegexFormatter("\\[code(?:\\s*)\\]((.|\\n)*?)\\[/code(?:\\s*)]", "<div class=\"bbc-codetitle\">Code:</div><div class=\"bbc-codecontent\"><pre>$1</pre></div>"));
            _formatters.Add(new RegexFormatter("\\[php(?:\\s*)\\]((.|\\n)*?)\\[/php(?:\\s*)]", "<div class=\"bbc-codetitle\">PHP Code:</div><div class=\"bbc-codecontent\"><pre>$1</pre></div>"));
            List <IHtmlFormatter> formatters1 = _formatters;
            HtmlFormat            htmlFormat  = new HtmlFormat();
            int num1 = 1;

            htmlFormat.EmbedStyleSheet = num1 != 0;
            string          pattern1         = "\\[html(?:\\s*)\\]((.|\\n)*?)\\[/html(?:\\s*)]";
            string          replace1         = "<div class=\"bbc-codetitle\">HTML Code:</div><div class=\"bbc-codecontent\">{0}</div>";
            SyntaxFormatter syntaxFormatter1 = new SyntaxFormatter(htmlFormat, pattern1, replace1);

            formatters1.Add(syntaxFormatter1);
            List <IHtmlFormatter> formatters2  = _formatters;
            CSharpFormat          csharpFormat = new CSharpFormat();
            int num2 = 1;

            csharpFormat.EmbedStyleSheet = num2 != 0;
            string          pattern2         = "\\[csharp(?:\\s*)\\]((.|\\n)*?)\\[/csharp(?:\\s*)]";
            string          replace2         = "<div class=\"bbc-codetitle\">C# Code:</div><div class=\"bbc-codecontent\">{0}</div>";
            SyntaxFormatter syntaxFormatter2 = new SyntaxFormatter(csharpFormat, pattern2, replace2);

            formatters2.Add(syntaxFormatter2);
            List <IHtmlFormatter> formatters3      = _formatters;
            JavaScriptFormat      javaScriptFormat = new JavaScriptFormat();
            int num3 = 1;

            javaScriptFormat.EmbedStyleSheet = num3 != 0;
            string          pattern3         = "\\[jscript(?:\\s*)\\]((.|\\n)*?)\\[/jscript(?:\\s*)]";
            string          replace3         = "<div class=\"bbc-codetitle\">JavaScript Code:</div><div class=\"bbc-codecontent\">{0}</div>";
            SyntaxFormatter syntaxFormatter3 = new SyntaxFormatter(javaScriptFormat, pattern3, replace3);

            formatters3.Add(syntaxFormatter3);
            List <IHtmlFormatter> formatters4 = _formatters;
            TsqlFormat            tsqlFormat  = new TsqlFormat();
            int num4 = 1;

            tsqlFormat.EmbedStyleSheet = num4 != 0;
            string          pattern4         = "\\[sql(?:\\s*)\\]((.|\\n)*?)\\[/sql(?:\\s*)]";
            string          replace4         = "<div class=\"bbc-codetitle\">SQL Code:</div><div class=\"bbc-codecontent\">{0}</div>";
            SyntaxFormatter syntaxFormatter4 = new SyntaxFormatter(tsqlFormat, pattern4, replace4);

            formatters4.Add(syntaxFormatter4);
            List <IHtmlFormatter> formatters5       = _formatters;
            VisualBasicFormat     visualBasicFormat = new VisualBasicFormat();
            int num5 = 1;

            visualBasicFormat.EmbedStyleSheet = num5 != 0;
            string          pattern5         = "\\[vb(?:\\s*)\\]((.|\\n)*?)\\[/vb(?:\\s*)]";
            string          replace5         = "<div class=\"bbc-codetitle\">Visual Basic Code:</div><div class=\"bbc-codecontent\">{0}</div>";
            SyntaxFormatter syntaxFormatter5 = new SyntaxFormatter(visualBasicFormat, pattern5, replace5);

            formatters5.Add(syntaxFormatter5);
            _formatters.Add(new RegexFormatter("\\[quote=((.|\\n)*?)(?:\\s*)\\]", "<div class=\"bbc-quotetitle\">$1 said:</div><div class=\"bbc-quotecontent\"><p>"));
            _formatters.Add(new RegexFormatter("\\[quote(?:\\s*)\\]", "<div class=\"bbc-quotecontent\"><p>"));
            _formatters.Add(new RegexFormatter("\\[/quote(?:\\s*)\\]", "</p></div>"));

            _formatters.Add(new RegexFormatter("\\[url(?:\\s*)\\]www\\.(.*?)\\[/url(?:\\s*)\\]", "<a href=\"http://www.$1\" target=\"_blank\" title=\"$1\">$1</a>"));

            _formatters.Add(new RegexFormatter("\\[url(?:\\s*)\\]((.|\\n)*?)\\[/url(?:\\s*)\\]", "<a href=\"$1\" target=\"_blank\" title=\"$1\">$1</a>"));
            _formatters.Add(new RegexFormatter("\\[url=\"((.|\\n)*?)(?:\\s*)\"\\]((.|\\n)*?)\\[/url(?:\\s*)\\]", "<a href=\"$1\" target=\"_blank\" title=\"$1\">$3</a>"));
            _formatters.Add(new RegexFormatter("\\[url=((.|\\n)*?)(?:\\s*)\\]((.|\\n)*?)\\[/url(?:\\s*)\\]", "<a href=\"$1\" target=\"_blank\" title=\"$1\">$3</a>"));
            _formatters.Add(new RegexFormatter("\\[link(?:\\s*)\\]((.|\\n)*?)\\[/link(?:\\s*)\\]", "<a href=\"$1\" target=\"_blank\" title=\"$1\">$1</a>"));
            _formatters.Add(new RegexFormatter("\\[link=((.|\\n)*?)(?:\\s*)\\]((.|\\n)*?)\\[/link(?:\\s*)\\]", "<a href=\"$1\" target=\"_blank\" title=\"$1\">$3</a>"));

            var rnd = new Random().Next(int.MaxValue);

            _formatters.Add(new RegexFormatter("\\[tree(?:\\s*)\\]((.|\\n)*?)\\[/tree(?:\\s*)\\]", "<div id='treegraph" + rnd + "'></div><script>   dTree.init(treeDataParcer('$1'), { target: '#treegraph" + rnd + "',width: document.getElementById('treegraph" + rnd + "').offsetWidth, height: 850}); </script>"));
            _formatters.Add(new RegexFormatter("\\[tree=((.|\\n)*?)(?:\\s*)\\]((.|\\n)*?)\\[/tree(?:\\s*)\\]", "<style>$1</style> <div id='treegraph" + rnd + "'></div> <script>   dTree.init(treeDataParcer('$3'), { target: '#treegraph" + rnd + "',width: document.getElementById('treegraph" + rnd + "').offsetWidth, height: 850 }); </script>"));


            _formatters.Add(new RegexFormatter("\\[img(?:\\s*)\\]((.|\\n)*?)\\[/img(?:\\s*)\\]", "<img src=\"$1\" border=\"0\" alt=\"\" />"));
            _formatters.Add(new RegexFormatter("\\[img align=((.|\\n)*?)(?:\\s*)\\]((.|\\n)*?)\\[/img(?:\\s*)\\]", "<img src=\"$3\" border=\"0\" align=\"$1\" alt=\"\" />"));
            _formatters.Add(new RegexFormatter("\\[img width=((.|\\n)*?),height=((.|\\n)*?)(?:\\s*)\\]((.|\\n)*?)\\[/img(?:\\s*)\\]", "<img width=\"$1\" height=\"$3\" src=\"$5\" border=\"0\" alt=\"\" />"));
            _formatters.Add(new RegexFormatter("\\[img=((.|\\n)*?)x((.|\\n)*?)(?:\\s*)\\]((.|\\n)*?)\\[/img(?:\\s*)\\]", "<img width=\"$1\" height=\"$3\" src=\"$5\" border=\"0\" alt=\"\" />"));
            _formatters.Add(new RegexFormatter("\\[color=((.|\\n)*?)(?:\\s*)\\]((.|\\n)*?)\\[/color(?:\\s*)\\]", "<span style=\"color:$1;\">$3</span>"));
            _formatters.Add(new RegexFormatter("\\[highlight(?:\\s*)\\]((.|\\n)*?)\\[/highlight(?:\\s*)]", "<span class=\"bbc-highlight\">$1</span>"));
            _formatters.Add(new RegexFormatter("\\[spoiler(?:\\s*)\\]((.|\\n)*?)\\[/spoiler(?:\\s*)]", "<span class=\"bbc-spoiler\">$1</span>"));
            _formatters.Add(new RegexFormatter("\\[indent(?:\\s*)\\]((.|\\n)*?)\\[/indent(?:\\s*)]", "<div class=\"bbc-indent\">$1</div>"));
            _formatters.Add(new RegexFormatter("\\[hr(?:\\s*)\\]", "<hr />"));
            _formatters.Add(new RegexFormatter("\\[rule=((.|\\n)*?)(?:\\s*)\\]((.|\\n)*?)\\[/rule(?:\\s*)\\]", "<div style=\"height: 0pt; border-top: 1px solid $3; margin: auto; width: $1;\"></div>"));
            _formatters.Add(new RegexFormatter("\\[email(?:\\s*)\\]((.|\\n)*?)\\[/email(?:\\s*)\\]", "<a href=\"mailto:$1\">$1</a>"));
            _formatters.Add(new RegexFormatter("\\[email=\"((.|\\n)*?)(?:\\s*)\"\\]((.|\\n)*?)\\[/email(?:\\s*)\\]", "<a href=\"mailto:$1\" title=\"$3\">$3</a>"));
            _formatters.Add(new RegexFormatter("\\[email=((.|\\n)*?)(?:\\s*)\\]((.|\\n)*?)\\[/email(?:\\s*)\\]", "<a href=\"mailto:$1\" title=\"$3\">$3</a>"));
            _formatters.Add(new RegexFormatter("\\[small(?:\\s*)\\]((.|\\n)*?)\\[/small(?:\\s*)]", "<small>$1</small>"));
            _formatters.Add(new RegexFormatter("\\[size=+((.|\\n)*?)(?:\\s*)\\]((.|\\n)*?)\\[/size(?:\\s*)\\]", "<span style=\"font-size:$1em\">$3</span>"));
            _formatters.Add(new RegexFormatter("\\[size=((.|\\n)*?)(?:\\s*)\\]((.|\\n)*?)\\[/size(?:\\s*)\\]", "<span style=\"font-size:$1\">$3</span>"));
            _formatters.Add(new RegexFormatter("\\[font=((.|\\n)*?)(?:\\s*)\\]((.|\\n)*?)\\[/font(?:\\s*)\\]", "<span style=\"font-family:$1;\">$3</span>"));
            _formatters.Add(new RegexFormatter("\\[align=((.|\\n)*?)(?:\\s*)\\]((.|\\n)*?)\\[/align(?:\\s*)\\]", "<span style=\"text-align:$1;\">$3</span>"));
            _formatters.Add(new RegexFormatter("\\[float=((.|\\n)*?)(?:\\s*)\\]((.|\\n)*?)\\[/float(?:\\s*)\\]", "<span style=\"float:$1;\">$3</div>"));
            string format = "<ol class=\"bbc-list\" style=\"list-style:{0};\">$1</ol>";

            _formatters.Add(new RegexFormatter("\\[\\*(?:\\s*)]\\s*([^\\[]*)", "<li>$1</li>"));
            _formatters.Add(new RegexFormatter("\\[list(?:\\s*)\\]((.|\\n)*?)\\[/list(?:\\s*)\\]", "<ul class=\"bbc-list\">$1</ul>"));
            _formatters.Add(new RegexFormatter("\\[list=1(?:\\s*)\\]((.|\\n)*?)\\[/list(?:\\s*)\\]", string.Format(format, "decimal"), false));
            _formatters.Add(new RegexFormatter("\\[list=i(?:\\s*)\\]((.|\\n)*?)\\[/list(?:\\s*)\\]", string.Format(format, "lower-roman"), false));
            _formatters.Add(new RegexFormatter("\\[list=I(?:\\s*)\\]((.|\\n)*?)\\[/list(?:\\s*)\\]", string.Format(format, "upper-roman"), false));
            _formatters.Add(new RegexFormatter("\\[list=a(?:\\s*)\\]((.|\\n)*?)\\[/list(?:\\s*)\\]", string.Format(format, "lower-alpha"), false));
            _formatters.Add(new RegexFormatter("\\[list=A(?:\\s*)\\]((.|\\n)*?)\\[/list(?:\\s*)\\]", string.Format(format, "upper-alpha"), false));
        }