WikiFunctions.Parse.Parsers.SquareBracketsInExternalLinksME C# (CSharp) Method

SquareBracketsInExternalLinksME() private static method

Fixes bracket problems within external links, converting internal [ or ] to [ or ] respectively
private static SquareBracketsInExternalLinksME ( Match m ) : string
m Match
return string
        private static string SquareBracketsInExternalLinksME(Match m)
        {
            // strip off leading [ and trailing ]
            string externalLink = SyntaxRegexExternalLinkOnWholeLine.Replace(m.Value, "$1");

            // if there are unmatched double brackets, we can't fix this
            if((externalLink.Contains("[[") && !externalLink.Contains("]]")) ||
                (!externalLink.Contains("[[") && externalLink.Contains("]]")))
                return (@"[" + externalLink + @"]");

            // if there are some single brackets left then they need fixing; the mediawiki parser finishes the external link at the first ] found
            if (!WikiRegexes.Newline.IsMatch(externalLink) && (externalLink.Contains("]") || externalLink.Contains("[")))
            {
                // replace single ] with ] when used for brackets in the link description
                if (externalLink.Contains("]"))
                    externalLink = SyntaxRegexClosingBracket.Replace(externalLink, @"$1]$2");

                if (externalLink.Contains("["))
                    externalLink = SyntaxRegexOpeningBracket.Replace(externalLink, @"$1[$2");
            }
            return (@"[" + externalLink + @"]");
        }
Parsers