public static DeduplicateMaintenanceTags ( List |
||
tags | List |
Maintenance tags list |
return | List |
/// <summary> /// Merge multiple {{multiple issues}} templates in zeroth section into one /// </summary> /// <returns>The M.</returns> /// <param name="articleText">Article text.</param> private string MergeMultipleMI(string articleText) { string originalArticleText = articleText, mi = ""; articleText = WikiRegexes.MultipleIssues.Replace(articleText, m => { string tags = Tools.GetTemplateArgument(m.Value, 1); // do not process if a MI section template if (tags.Contains("{{") || tags.Equals("")) { mi += tags; return(""); } return(m.Value); }); // do nothing if found a MI section template if (WikiRegexes.MultipleIssues.IsMatch(articleText)) { return(originalArticleText); } // extract and de-duplicate tags List <string> miTags = Parsers.DeduplicateMaintenanceTags((from Match m in WikiRegexes.NestedTemplates.Matches(mi) select m.Value).ToList()); mi = string.Join("\r\n", miTags.ToArray()); return(@"{{Multiple issues|" + "\r\n" + mi + "\r\n" + @"}}" + articleText); }
/// <summary> /// Deduplicates tags in multipleissues template calls (not section templates) /// </summary> /// <returns>The revised multipleissues template call </returns> /// <param name="m"></param> private string MultipleIssuesDeDupe(Match m) { string newValue = m.Value; string tags = Tools.GetTemplateArgument(newValue, 1); List <string> tagValues = Parsers.DeduplicateMaintenanceTags((from Match n in WikiRegexes.NestedTemplates.Matches(tags) select n.Value).ToList()); string newTags = string.Join("\r\n", tagValues.ToArray()); // only make change if some duplicate templates removed if (Regex.Matches(newTags, "{{").Count < Regex.Matches(tags, "{{").Count) { newValue = newValue.Replace(tags, newTags); } return(newValue); }