Sha256: bc2f341dcc2013c7d05004c82e80c65e7bf9a8e132ce4c8ef7352ffb4bc4873f
Contents?: true
Size: 1.85 KB
Versions: 2
Compression:
Stored size: 1.85 KB
Contents
description 'Safe html tags' HTML_TAGS = [ [:a, {optional: %w(href title id)}], [:img, {autoclose: true, optional: %w(src alt title id)}], [:br, {autoclose: true, optional: %w(id)}], [:i, {optional: %w(id)}], [:u, {optional: %w(id)}], [:b, {optional: %w(id)}], [:pre, {optional: %w(id)}], [:kbd, {optional: %w(id)}], # provided by syntax highlighter # [:code, optional: %w(lang)] [:cite, {optional: %w(id)}], [:strong, {optional: %w(id)}], [:em, {optional: %w(id)}], [:ins, {optional: %w(id)}], [:sup, {optional: %w(id)}], [:sub, {optional: %w(id)}], [:del, {optional: %w(id)}], [:table, {optional: %w(id)}], [:tr, {optional: %w(id)}], [:td, {optional: %w(colspan rowspan id)}], [:th, {optional: %w(id)}], [:ol, {optional: %w(start id)}], [:ul, {optional: %w(id)}], [:li, {optional: %w(id)}], [:p, {optional: %w(id)}], [:h1, {optional: %w(id)}], [:h2, {optional: %w(id)}], [:h3, {optional: %w(id)}], [:h4, {optional: %w(id)}], [:h5, {optional: %w(id)}], [:h6, {optional: %w(id)}], [:blockquote, {optional: %w(cite id)}], [:div, {optional: %w(style id)}], [:span, {optional: %w(style id)}], [:video, {optional: %w(autoplay controls height width loop preload src poster id)}], [:audio, {optional: %w(autoplay controls loop preload src id)}] ] HTML_TAGS.each do |name, options| options ||= {} if options.delete(:autoclose) Tag.define name, options do |context, attrs| attrs = attrs.map {|(k,v)| %{#{k}="#{escape_html v}"} }.join "<#{name}#{attrs.blank? ? '' : ' '+attrs}/>" end else Tag.define name, options do |context, attrs, content| attrs = attrs.map {|(k,v)| %{#{k}="#{escape_html v}"} }.join content = subfilter(context.subcontext, content) content.gsub!(/(\A<p[^>]*>)|(<\/p>\Z)/, '') "<#{name}#{attrs.blank? ? '' : ' '+attrs}>#{content}</#{name}>" end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
olelo-0.9.15 | plugins/tags/html.rb |
olelo-0.9.14 | plugins/tags/html.rb |