diff options
Diffstat (limited to 'lib/banzai/filter/task_list_filter.rb')
-rw-r--r-- | lib/banzai/filter/task_list_filter.rb | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/banzai/filter/task_list_filter.rb b/lib/banzai/filter/task_list_filter.rb new file mode 100644 index 00000000000..bdf7c2ebdfc --- /dev/null +++ b/lib/banzai/filter/task_list_filter.rb @@ -0,0 +1,24 @@ +require 'banzai' +require 'task_list/filter' + +module Banzai + module Filter + # Work around a bug in the default TaskList::Filter that adds a `task-list` + # class to every list element, regardless of whether or not it contains a + # task list. + # + # This is a (hopefully) temporary fix, pending a new release of the + # task_list gem. + # + # See https://github.com/github/task_list/pull/60 + class TaskListFilter < TaskList::Filter + def add_css_class(node, *new_class_names) + if new_class_names.include?('task-list') + super if node.children.any? { |c| c['class'] == 'task-list-item' } + else + super + end + end + end + end +end |