diff options
Diffstat (limited to 'src/Utilities')
| -rw-r--r-- | src/Utilities/HtmlSanitiser.cs | 29 |
1 files changed, 12 insertions, 17 deletions
diff --git a/src/Utilities/HtmlSanitiser.cs b/src/Utilities/HtmlSanitiser.cs index 645b09d..9fbc003 100644 --- a/src/Utilities/HtmlSanitiser.cs +++ b/src/Utilities/HtmlSanitiser.cs @@ -25,7 +25,6 @@ public static class HtmlSanitiser Sanitize(element.ChildNodes[i], excludeSelectors); } - return element.InnerHtml; } @@ -37,30 +36,26 @@ public static class HtmlSanitiser return element; } - private static void Sanitize(INode node, string excludeSelectors = default) { + private static void Sanitize(INode node, string excludeSelectors = default, string excludeText = default) { if (node is IElement htmlElement) { if (excludeSelectors.HasValue()) { foreach (var selector in excludeSelectors.Split(',')) { - if (selector.StartsWith(".")) { - if (htmlElement.ClassList.Contains(selector.Replace(".", ""))) { - Console.WriteLine("Removed: " + htmlElement.TagName + ", because of: " + selector); - htmlElement.Remove(); - continue; - } + if ( + selector.StartsWith(".") && htmlElement.ClassList.Contains(selector.Replace(".", "")) + || selector.StartsWith("#") && htmlElement.Id == selector.Replace("#", "") + || htmlElement.TagName == selector.ToUpper() + || selector.StartsWith("text:") && htmlElement.TextContent.Contains(selector.Replace("text:", "")) + ) { + Console.WriteLine("Removed: " + htmlElement.TagName + ", because of: " + selector); + htmlElement.Remove(); } - if (selector.StartsWith("#")) { - if (htmlElement.Id == selector.Replace("#", "")) { - Console.WriteLine("Removed: " + htmlElement.TagName + ", because of: " + selector); + if (!selector.StartsWith("text:")) { + foreach (var element in htmlElement.QuerySelectorAll(selector)) { + Console.WriteLine("Removed: " + element.TagName + ", because of: " + selector); htmlElement.Remove(); - continue; } } - - if (htmlElement.TagName == selector.ToUpper()) { - Console.WriteLine("Removed: " + htmlElement.TagName + ", because of: " + selector); - htmlElement.Remove(); - } } } |
