Module: Cheri::Html

Included in:
JRuby::Explorer::AboutDialog, JRuby::Explorer::HtmlViewer
Defined in:
lib/cheri/builder/html/types.rb,
lib/cheri/builder/html/common.rb,
lib/cheri/builder/html/element.rb,
lib/cheri/builder/html/connecter.rb

Defined Under Namespace

Modules: HtmlBuilder, HtmlElement Classes: BodyElem, BuilderException, CommentElem, Elem, EmptyElem, EscElem, FramesetElem, HeadElem, HtmlElem, HtmlException, ProcElem, TableElem, TextElem

Constant Summary collapse

Types =
Hash[
  :tt => Elem,
  :i => Elem,
  :b => Elem,
  :big => Elem,
  :small => Elem,
  :em => Elem,
  :strong => Elem,
  :dfn => Elem,
  :code => Elem,
  :samp => Elem,
  :kbd => Elem,
  :var => Elem,
  :cite => Elem,
  :abbr => Elem,
  :acronym => Elem,
  :sub => Elem,
  :sup => Elem,
  :span => Elem,
  :bdo => Elem,
  :basefont => EmptyElem,
  :font => Elem,
  :br => EmptyElem,
  :body => BodyElem,
  :address => Elem,
  :div => Elem,
  :center => Elem,
  :a => Elem,
  :map => Elem,
  :area => EmptyElem,
  :link => EmptyElem,
  :img => EmptyElem,
  :object => Elem,
  :param => EmptyElem,
  :applet => Elem,
  :hr => EmptyElem,
  :p => Elem,
  :h1 => Elem,
  :h2 => Elem,
  :h3 => Elem,
  :h4 => Elem,
  :h5 => Elem,
  :h6 => Elem,
  :pre => Elem,
  :q => Elem,
  :blockquote => Elem,
  :ins => Elem,
  :del => Elem,
  :dl => Elem,
  :dt => Elem,
  :dd => Elem,
  :ol => Elem,
  :ul => Elem,
  :li => Elem,
  :dir => Elem,
  :menu => Elem,
  :form => Elem,
  :label => Elem,
  :input => EmptyElem,
  :select => Elem,
  :optgroup => Elem,
  :option => Elem,
  :textarea => Elem,
  :fieldset => Elem,
  :legend => Elem,
  :button => Elem,
  :table => TableElem,
  :caption => Elem,
  :thead => Elem,
  :tfoot => Elem,
  :tbody => Elem,
  :colgroup => Elem,
  :col => EmptyElem,
  :tr => Elem,
  :th => Elem,
  :td => Elem,
  :head => HeadElem,
  :title => Elem,
  :base => EmptyElem,
  :meta => EmptyElem,
  :style => Elem,
  :script => Elem,
  :noscript => Elem,
  :html => HtmlElem,
  :frameset => FramesetElem,
  :frame => EmptyElem,
  :text => TextElem,
  :t => TextElem,
  :text! => TextElem,
  :t1 => TextElem,
  :proc! => ProcElem,
  :esc => EscElem,
  :esc! => EscElem,
  :comment => CommentElem,
  :comment! => CommentElem,

# TODO: iframe, noframes

]
Aliases =
Hash[
  :para => :p,
  :p! => :p,
]
VERSION =
Cheri::VERSION
HtmlConnecter =
Cheri::Builder::TypeConnecter.new do

  # This covers the general case, and is all that is really
  # required here.
  type HtmlElement do
    connect HtmlElement, :add
    connect Cheri::Builder::Content
    # something non-html...
    connect Object, :add
  end
  
  # These provide more specific, and therefore more efficient (faster)
  # matching, as we won't have to search up the ancestor chain.
  type [Elem, EmptyElem, TextElem, EscElem, HtmlElem, BodyElem,
        HeadElem, TableElem, ProcElem] do
    connect Elem, :add
    connect EmptyElem, :add
    connect TextElem, :add
    connect EscElem, :add
    connect HtmlElem, :add
    connect BodyElem, :add
    connect HeadElem, :add
    connect TableElem, :add
    connect ProcElem, :add
  end

end