Top Level Namespace

Defined Under Namespace

Modules: Sinatra Classes: AttrNotAllowedException, AttrRequiredException, AttributeException, RML, RSM, String, TagNotAllowedException, TextNotAllowedException

Constant Summary collapse

AttrI18n =
[:lang, 'xml:lang'.to_sym, :dir]
AttrCore =
[:id, :class, :style, :title]
AttrEvents =
[:onclick, :ondblclick, :onmousedown, :onmouseup, :onmouseover, :onmousemove, :onmouseout, :onkeypress, :onkeydown, :onkeyup]
AttrFocus =
[:accesskey, :tabindex, :onfocus, :onblur]
AttrCellAlign =
[:align, :char, :charoff, :valign]
Attrs =
AttrI18n + AttrCore + AttrEvents
AttrAll =
[:xmlns, :profile, 'http-equip'.to_sym, :content, :scheme, :charset, :hreflang, :type, :rel, :rev, :media, 'xml:space'.to_sym, :src, :defer, :onload, :onuload, :cite, :datetime, :shape, :coords, :declare, :classid, :codebase, :data, :codetype, :archive, :standby, :height, :width, :usemap, :name, :value, :valuetype, :alt, :longdesc, :ismap, :nohref, :action, :method, :enctype, :onsubmit, :onreset, :accept, 'accept-charset'.to_sym, :for, :checked, :disabled, :readonly, :size, :maxlength, :onselect, :onchange, :multiple, :label, :selected, :summary, :border, :frame, :rules, :cellpadding, :cellspacing, :span, :abbr, :axis, :headers, :scope, :rowspan, :ccolspan] + Attrs + AttrFocus + AttrCellAlign
TagsSpecialPre =
[:br, :span, :bdo, :map]
TagsSpecial =
[:object, :img] + TagsSpecialPre
TagsFontStyle =
[:tt, :i, :b, :big, :small]
TagsPhrase =
[:em, :strong, :dfn, :code, :q, :samp, :kbd, :var, :cite, :abbr, :acronym, :sub, :sup]
TagsInlineForms =
[:input, :select, :textarea, :label, :button]
TagsMiscInline =
[:ins, :del, :script]
TagsMisc =
[:noscript] + TagsMiscInline
TagsInline =
[:a] + TagsSpecial + TagsFontStyle + TagsPhrase + TagsInlineForms
TagsInlineAll =
[:pcdata] + TagsInline + TagsMiscInline
TagsHeading =
[:h1, :h2, :h3, :h4, :h5, :h6]
TagsLists =
[:ul, :ol, :dl]
TagsBlockText =
[:pre, :hr, :blockquote, :address]
TagsBlock =
[:p, :div, :table, :fieldset] + TagsHeading + TagsLists + TagsBlockText
TagsBlockAll =
[:form] + TagsBlock + TagsMisc
TagsFlow =
[:pcdata, :form] + TagsBlock + TagsInline + TagsMisc
TagsAContent =
[:pcdata] + TagsSpecial + TagsFontStyle + TagsPhrase + TagsInlineForms + TagsMiscInline
TagsPreContent =
[:pcdata, :a] + TagsFontStyle + TagsPhrase + TagsSpecialPre + TagsInlineForms + TagsMiscInline
TagsFormContent =
TagsBlock + TagsMisc
TagsButtonContent =
[:pcdata, :div, :table] + TagsHeading + TagsLists + TagsBlockText + TagsSpecial + TagsFontStyle + TagsPhrase + TagsMisc
TagsHeadMisc =
[:script, :style, :meta, :link, :object]
Tags =

todo add tags

