aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/Utilities/HtmlSanitiser.cs29
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();
- }
}
}