Class: Qiita::Markdown::Filters::UserInputSanitizer::AttributeFilter

Inherits:
Object
  • Object
show all
Defined in:
lib/qiita/markdown/filters/user_input_sanitizer.rb

Constant Summary collapse

FILTERS =
{
  "a" => {
    "class" => %w[autolink],
    "rel" => %w[footnote url],
    "rev" => %w[footnote],
  },
  "blockquote" => {
    "class" => %w[twitter-tweet],
  },
  "div" => {
    "class" => %w[footnotes],
  },
  "sup" => {
    "id" => /\Afnref\d+\z/,
  },
  "li" => {
    "id" => /\Afn\d+\z/,
  },
}.freeze
DELIMITER =
" ".freeze

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(env) ⇒ AttributeFilter

Returns a new instance of AttributeFilter.



33
34
35
# File 'lib/qiita/markdown/filters/user_input_sanitizer.rb', line 33

def initialize(env)
  @env = env
end

Class Method Details

.call(*args) ⇒ Object



29
30
31
# File 'lib/qiita/markdown/filters/user_input_sanitizer.rb', line 29

def self.call(*args)
  new(*args).transform
end

Instance Method Details

#transformObject



37
38
39
40
41
42
# File 'lib/qiita/markdown/filters/user_input_sanitizer.rb', line 37

def transform
  return unless FILTERS.key?(name)
  FILTERS[name].each_pair do |attr, pattern|
    filter_attribute(attr, pattern) if node.attributes.key?(attr)
  end
end