Class: HtmlBeautifier::HtmlParser

Inherits:
Parser
  • Object
show all
Defined in:
lib/htmlbeautifier/html_parser.rb

Constant Summary collapse

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

Instance Method Summary collapse

Methods inherited from Parser

debug, debug_block, #map, #scan, #source_line_number, #source_so_far

Constructor Details

#initializeHtmlParser

Returns a new instance of HtmlParser.



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/htmlbeautifier/html_parser.rb', line 17

def initialize
  super do |p|
    p.map %r{(<%-?=?)(.*?)(-?%>)}m,
      :embed
    p.map %r{<!--\[.*?\]>}m,
      :open_ie_cc
    p.map %r{<!\[.*?\]-->}m,
      :close_ie_cc
    p.map %r{<!--.*?-->}m,
      :standalone_element
    p.map %r{<!.*?>}m,
      :standalone_element
    p.map %r{(<script#{ELEMENT_CONTENT}>)(.*?)(</script>)}mi,
      :foreign_block
    p.map %r{(<style#{ELEMENT_CONTENT}>)(.*?)(</style>)}mi,
      :foreign_block
    p.map %r{(<pre#{ELEMENT_CONTENT}>)(.*?)(</pre>)}mi,
      :preformatted_block
    p.map %r{<#{HTML_VOID_ELEMENTS}(?: #{ELEMENT_CONTENT})?/?>}m,
      :standalone_element
    p.map %r{</#{HTML_BLOCK_ELEMENTS}>}m,
      :close_block_element
    p.map %r{<#{HTML_BLOCK_ELEMENTS}(?: #{ELEMENT_CONTENT})?>}m,
      :open_block_element
    p.map %r{</#{ELEMENT_CONTENT}>}m,
      :close_element
    p.map %r{<#{ELEMENT_CONTENT}>}m,
      :open_element
    p.map %r{\s*\r?\n\s*}m,
      :new_line
    p.map %r{[^<]+},
      :text
  end
end