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 + @"]");
}