Class: Trenni::Sanitize::Fragment

Inherits:
Filter
  • Object
show all
Defined in:
lib/trenni/sanitize/fragment.rb

Constant Summary collapse

STANDARD_ATTRIBUTES =
Set.new(['class', 'style']).freeze
ALLOWED_TAGS =
{
	'div' => STANDARD_ATTRIBUTES,
	'span' => STANDARD_ATTRIBUTES,
	'br' => STANDARD_ATTRIBUTES,
	'b' => STANDARD_ATTRIBUTES,
	'i' => STANDARD_ATTRIBUTES,
	'em' => STANDARD_ATTRIBUTES,
	'strong' => STANDARD_ATTRIBUTES,
	'ul' => STANDARD_ATTRIBUTES,
	'ol' => STANDARD_ATTRIBUTES,
	'li' => STANDARD_ATTRIBUTES,
	'dl' => STANDARD_ATTRIBUTES,
	'dt' => STANDARD_ATTRIBUTES,
	'dd' => STANDARD_ATTRIBUTES,
	'strike' => STANDARD_ATTRIBUTES,
	'h1' => STANDARD_ATTRIBUTES,
	'h2' => STANDARD_ATTRIBUTES,
	'h3' => STANDARD_ATTRIBUTES,
	'h4' => STANDARD_ATTRIBUTES,
	'h5' => STANDARD_ATTRIBUTES,
	'h6' => STANDARD_ATTRIBUTES,
	'p' => STANDARD_ATTRIBUTES,
	'img' => STANDARD_ATTRIBUTES + ['src', 'alt', 'width', 'height'],
	'image' => STANDARD_ATTRIBUTES,
	'a' => STANDARD_ATTRIBUTES + ['href', 'target']
}.freeze

Constants inherited from Filter

Trenni::Sanitize::Filter::ALL, Trenni::Sanitize::Filter::CDATA, Trenni::Sanitize::Filter::COMMENT, Trenni::Sanitize::Filter::CONTENT, Trenni::Sanitize::Filter::DOCTYPE, Trenni::Sanitize::Filter::INSTRUCTION, Trenni::Sanitize::Filter::TAG, Trenni::Sanitize::Filter::TEXT

Instance Attribute Summary

Attributes inherited from Filter

#current, #output, #stack

Instance Method Summary collapse

Methods inherited from Filter

#attribute, #cdata, #close_tag, #comment, #initialize, #open_tag_begin, #open_tag_end, parse, #parse!, #parse_begin, #parse_end, #text, #top

Constructor Details

This class inherits a constructor from Trenni::Sanitize::Filter

Instance Method Details

#doctype(string) ⇒ Object



67
68
# File 'lib/trenni/sanitize/fragment.rb', line 67

def doctype(string)
end

#filter(node) ⇒ Object



57
58
59
60
61
62
63
64
65
# File 'lib/trenni/sanitize/fragment.rb', line 57

def filter(node)
	if attributes = ALLOWED_TAGS[node.name]
		node.limit_attributes(attributes)
		
		node.accept!
	else
		node.skip!
	end
end

#instruction(string) ⇒ Object



70
71
# File 'lib/trenni/sanitize/fragment.rb', line 70

def instruction(string)
end