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

FixMainArticle() public static method

Fixes instances of ''Main Article: xxx'' to use {{main|xxx}}, ''see also:'' to use {{see also|xxx}}
public static FixMainArticle ( string articleText ) : string
articleText string The wiki text of the article.
return string
        public static string FixMainArticle(string articleText)
        {
            // Performance: split article to check each line in text, filter to lines containing colon then check first 20 characters of line against regex
            List<string> articleTextLines = articleText.Split("\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).ToList();
            articleTextLines = articleTextLines.FindAll(s => s.Contains(":"));
            articleTextLines = articleTextLines.Select(s => s.Substring(0, Math.Min(s.Length, 20))).ToList();
            articleTextLines = Tools.DeduplicateList(articleTextLines);

            if (articleTextLines.Any(s => SeeAlsoMainArticleQuick.IsMatch(s)))
            {
                articleText = SeeAlsoLink.Replace(articleText,
                                                  m => m.Groups[2].Value.Length == 0
                                                  ? "{{See also|" + m.Groups[1].Value + "}}"
                                                  : "{{See also|" + m.Groups[1].Value + "|l1=" + m.Groups[3].Value + "}}");

                articleText = RegexMainArticle.Replace(articleText,
                                                       m => m.Groups[2].Value.Length == 0
                                                       ? "{{Main|" + m.Groups[1].Value + "}}"
                                                       : "{{Main|" + m.Groups[1].Value + "|l1=" + m.Groups[3].Value + "}}");
            }
            return articleText;
        }
Parsers