{
	:html => {
		:attrs => [:id, :xmlns] + AttrI18n,
		:tags => [:head, :body],
		:required_attrs => [],
	},
	:head => {
		:attrs => [:id, :profile] + AttrI18n,
		:tags => [:title, :base] + TagsHeadMisc,
		:required_attrs => [],
	},
	:title => {
		:attrs => [:id] + AttrI18n,
		:tags => [:pcdata],
		:required_attrs => [],
	},
	:base => {
		:attrs => [:id, :href],
		:tags => [],
		:required_attrs => [:href],
	},
	:meta => {
		:attrs => [:id, 'http-equip'.to_sym, :name, :content, :scheme] + AttrI18n,
		:tags => [],
		:required_attrs => [:content],
	},
	:link => {
		:attrs => [:charset, :href, :hreflang, :type, :rel, :rev, :media] + Attrs,
		:tags => [],
		:required_attrs => [],
	},
	:style => {
		:attrs => [:id, :type, :media, :title, 'xml:space'.to_sym] + AttrI18n,
		:tags => [:pcdata],
		:required_attrs => [:type],
	},
	:script => {
		:attrs => [:id, :charset, :type, :src, :defer, 'xml:space'.to_sym],
		:tags => [:pcdata],
		:required_attrs => [:type],
	},
	:noscript => {
		:attrs => Attrs,
		:tags => TagsBlockAll,
		:required_attrs => [],
	},
	:body => {
		:attrs => [:onload, :onuload] + Attrs,
		:tags => TagsBlockAll,
		:required_attrs => [],
	},
	:div => {
		:attrs => Attrs,
		:tags => TagsFlow,
		:required_attrs => [],
	},
	:p => {
		:attrs => Attrs,
		:tags => TagsInlineAll,
		:required_attrs => [],
	},
	:h1 => {
		:attrs => Attrs,
		:tags => TagsInlineAll,
		:required_attrs => [],
	},
	:h2 => {
		:attrs => Attrs,
		:tags => TagsInlineAll,
		:required_attrs => [],
	},
	:h3 => {
		:attrs => Attrs,
		:tags => TagsInlineAll,
		:required_attrs => [],
	},
	:h4 => {
		:attrs => Attrs,
		:tags => TagsInlineAll,
		:required_attrs => [],
	},
	:h5 => {
		:attrs => Attrs,
		:tags => TagsInlineAll,
		:required_attrs => [],
	},
	:h6 => {
		:attrs => Attrs,
		:tags => TagsInlineAll,
		:required_attrs => [],
	},
	:ul => {
		:attrs => Attrs,
		:tags => [:li],
		:required_attrs => [],
	},
	:ol => {
		:attrs => Attrs,
		:tags => [:li],
		:required_attrs => [],
	},
	:li => {
		:attrs => Attrs,
		:tags => TagsFlow,
		:required_attrs => [],
	},
	:dl => {
		:attrs => Attrs,
		:tags => [:dt, :dd],
		:required_attrs => [],
	},
	:dt => {
		:attrs => Attrs,
		:tags => TagsInlineAll,
		:required_attrs => [],
	},
	:dd => {
		:attrs => Attrs,
		:tags => TagsFlow,
		:required_attrs => [],
	},
	:address => {
		:attrs => Attrs,
		:tags => TagsInlineAll,
		:required_attrs => [],
	},
	:hr => {
		:attrs => Attrs,
		:tags => [],
		:required_attrs => [],
	},
	:pre => {
		:attrs => ['xml:space'.to_sym] + Attrs,
		:tags => TagsPreContent,
		:required_attrs => [],
	},
	:blockquote => {
		:attrs => [:cite] + Attrs,
		:tags => TagsBlockAll,
		:required_attrs => [],
	},
	:ins => {
		:attrs => [:cite, :datetime] + Attrs,
		:tags => TagsFlow,
		:required_attrs => [],
	},
	:del => {
		:attrs => [:cite, :datetime] + Attrs,
		:tags => TagsFlow,
		:required_attrs => [],
	},
	:a => {
		:attrs => [:charset, :type, :name, :href, :hreflang, :rel, :rev, :shape, :coords] + Attrs + AttrFocus,
		:tags => TagsAContent,
		:required_attrs => [],
	},
	:span => {
		:attrs => Attrs,
		:tags => TagsInlineAll,
		:required_attrs => [],
	},
	:bdo => {
		:attrs => [:lang, 'xml:lang'.to_sym, :dir] + AttrCore + AttrEvents,
		:tags => TagsInlineAll,
		:required_attrs => [:dir],
	},
	:br => {
		:attrs => AttrCore,
		:tags => [],
		:required_attrs => [],
	},
	:strong => {
		:attrs => Attrs,
		:tags => TagsInlineAll,
		:required_attrs => [],
	},
	:dfn => {
		:attrs => Attrs,
		:tags => TagsInlineAll,
		:required_attrs => [],
	},
	:em => {
		:attrs => Attrs,
		:tags => TagsInlineAll,
		:required_attrs => [],
	},
	:code => {
		:attrs => Attrs,
		:tags => TagsInlineAll,
		:required_attrs => [],
	},
	:samp => {
		:attrs => Attrs,
		:tags => TagsInlineAll,
		:required_attrs => [],
	},
	:kbd => {
		:attrs => Attrs,
		:tags => TagsInlineAll,
		:required_attrs => [],
	},
	:var => {
		:attrs => Attrs,
		:tags => TagsInlineAll,
		:required_attrs => [],
	},
	:cite => {
		:attrs => Attrs,
		:tags => TagsInlineAll,
		:required_attrs => [],
	},
	:abbr => {
		:attrs => Attrs,
		:tags => TagsInlineAll,
		:required_attrs => [],
	},
	:acronym => {
		:attrs => Attrs,
		:tags => TagsInlineAll,
		:required_attrs => [],
	},
	:q => {
		:attrs => [:cite] + Attrs,
		:tags => TagsInlineAll,
		:required_attrs => [],
	},
	:sub => {
		:attrs => Attrs,
		:tags => TagsInlineAll,
		:required_attrs => [],
	},
	:sup => {
		:attrs => Attrs,
		:tags => TagsInlineAll,
		:required_attrs => [],
	},
	:tt => {
		:attrs => Attrs,
		:tags => TagsInlineAll,
		:required_attrs => [],
	},
	:i => {
		:attrs => Attrs,
		:tags => TagsInlineAll,
		:required_attrs => [],
	},
	:b => {
		:attrs => Attrs,
		:tags => TagsInlineAll,
		:required_attrs => [],
	},
	:big => {
		:attrs => Attrs,
		:tags => TagsInlineAll,
		:required_attrs => [],
	},
	:small => {
		:attrs => Attrs,
		:tags => TagsInlineAll,
		:required_attrs => [],
	},
	:object => {
		:attrs => [:pcdata, :declare, :classid, :codebase, :data, :type, :codetype, :archive, :standby, :height, :width, :usemap, :name, :tabindex] + Attrs,
		:tags => [:pcdata, :param, :form] + TagsBlock + TagsInline + TagsMisc,
		:required_attrs => [],
	},
	:param => {
		:attrs => [:id, :name, :value, :valuetype, :type],
		:tags => [],
		:required_attrs => [],
	},
	:img => {
		:attrs => [:src, :alt, :longdesc, :height, :width, :usemap, :ismap] + Attrs,
		:tags => [],
		:required_attrs => [:src, :alt],
	},
	:map => {
		:attrs => [:id, :class, :style, :title, :name] + AttrI18n + AttrEvents,
		:tags => [:form, :area] + TagsBlock + TagsMisc,
		:required_attrs => [:id],
	},
	:area => {
		:attrs => [:shape, :coords, :href, :nohref, :alt] + Attrs + AttrFocus,
		:tags => [],
		:required_attrs => [:alt],
	},
	:map => {
		:attrs => [:action, :method, :enctype, :onsubmit, :onreset, :accept, 'accept-charset'.to_sym] + Attrs,
		:tags => TagsFormContent,
		:required_attrs => [:action],
	},
	:label => {
		:attrs => [:for, :accesskey, :onfocus, :onblur] + Attrs,
		:tags => TagsInlineAll,
		:required_attrs => [],
	},
	:input => {
		:attrs => [:type, :name, :value, :checked, :disabled, :readonly, :size, :maxlength, :src, :alt, :usemap, :onselect, :onchange, :accept] + Attrs + AttrFocus,
		:tags => [],
		:required_attrs => [],
	},
	:select => {
		:attrs => [:name, :size, :multiple, :disabled, :tabindex, :onfocus, :onblur, :onchange] + Attrs,
		:tags => [:optgroup, :option],
		:required_attrs => [],
	},
	:optgroup => {
		:attrs => [:disable, :label] + Attrs,
		:tags => [:option],
		:required_attrs => [],
	},
	:option => {
		:attrs => [:selected, :disabled, :label, :value] + Attrs,
		:tags => [:pcdata],
		:required_attrs => [],
	},
	:textarea => {
		:attrs => [:name, :rows, :cols, :disabled, :readonly, :onselect, :onchange] + Attrs + AttrFocus,
		:tags => [:pcdata],
		:required_attrs => [:rows, :cols],
	},
	:fieldset => {
		:attrs => Attrs,
		:tags => [:pcdata, :legend, :form] + TagsBlock + TagsInline + TagsMisc,
		:required_attrs => [],
	},
	:legend => {
		:attrs => [:acceskey] + Attrs,
		:tags => TagsInlineAll,
		:required_attrs => [],
	},
	:button => {
		:attrs => [:name, :value, :type, :disabled] + Attrs + AttrFocus,
		:tags => TagsButtonContent,
		:required_attrs => [],
	},
	:table => {
		:attrs => [:summary, :width, :border, :frame, :rules, :cellpadding, :cellspacing] + Attrs,
		:tags => [:caption, :col, :colgroup, :thead, :tfoot, :tbody, :tr],
		:required_attrs => [],
	},
	:caption => {
		:attrs => Attrs,
		:tags => TagsInlineAll,
		:required_attrs => [],
	},
	:thead => {
		:attrs => AttrCellAlign + Attrs,
		:tags => [:tr],
		:required_attrs => [],
	},
	:tbody => {
		:attrs => AttrCellAlign + Attrs,
		:tags => [:tr],
		:required_attrs => [],
	},
	:tfoot => {
		:attrs => AttrCellAlign + Attrs,
		:tags => [:tr],
		:required_attrs => [],
	},
	:tr => {
		:attrs => AttrCellAlign + Attrs,
		:tags => [:td,:th],
		:required_attrs => [],
	},
	:colgroup => {
		:attrs => [:span, :width] + AttrCellAlign + Attrs,
		:tags => [:col],
		:required_attrs => [],
	},
	:col => {
		:attrs => [:span, :width] + AttrCellAlign + Attrs,
		:tags => [],
		:required_attrs => [],
	},
	:th => {
		:attrs => [:abbr, :axis, :headers, :scope, :rowspan, :ccolspan] + AttrCellAlign + Attrs,
		:tags => TagsFlow,
		:required_attrs => [],
	},
	:td => {
		:attrs => [:abbr, :axis, :headers, :scope, :rowspan, :ccolspan] + AttrCellAlign + Attrs,
		:tags => TagsFlow,
		:required_attrs => [],
	}
}