1# frozen_string_literal: true
2
3module Banzai
4  module Filter
5    # Sanitize HTML produced by Markdown. Allows styling of links and usage of line breaks.
6    #
7    # Extends Banzai::Filter::BaseSanitizationFilter with specific rules.
8    class BroadcastMessageSanitizationFilter < Banzai::Filter::BaseSanitizationFilter
9      def customize_allowlist(allowlist)
10        allowlist[:elements].push('br')
11
12        allowlist[:attributes]['a'].push('class', 'style')
13
14        allowlist[:css] = { properties: %w(color border background padding margin text-decoration) }
15
16        allowlist
17      end
18    end
19  end
20end
21