Sha256: ba997300a7f08395e68f559665117bbd0fc7b9e07fd70088b4b4dc999ec9e5d7
Contents?: true
Size: 1.34 KB
Versions: 12
Compression:
Stored size: 1.34 KB
Contents
# encoding: utf-8 module Infoboxer class Parser module HTML include Tree def html case when @context.check(/\/[a-z]+>/) html_closing_tag when @context.check(/br\s*>/) html_br when @context.check(%r{[a-z]+[^/>]*/>}) html_auto_closing_tag when @context.check(/[a-z]+[^>\/]*>/) html_opening_tag else # not an HTML tag at all! nil end end def html_closing_tag @context.skip(/\//) tag = @context.scan(/[a-z]+/) @context.skip(/>/) HTMLClosingTag.new(tag) end def html_br @context.skip(/br\s*>/) HTMLTag.new('br', {}) end def html_auto_closing_tag tag = @context.scan(/[a-z]+/) attrs = @context.scan(%r{[^/>]*}) @context.skip(%r{/>}) HTMLTag.new(tag, parse_params(attrs)) end def html_opening_tag tag = @context.scan(/[a-z]+/) attrs = @context.scan(/[^>]+/) @context.skip(/>/) contents = short_inline(/<\/#{tag}>/) if @context.matched =~ /<\/#{tag}>/ HTMLTag.new(tag, parse_params(attrs), contents) else [ HTMLOpeningTag.new(tag, parse_params(attrs)), *contents ] end end end end end
Version data entries
12 entries across 12 versions & 1 rubygems