diff --git a/lib/docs/filters/tailwindcss/clean_html.rb b/lib/docs/filters/tailwindcss/clean_html.rb index 4842a585..7eecf562 100644 --- a/lib/docs/filters/tailwindcss/clean_html.rb +++ b/lib/docs/filters/tailwindcss/clean_html.rb @@ -1,3 +1,26 @@ +# Removes all classes not allowlisted in the below semantic_classes array - such as tailwinds utility classes +def cleanup_tailwind_classes(node) + class_name = node.attr("class") + + if class_name == nil + return node.children.each { |child| cleanup_tailwind_classes(child) } + end + + semantic_classes = ["code", "color-swatch", "color-swatch-container", "color-tone-information", "color-swatch-group", "color", "colors", "long-quick-reference"] + + classes = class_name.split.select do |klas| + semantic_classes.include? klas + end + + if classes.length === 0 + node.delete("class") + else + node.set_attribute("class", classes.join(" ")) + end + + node.children.each { |child| cleanup_tailwind_classes(child) } +end + module Docs class Tailwindcss class CleanHtmlFilter < Filter @@ -52,11 +75,12 @@ module Docs node.parent.parent['class'] = node.parent.parent['class'].gsub(/bg-.*?\b/, ' '); end + @doc.traverse { |node| cleanup_tailwind_classes(node) } + #remove weird