Sha256: f5d0432998e6a80642eb3f7c5de56369101583950ea1665f77f5fded60e5fd99
Contents?: true
Size: 1.83 KB
Versions: 2
Compression:
Stored size: 1.83 KB
Contents
require "htmlbeautifier/parser" module HtmlBeautifier class HtmlParser < Parser ELEMENT_CONTENT = %r{ (?:<%.*?%>|[^>])* }mx HTML_VOID_ELEMENTS = %r{(?: area | base | br | col | command | embed | hr | img | input | keygen | link | meta | param | source | track | wbr )}mix HTML_BLOCK_ELEMENTS = %r{(?: address | article | aside | audio | blockquote | canvas | dd | dir | div | dl | dt | fieldset | figcaption | figure | footer | form | h1 | h2 | h3 | h4 | h5 | h6 | header | hr | li | menu | noframes | noscript | ol | p | pre | section | table | tbody | td | tfoot | th | thead | tr | ul | video )}mix MAPPINGS = [ [%r{(<%-?=?)(.*?)(-?%>)}om, :embed], [%r{<!--\[.*?\]>}om, :open_ie_cc], [%r{<!\[.*?\]-->}om, :close_ie_cc], [%r{<!--.*?-->}om, :standalone_element], [%r{<!.*?>}om, :standalone_element], [%r{(<script#{ELEMENT_CONTENT}>)(.*?)(</script>)}omi, :foreign_block], [%r{(<style#{ELEMENT_CONTENT}>)(.*?)(</style>)}omi, :foreign_block], [%r{(<pre#{ELEMENT_CONTENT}>)(.*?)(</pre>)}omi, :preformatted_block], [%r{(<textarea#{ELEMENT_CONTENT}>)(.*?)(</textarea>)}omi, :preformatted_block], [%r{<#{HTML_VOID_ELEMENTS}(?: #{ELEMENT_CONTENT})?/?>}om, :standalone_element], [%r{</#{HTML_BLOCK_ELEMENTS}>}om, :close_block_element], [%r{<#{HTML_BLOCK_ELEMENTS}(?: #{ELEMENT_CONTENT})?>}om, :open_block_element], [%r{</#{ELEMENT_CONTENT}>}om, :close_element], [%r{<#{ELEMENT_CONTENT}>}om, :open_element], [%r{\s*\r?\n\s*}om, :new_line], [%r{[^<]+}, :text]] def initialize super do |p| MAPPINGS.each do |regexp, method| p.map regexp, method end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
htmlbeautifier-1.2.0 | lib/htmlbeautifier/html_parser.rb |
htmlbeautifier-1.1.1 | lib/htmlbeautifier/html_parser.rb |