lib/trac-wiki/tree.rb in trac-wiki-0.3.19 vs lib/trac-wiki/tree.rb in trac-wiki-0.3.20

- old
+ new

@@ -161,23 +161,24 @@ :th => [:colspan, :rowspan, :style], :ol => [:type ], :_all => [:class, :title, :id], } + ATTRIBUTE_DATA_REX = /\Adata-[-a-z]+\Z/i ATTRIBUTE_STYLE_REX = /\A( text-align:(center|right|left) | margin: \d+(px|em)? | ; )+\Z/x def attrs_to_s(tag, attrs) return '' if attrs.nil? || attrs.size == 0 ret = [''] tag_attrs = ATTRIBUTES_ALLOWED[tag] || [] attrs.each_pair do |k,v| + #print "a: #{k} #{v}\n" next if v.nil? k_sym = k.to_sym - next if ! ( ATTRIBUTES_ALLOWED[:_all].include?(k_sym) || tag_attrs.include?(k_sym) ) - next if k == :style && v !~ ATTRIBUTE_STYLE_REX - #print "style: #{v}\n" if k == :style + next if ! ( ATTRIBUTES_ALLOWED[:_all].include?(k_sym) || tag_attrs.include?(k_sym) || k =~ ATTRIBUTE_DATA_REX ) + next if k_sym == :style && v !~ ATTRIBUTE_STYLE_REX ret.push "#{TracWiki::Parser.escapeHTML(k.to_s)}=\"#{TracWiki::Parser.escapeHTML(v.to_s)}\"" end return ret.sort.join(' ') end