History

Cleanup tailwind classes when generating markup

IgnusG committed 4 years ago

Commit 7efdd2d1 parent 268441f1 file · +25 −1Browse files

Unified · Split

lib/docs/filters/tailwindcss/clean_html.rb+25−1
@@ -1,3 +1,26 @@
1+# Removes all classes not allowlisted in the below semantic_classes array - such as tailwinds utility classes
2+def cleanup_tailwind_classes(node)
3+ class_name = node.attr("class")
4+
5+ if class_name == nil
6+ return node.children.each { |child| cleanup_tailwind_classes(child) }
7+ end
8+
9+ semantic_classes = ["code", "color-swatch", "color-swatch-container", "color-tone-information", "color-swatch-group", "color", "colors", "long-quick-reference"]
10+
11+ classes = class_name.split.select do |klas|
12+ semantic_classes.include? klas
13+ end
14+
15+ if classes.length === 0
16+ node.delete("class")
17+ else
18+ node.set_attribute("class", classes.join(" "))
19+ end
20+
21+ node.children.each { |child| cleanup_tailwind_classes(child) }
22+end
23+
124 module Docs
225 class Tailwindcss
326 class CleanHtmlFilter < Filter
@@ -52,11 +75,12 @@ module Docs · 48 unmodified lines
5275 node.parent.parent['class'] = node.parent.parent['class'].gsub(/bg-.*?\b/, ' ');
5376 end
5477
78+ @doc.traverse { |node| cleanup_tailwind_classes(node) }
79+
5580 #remove weird <hr> (https://github.com/damms005/devdocs/commit/8c9fbd859b71a2525b94a35ea994393ce2b6fedb#commitcomment-50091018)
5681 css('hr').remove
5782
5883 doc
59−
6084 end
6185 end
6286 end